cpu_block.bdf 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590
  1. /*
  2. WARNING: Do NOT edit the input and output ports in this file in a text
  3. editor if you plan to continue editing the block that represents it in
  4. the Block Editor! File corruption is VERY likely to occur.
  5. */
  6. /*
  7. Copyright (C) 2018 Intel Corporation. All rights reserved.
  8. Your use of Intel Corporation's design tools, logic functions
  9. and other software and tools, and its AMPP partner logic
  10. functions, and any output files from any of the foregoing
  11. (including device programming or simulation files), and any
  12. associated documentation or information are expressly subject
  13. to the terms and conditions of the Intel Program License
  14. Subscription Agreement, the Intel Quartus Prime License Agreement,
  15. the Intel FPGA IP License Agreement, or other applicable license
  16. agreement, including, without limitation, that your use is for
  17. the sole purpose of programming logic devices manufactured by
  18. Intel and sold by Intel or its authorized distributors. Please
  19. refer to the applicable agreement for further details.
  20. */
  21. (header "graphic" (version "1.4"))
  22. (symbol
  23. (rect 704 120 856 224)
  24. (text "alu" (rect 120 8 136 19)(font "Arial" ))
  25. (text "inst" (rect 104 88 122 99)(font "Arial" ))
  26. (port
  27. (pt 0 24)
  28. (input)
  29. (text "src A" (rect 0 0 28 11)(font "Arial" ))
  30. (text "src A" (rect 21 19 49 30)(font "Arial" ))
  31. (line (pt 0 24)(pt 16 24)(line_width 3))
  32. )
  33. (port
  34. (pt 0 80)
  35. (input)
  36. (text "src B" (rect 0 0 27 11)(font "Arial" ))
  37. (text "src B" (rect 21 75 48 86)(font "Arial" ))
  38. (line (pt 0 80)(pt 16 80)(line_width 3))
  39. )
  40. (port
  41. (pt 56 0)
  42. (input)
  43. (text "op" (rect 0 0 14 11)(font "Arial" ))
  44. (text "op" (rect 48 25 59 39)(font "Arial" )(vertical))
  45. (line (pt 56 0)(pt 56 16)(line_width 3))
  46. )
  47. (port
  48. (pt 152 40)
  49. (output)
  50. (text "zero" (rect -104 0 -81 11)(font "Arial" ))
  51. (text "zero" (rect 96 32 119 43)(font "Arial" ))
  52. (line (pt 152 40)(pt 136 40))
  53. )
  54. (port
  55. (pt 152 56)
  56. (output)
  57. (text "result" (rect -104 0 -76 11)(font "Arial" ))
  58. (text "result" (rect 96 48 124 59)(font "Arial" ))
  59. (line (pt 152 56)(pt 136 56)(line_width 3))
  60. )
  61. (parameter
  62. "WORD"
  63. "8"
  64. ""
  65. (type "PARAMETER_SIGNED_DEC") )
  66. (drawing
  67. (line (pt 16 8)(pt 136 32))
  68. (line (pt 136 32)(pt 136 72))
  69. (line (pt 16 96)(pt 136 72))
  70. (line (pt 56 48)(pt 56 56))
  71. (line (pt 16 8)(pt 16 40))
  72. (line (pt 16 96)(pt 16 64))
  73. (line (pt 16 64)(pt 56 56))
  74. (line (pt 16 40)(pt 56 48))
  75. )
  76. (annotation_block (parameter)(rect 568 48 744 80))
  77. )
  78. (symbol
  79. (rect 928 64 1040 248)
  80. (text "memory" (rect 5 0 46 11)(font "Arial" ))
  81. (text "inst4" (rect 8 160 32 171)(font "Arial" ))
  82. (port
  83. (pt 48 0)
  84. (input)
  85. (text "clk" (rect 0 0 15 11)(font "Arial" ))
  86. (text "clk" (rect 40 25 51 40)(font "Arial" )(vertical))
  87. (line (pt 48 0)(pt 48 16))
  88. )
  89. (port
  90. (pt 72 0)
  91. (input)
  92. (text "wr_en" (rect 0 0 31 11)(font "Arial" ))
  93. (text "wr_en" (rect 64 25 75 56)(font "Arial" )(vertical))
  94. (line (pt 72 0)(pt 72 16))
  95. )
  96. (port
  97. (pt 0 80)
  98. (input)
  99. (text "addr" (rect 0 0 23 11)(font "Arial" ))
  100. (text "addr" (rect 24 72 47 83)(font "Arial" ))
  101. (line (pt 0 80)(pt 16 80)(line_width 3))
  102. )
  103. (port
  104. (pt 0 112)
  105. (input)
  106. (text "wr_data" (rect 0 0 42 11)(font "Arial" ))
  107. (text "wr_data" (rect 24 104 66 115)(font "Arial" ))
  108. (line (pt 0 112)(pt 16 112)(line_width 3))
  109. )
  110. (port
  111. (pt 112 80)
  112. (output)
  113. (text "rd_data" (rect -160 0 -120 11)(font "Arial" ))
  114. (text "rd_data" (rect 56 72 96 83)(font "Arial" ))
  115. (line (pt 112 80)(pt 96 80)(line_width 3))
  116. )
  117. (parameter
  118. "WORD"
  119. "8"
  120. ""
  121. (type "PARAMETER_SIGNED_DEC") )
  122. (parameter
  123. "SIZE"
  124. ""
  125. ""
  126. (type "PARAMETER_SIGNED_DEC") )
  127. (drawing
  128. (line (pt 40 16)(pt 48 24))
  129. (line (pt 48 24)(pt 56 16))
  130. (rectangle (rect 16 16 96 160))
  131. )
  132. (annotation_block (parameter)(rect 704 -16 880 32))
  133. )
  134. (symbol
  135. (rect -136 40 -16 200)
  136. (text "instr_mem" (rect 5 0 58 11)(font "Arial" ))
  137. (text "inst5" (rect 8 144 32 155)(font "Arial" ))
  138. (port
  139. (pt 64 0)
  140. (input)
  141. (text "clk" (rect 0 0 15 11)(font "Arial" ))
  142. (text "clk" (rect 56 25 67 40)(font "Arial" )(vertical))
  143. (line (pt 64 0)(pt 64 17))
  144. )
  145. (port
  146. (pt 0 56)
  147. (input)
  148. (text "addr" (rect 0 0 23 11)(font "Arial" ))
  149. (text "addr" (rect 24 48 47 59)(font "Arial" ))
  150. (line (pt 0 56)(pt 16 56)(line_width 3))
  151. )
  152. (port
  153. (pt 120 56)
  154. (output)
  155. (text "instr" (rect -128 0 -106 11)(font "Arial" ))
  156. (text "instr" (rect 72 48 94 59)(font "Arial" ))
  157. (line (pt 120 56)(pt 104 56)(line_width 3))
  158. )
  159. (port
  160. (pt 120 72)
  161. (output)
  162. (text "imm" (rect -128 0 -106 11)(font "Arial" ))
  163. (text "imm" (rect 72 64 94 75)(font "Arial" ))
  164. (line (pt 120 72)(pt 104 72)(line_width 3))
  165. )
  166. (parameter
  167. "WORD"
  168. "8"
  169. ""
  170. (type "PARAMETER_SIGNED_DEC") )
  171. (parameter
  172. "SIZE"
  173. ""
  174. ""
  175. (type "PARAMETER_SIGNED_DEC") )
  176. (drawing
  177. (line (pt 56 16)(pt 64 24))
  178. (line (pt 64 24)(pt 72 16))
  179. (rectangle (rect 16 16 104 136))
  180. )
  181. (annotation_block (parameter)(rect -48 -32 128 16))
  182. )
  183. (symbol
  184. (rect 192 64 344 240)
  185. (text "reg_file" (rect 5 0 42 11)(font "Arial" ))
  186. (text "inst6" (rect 8 160 32 171)(font "Arial" ))
  187. (port
  188. (pt 72 0)
  189. (input)
  190. (text "clk" (rect 0 0 15 11)(font "Arial" ))
  191. (text "clk" (rect 64 24 75 39)(font "Arial" )(vertical))
  192. (line (pt 72 0)(pt 72 17))
  193. )
  194. (port
  195. (pt 104 0)
  196. (input)
  197. (text "wr_en" (rect 0 0 31 11)(font "Arial" ))
  198. (text "wr_en" (rect 96 24 107 55)(font "Arial" )(vertical))
  199. (line (pt 104 0)(pt 104 17))
  200. )
  201. (port
  202. (pt 0 48)
  203. (input)
  204. (text "rd_addr1" (rect 0 0 46 11)(font "Arial" ))
  205. (text "rd_addr1" (rect 24 40 70 51)(font "Arial" ))
  206. (line (pt 0 48)(pt 16 48)(line_width 3))
  207. )
  208. (port
  209. (pt 0 64)
  210. (input)
  211. (text "rd_addr2" (rect 0 0 46 11)(font "Arial" ))
  212. (text "rd_addr2" (rect 24 56 70 67)(font "Arial" ))
  213. (line (pt 0 64)(pt 16 64)(line_width 3))
  214. )
  215. (port
  216. (pt 0 80)
  217. (input)
  218. (text "wr_addr" (rect 0 0 41 11)(font "Arial" ))
  219. (text "wr_addr" (rect 24 72 65 83)(font "Arial" ))
  220. (line (pt 0 80)(pt 16 80)(line_width 3))
  221. )
  222. (port
  223. (pt 0 120)
  224. (input)
  225. (text "wr_data" (rect 0 0 42 11)(font "Arial" ))
  226. (text "wr_data" (rect 24 112 66 123)(font "Arial" ))
  227. (line (pt 0 120)(pt 16 120)(line_width 3))
  228. )
  229. (port
  230. (pt 152 96)
  231. (output)
  232. (text "rd_data2" (rect -152 0 -108 11)(font "Arial" ))
  233. (text "rd_data2" (rect 80 88 124 99)(font "Arial" ))
  234. (line (pt 152 96)(pt 136 96)(line_width 3))
  235. )
  236. (port
  237. (pt 152 80)
  238. (output)
  239. (text "rd_data1" (rect -152 0 -108 11)(font "Arial" ))
  240. (text "rd_data1" (rect 80 72 124 83)(font "Arial" ))
  241. (line (pt 152 80)(pt 136 80)(line_width 3))
  242. )
  243. (parameter
  244. "WORD"
  245. "8"
  246. ""
  247. (type "PARAMETER_SIGNED_DEC") )
  248. (parameter
  249. "ADDR_SIZE"
  250. "2"
  251. ""
  252. (type "PARAMETER_SIGNED_DEC") )
  253. (drawing
  254. (line (pt 64 16)(pt 72 24))
  255. (line (pt 72 24)(pt 80 16))
  256. (rectangle (rect 16 16 136 160))
  257. )
  258. (annotation_block (parameter)(rect 312 0 488 48))
  259. )
  260. (symbol
  261. (rect 16 48 112 160)
  262. (text "instDecoder" (rect 5 0 65 11)(font "Arial" ))
  263. (text "inst1" (rect 8 88 32 99)(font "Arial" ))
  264. (port
  265. (pt 0 48)
  266. (input)
  267. (text "instr" (rect 0 0 22 11)(font "Arial" ))
  268. (text "instr" (rect 21 43 43 54)(font "Arial" ))
  269. (line (pt 0 48)(pt 16 48)(line_width 3))
  270. )
  271. (port
  272. (pt 96 32)
  273. (output)
  274. (text "opcode" (rect -88 0 -51 11)(font "Arial" ))
  275. (text "opcode" (rect 48 24 85 35)(font "Arial" ))
  276. (line (pt 96 32)(pt 80 32)(line_width 3))
  277. )
  278. (port
  279. (pt 96 48)
  280. (output)
  281. (text "rs" (rect -88 0 -78 11)(font "Arial" ))
  282. (text "rs" (rect 64 40 74 51)(font "Arial" ))
  283. (line (pt 96 48)(pt 80 48)(line_width 3))
  284. )
  285. (port
  286. (pt 96 64)
  287. (output)
  288. (text "rt" (rect -88 0 -80 11)(font "Arial" ))
  289. (text "rt" (rect 64 56 72 67)(font "Arial" ))
  290. (line (pt 96 64)(pt 80 64)(line_width 3))
  291. )
  292. (drawing
  293. (line (pt 80 24)(pt 80 72))
  294. (line (pt 80 72)(pt 16 80))
  295. (line (pt 80 24)(pt 16 16))
  296. (line (pt 16 16)(pt 16 80))
  297. )
  298. )
  299. (symbol
  300. (rect 512 160 624 248)
  301. (text "BUSMUX" (rect 28 72 96 88)(font "Arial" (font_size 10)))
  302. (text "srcB_sel" (rect 3 -2 45 11)(font "Intel Clear" ))
  303. (port
  304. (pt 0 24)
  305. (input)
  306. (text "datab[WIDTH-1..0]" (rect 6 51 112 64)(font "Arial" (font_size 8)))
  307. (text "datab[]" (rect 6 24 46 37)(font "Arial" (font_size 8)))
  308. (line (pt 0 24)(pt 44 24)(line_width 3))
  309. )
  310. (port
  311. (pt 56 0)
  312. (input)
  313. (text "sel" (rect 59 70 76 83)(font "Arial" (font_size 8)))
  314. (text "sel" (rect 59 5 76 18)(font "Arial" (font_size 8)))
  315. (line (pt 56 0)(pt 56 16))
  316. )
  317. (port
  318. (pt 0 56)
  319. (input)
  320. (text "dataa[WIDTH-1..0]" (rect 6 19 112 32)(font "Arial" (font_size 8)))
  321. (text "dataa[]" (rect 6 56 46 69)(font "Arial" (font_size 8)))
  322. (line (pt 0 56)(pt 44 56)(line_width 3))
  323. )
  324. (port
  325. (pt 112 40)
  326. (output)
  327. (text "result[WIDTH-1..0]" (rect 75 35 181 48)(font "Arial" (font_size 8)))
  328. (text "result[]" (rect 75 40 113 53)(font "Arial" (font_size 8)))
  329. (line (pt 68 40)(pt 112 40)(line_width 3))
  330. )
  331. (parameter
  332. "WIDTH"
  333. "8"
  334. "Width of I/O, any integer > 0"
  335. " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" "11" "12" "13" "14" "15" "16" "20" "24" "28" "32" "40" "48" "56" "64"
  336. )
  337. (drawing
  338. (text "0" (rect 52 47 60 57)(font "Arial" (font_size 6)))
  339. (text "1" (rect 52 23 60 33)(font "Arial" (font_size 6)))
  340. (line (pt 68 24)(pt 68 56))
  341. (line (pt 44 8)(pt 44 72))
  342. (line (pt 44 72)(pt 68 56))
  343. (line (pt 44 8)(pt 68 24))
  344. )
  345. (flipx)
  346. (annotation_block (parameter)(rect 592 88 714 118))
  347. )
  348. (symbol
  349. (rect 1128 88 1240 176)
  350. (text "BUSMUX" (rect 28 72 96 88)(font "Arial" (font_size 10)))
  351. (text "mem_to_reg" (rect 3 -2 67 11)(font "Intel Clear" ))
  352. (port
  353. (pt 0 24)
  354. (input)
  355. (text "datab[WIDTH-1..0]" (rect 6 51 112 64)(font "Arial" (font_size 8)))
  356. (text "datab[]" (rect 6 24 46 37)(font "Arial" (font_size 8)))
  357. (line (pt 0 24)(pt 44 24)(line_width 3))
  358. )
  359. (port
  360. (pt 56 0)
  361. (input)
  362. (text "sel" (rect 59 70 76 83)(font "Arial" (font_size 8)))
  363. (text "sel" (rect 59 5 76 18)(font "Arial" (font_size 8)))
  364. (line (pt 56 0)(pt 56 16))
  365. )
  366. (port
  367. (pt 0 56)
  368. (input)
  369. (text "dataa[WIDTH-1..0]" (rect 6 19 112 32)(font "Arial" (font_size 8)))
  370. (text "dataa[]" (rect 6 56 46 69)(font "Arial" (font_size 8)))
  371. (line (pt 0 56)(pt 44 56)(line_width 3))
  372. )
  373. (port
  374. (pt 112 40)
  375. (output)
  376. (text "result[WIDTH-1..0]" (rect 75 35 181 48)(font "Arial" (font_size 8)))
  377. (text "result[]" (rect 75 40 113 53)(font "Arial" (font_size 8)))
  378. (line (pt 68 40)(pt 112 40)(line_width 3))
  379. )
  380. (parameter
  381. "WIDTH"
  382. "8"
  383. "Width of I/O, any integer > 0"
  384. " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" " 9" "10" "11" "12" "13" "14" "15" "16" "20" "24" "28" "32" "40" "48" "56" "64"
  385. )
  386. (drawing
  387. (text "0" (rect 52 47 60 57)(font "Arial" (font_size 6)))
  388. (text "1" (rect 52 23 60 33)(font "Arial" (font_size 6)))
  389. (line (pt 68 24)(pt 68 56))
  390. (line (pt 44 8)(pt 44 72))
  391. (line (pt 44 72)(pt 68 56))
  392. (line (pt 44 8)(pt 68 24))
  393. )
  394. (flipx)
  395. (annotation_block (parameter)(rect 1240 56 1362 86))
  396. )
  397. (connector
  398. (pt 264 -64)
  399. (pt 264 64)
  400. )
  401. (connector
  402. (pt -72 -64)
  403. (pt -72 40)
  404. )
  405. (connector
  406. (pt -16 96)
  407. (pt 16 96)
  408. (bus)
  409. )
  410. (connector
  411. (pt 112 96)
  412. (pt 160 96)
  413. (bus)
  414. )
  415. (connector
  416. (pt 192 112)
  417. (pt 160 112)
  418. (bus)
  419. )
  420. (connector
  421. (pt 192 144)
  422. (pt 160 144)
  423. (bus)
  424. )
  425. (connector
  426. (pt 160 96)
  427. (pt 160 112)
  428. (bus)
  429. )
  430. (connector
  431. (pt 160 112)
  432. (pt 160 144)
  433. (bus)
  434. )
  435. (connector
  436. (pt 112 112)
  437. (pt 136 112)
  438. (bus)
  439. )
  440. (connector
  441. (pt 136 112)
  442. (pt 136 128)
  443. (bus)
  444. )
  445. (connector
  446. (pt 192 128)
  447. (pt 136 128)
  448. (bus)
  449. )
  450. (connector
  451. (pt 976 -64)
  452. (pt 976 64)
  453. )
  454. (connector
  455. (pt 928 144)
  456. (pt 896 144)
  457. (bus)
  458. )
  459. (connector
  460. (pt -72 -64)
  461. (pt 264 -64)
  462. )
  463. (connector
  464. (pt 264 -64)
  465. (pt 976 -64)
  466. )
  467. (connector
  468. (pt 896 176)
  469. (pt 856 176)
  470. (bus)
  471. )
  472. (connector
  473. (pt 344 144)
  474. (pt 704 144)
  475. (bus)
  476. )
  477. (connector
  478. (pt 624 200)
  479. (pt 704 200)
  480. (bus)
  481. )
  482. (connector
  483. (pt 1040 144)
  484. (pt 1128 144)
  485. (bus)
  486. )
  487. (connector
  488. (pt 1128 112)
  489. (pt 1072 112)
  490. (bus)
  491. )
  492. (connector
  493. (pt 1072 112)
  494. (pt 1072 48)
  495. (bus)
  496. )
  497. (connector
  498. (pt 1072 48)
  499. (pt 896 48)
  500. (bus)
  501. )
  502. (connector
  503. (pt 896 48)
  504. (pt 896 144)
  505. (bus)
  506. )
  507. (connector
  508. (pt 896 144)
  509. (pt 896 176)
  510. (bus)
  511. )
  512. (connector
  513. (pt 1240 128)
  514. (pt 1256 128)
  515. (bus)
  516. )
  517. (connector
  518. (pt 1256 128)
  519. (pt 1256 360)
  520. (bus)
  521. )
  522. (connector
  523. (pt 1256 360)
  524. (pt 160 360)
  525. (bus)
  526. )
  527. (connector
  528. (pt 192 184)
  529. (pt 160 184)
  530. (bus)
  531. )
  532. (connector
  533. (pt 160 184)
  534. (pt 160 360)
  535. (bus)
  536. )
  537. (connector
  538. (pt -16 112)
  539. (pt 0 112)
  540. (bus)
  541. )
  542. (connector
  543. (pt 0 264)
  544. (pt 0 112)
  545. (bus)
  546. )
  547. (connector
  548. (pt 0 264)
  549. (pt 8 264)
  550. (bus)
  551. )
  552. (connector
  553. (pt 928 176)
  554. (pt 912 176)
  555. (bus)
  556. )
  557. (connector
  558. (pt 912 176)
  559. (pt 912 256)
  560. (bus)
  561. )
  562. (connector
  563. (pt 912 256)
  564. (pt 480 256)
  565. (bus)
  566. )
  567. (connector
  568. (pt 480 184)
  569. (pt 512 184)
  570. (bus)
  571. )
  572. (connector
  573. (pt 344 160)
  574. (pt 480 160)
  575. (bus)
  576. )
  577. (connector
  578. (pt 480 160)
  579. (pt 480 184)
  580. (bus)
  581. )
  582. (connector
  583. (pt 480 184)
  584. (pt 480 256)
  585. (bus)
  586. )
  587. (junction (pt 264 -64))
  588. (junction (pt 160 112))
  589. (junction (pt 896 144))
  590. (junction (pt 480 184))