lutunovoleg

Untitled

May 4th, 2026
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. \documentclass[border=10pt]{standalone}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage[english]{babel}
  4. \usepackage{tikz}
  5. \usetikzlibrary{
  6. shapes.geometric,
  7. arrows.meta,
  8. positioning,
  9. fit,
  10. calc
  11. }
  12.  
  13. % Стили по ГОСТ 19.701-90
  14. \tikzset{
  15. startstop/.style={
  16. rectangle,
  17. rounded corners,
  18. minimum width=3cm,
  19. minimum height=1cm,
  20. text centered,
  21. draw=black,
  22. fill=white,
  23. font=\bfseries
  24. },
  25. process/.style={
  26. rectangle,
  27. minimum width=3cm,
  28. minimum height=1.5cm,
  29. text centered,
  30. draw=black,
  31. fill=white,
  32. font=\bfseries
  33. },
  34. decision/.style={
  35. diamond,
  36. minimum width=3cm,
  37. minimum height=1cm,
  38. text centered,
  39. draw=black,
  40. fill=white,
  41. font=\bfseries
  42. },
  43. io/.style={
  44. trapezium,
  45. trapezium left angle=70,
  46. trapezium right angle=110,
  47. minimum width=3cm,
  48. minimum height=1cm,
  49. text centered,
  50. draw=black,
  51. fill=white,
  52. font=\bfseries
  53. },
  54. arrow/.style={
  55. thick,
  56. ->,
  57. >=Latex
  58. },
  59. dashed_box/.style={
  60. draw,
  61. dashed,
  62. inner sep=5mm
  63. }
  64. }
  65.  
  66. \begin{document}
  67.  
  68. \begin{tikzpicture}[node distance=2cm]
  69. % Блоки памяти
  70. \node (memA) [process] {MemA};
  71. \node (memB) [process, below=of memA, yshift=-1cm] {MemB};
  72. \node (control) [process, below=of memB, yshift=-0.5cm] {Control};
  73.  
  74. % Блоки обработки
  75. \node (multiplier) [process, right=4cm of memA, yshift=-0.75cm] {Multiplier};
  76. \node (accumulator) [process, right=of multiplier] {Accumulator};
  77.  
  78. % Пунктирные рамки групп
  79. \node (group1) [dashed_box, fit=(memA)(memB)] {};
  80. \node (group2) [dashed_box, fit=(multiplier)(accumulator)] {};
  81. \node (group3) [dashed_box, fit=(control), inner sep=5mm, yshift=-5mm] {};
  82.  
  83. % Стрелки
  84. \draw [arrow, line width=2pt] (memA.east) -- ++(1,0) |-
  85. node[pos=0.25, above] {Aij} (multiplier.west);
  86. \draw [arrow, line width=2pt] (memB.east) -- ++(1,0) |-
  87. node[pos=0.25, below] {Bjk} (multiplier.west);
  88.  
  89. \draw [arrow] (multiplier.east) -- (accumulator.west);
  90. \draw [arrow] (accumulator.east) -- ++(2,0);
  91.  
  92. \draw [arrow] (control.north) -- (memB.south);
  93. \draw [arrow] (control.east) -| (multiplier.south);
  94. \draw [arrow] (control.east) -| (accumulator.south);
  95.  
  96. % Выход из аккумулятора
  97. \node[right=0.5cm of accumulator.east] {I};
  98. \end{tikzpicture}
  99.  
  100. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment