Guest User

Untitled

a guest
Jan 18th, 2020
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.00 KB | None | 0 0
  1.  
  2. /----------------------------------------------------------------------------\
  3. | |
  4. | yosys -- Yosys Open SYnthesis Suite |
  5. | |
  6. | Copyright (C) 2012 - 2019 Clifford Wolf <[email protected]> |
  7. | |
  8. | Permission to use, copy, modify, and/or distribute this software for any |
  9. | purpose with or without fee is hereby granted, provided that the above |
  10. | copyright notice and this permission notice appear in all copies. |
  11. | |
  12. | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
  13. | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
  14. | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
  15. | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
  16. | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
  17. | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
  18. | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
  19. | |
  20. \----------------------------------------------------------------------------/
  21.  
  22. Yosys 0.9+1706 (git sha1 2bda51ac, clang 6.0.0-1ubuntu2 -fPIC -Os)
  23.  
  24.  
  25. -- Running command `debug read_verilog s27_newgen.v ; debug proc; dump; debug opt; debug fsm -nomap; debug fsm_export -o lol.kiss2; debug log -stdout loggger.txt' --
  26.  
  27. 1. Executing Verilog-2005 frontend: s27_newgen.v
  28. Parsing Verilog input from `s27_newgen.v' to AST representation.
  29. Generating RTLIL representation for module `\ISCAS89_s27'.
  30. Successfully finished Verilog frontend.
  31.  
  32. 2. Executing PROC pass (convert processes to netlists).
  33.  
  34. 2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
  35. Cleaned up 0 empty switches.
  36.  
  37. 2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
  38. Marked 1 switch rules as full_case in process $proc$s27_newgen.v:24$21 in module ISCAS89_s27.
  39. Removed a total of 0 dead cases.
  40.  
  41. 2.3. Executing PROC_PRUNE pass (remove redundant assignments in processes).
  42. Removed 1 redundant assignment.
  43. Promoted 0 assignments to connections.
  44.  
  45. 2.4. Executing PROC_INIT pass (extract init attributes).
  46.  
  47. 2.5. Executing PROC_ARST pass (detect async resets in processes).
  48.  
  49. 2.6. Executing PROC_MUX pass (convert decision trees to multiplexers).
  50. Creating decoders for process `\ISCAS89_s27.$proc$s27_newgen.v:24$21'.
  51. 1/1: $0\state[2:0]
  52.  
  53. 2.7. Executing PROC_DLATCH pass (convert process syncs to latches).
  54.  
  55. 2.8. Executing PROC_DFF pass (convert process syncs to FFs).
  56. Creating register for signal `\ISCAS89_s27.\state' using process `\ISCAS89_s27.$proc$s27_newgen.v:24$21'.
  57. created $dff cell `$procdff$26' with positive edge clock.
  58.  
  59. 2.9. Executing PROC_CLEAN pass (remove empty switches from decision trees).
  60. Found and cleaned up 1 empty switch in `\ISCAS89_s27.$proc$s27_newgen.v:24$21'.
  61. Removing empty process `ISCAS89_s27.$proc$s27_newgen.v:24$21'.
  62. Cleaned up 1 empty switch.
  63.  
  64. autoidx 27
  65.  
  66. attribute \cells_not_processed 1
  67. attribute \src "s27_newgen.v:3"
  68. module \ISCAS89_s27
  69.  
  70. wire width 3 $procmux$24_Y
  71.  
  72. wire $procmux$25_CMP
  73.  
  74. attribute \src "s27_newgen.v:25"
  75. wire $eq$s27_newgen.v:25$22_Y
  76.  
  77. attribute \src "s27_newgen.v:24"
  78. wire width 3 $0\state[2:0]
  79.  
  80. attribute \src "s27_newgen.v:23"
  81. wire $and$s27_newgen.v:23$20_Y
  82.  
  83. attribute \src "s27_newgen.v:23"
  84. wire $not$s27_newgen.v:23$19_Y
  85.  
  86. attribute \src "s27_newgen.v:23"
  87. wire $not$s27_newgen.v:23$18_Y
  88.  
  89. attribute \src "s27_newgen.v:22"
  90. wire $and$s27_newgen.v:22$17_Y
  91.  
  92. attribute \src "s27_newgen.v:22"
  93. wire $not$s27_newgen.v:22$16_Y
  94.  
  95. attribute \src "s27_newgen.v:22"
  96. wire $not$s27_newgen.v:22$15_Y
  97.  
  98. attribute \src "s27_newgen.v:21"
  99. wire $and$s27_newgen.v:21$14_Y
  100.  
  101. attribute \src "s27_newgen.v:21"
  102. wire $not$s27_newgen.v:21$13_Y
  103.  
  104. attribute \src "s27_newgen.v:21"
  105. wire $not$s27_newgen.v:21$12_Y
  106.  
  107. attribute \src "s27_newgen.v:20"
  108. wire $and$s27_newgen.v:20$11_Y
  109.  
  110. attribute \src "s27_newgen.v:20"
  111. wire $not$s27_newgen.v:20$10_Y
  112.  
  113. attribute \src "s27_newgen.v:20"
  114. wire $not$s27_newgen.v:20$9_Y
  115.  
  116. attribute \src "s27_newgen.v:19"
  117. wire $or$s27_newgen.v:19$8_Y
  118.  
  119. attribute \src "s27_newgen.v:19"
  120. wire $not$s27_newgen.v:19$7_Y
  121.  
  122. attribute \src "s27_newgen.v:19"
  123. wire $not$s27_newgen.v:19$6_Y
  124.  
  125. attribute \src "s27_newgen.v:18"
  126. wire $or$s27_newgen.v:18$5_Y
  127.  
  128. attribute \src "s27_newgen.v:17"
  129. wire $or$s27_newgen.v:17$4_Y
  130.  
  131. attribute \src "s27_newgen.v:16"
  132. wire $and$s27_newgen.v:16$3_Y
  133.  
  134. attribute \src "s27_newgen.v:15"
  135. wire $not$s27_newgen.v:15$2_Y
  136.  
  137. attribute \src "s27_newgen.v:14"
  138. wire $not$s27_newgen.v:14$1_Y
  139.  
  140. attribute \src "s27_newgen.v:12"
  141. wire \n22
  142.  
  143. attribute \src "s27_newgen.v:12"
  144. wire \n17
  145.  
  146. attribute \src "s27_newgen.v:12"
  147. wire \n12
  148.  
  149. attribute \src "s27_newgen.v:12"
  150. wire \new_G12_
  151.  
  152. attribute \src "s27_newgen.v:12"
  153. wire \new_G9_
  154.  
  155. attribute \src "s27_newgen.v:12"
  156. wire \new_G16_
  157.  
  158. attribute \src "s27_newgen.v:12"
  159. wire \new_G15_
  160.  
  161. attribute \src "s27_newgen.v:12"
  162. wire \new_G8_
  163.  
  164. attribute \src "s27_newgen.v:12"
  165. wire \new_G14_
  166.  
  167. attribute \src "s27_newgen.v:10"
  168. wire width 3 \state
  169.  
  170. attribute \src "s27_newgen.v:9"
  171. wire \G7
  172.  
  173. attribute \src "s27_newgen.v:9"
  174. wire \G6
  175.  
  176. attribute \src "s27_newgen.v:9"
  177. wire \G5
  178.  
  179. attribute \src "s27_newgen.v:8"
  180. wire output 6 \G17
  181.  
  182. attribute \src "s27_newgen.v:7"
  183. wire input 5 \G3
  184.  
  185. attribute \src "s27_newgen.v:7"
  186. wire input 4 \G2
  187.  
  188. attribute \src "s27_newgen.v:7"
  189. wire input 3 \G1
  190.  
  191. attribute \src "s27_newgen.v:7"
  192. wire input 2 \G0
  193.  
  194. attribute \src "s27_newgen.v:6"
  195. wire input 7 \rst
  196.  
  197. attribute \src "s27_newgen.v:6"
  198. wire input 1 \clk
  199.  
  200. attribute \src "s27_newgen.v:24"
  201. cell $dff $procdff$26
  202. parameter \CLK_POLARITY 1'1
  203. parameter \WIDTH 3
  204. connect \CLK \clk
  205. connect \Q \state
  206. connect \D $procmux$24_Y
  207. end
  208.  
  209. attribute \full_case 1
  210. attribute \src "s27_newgen.v:25"
  211. cell $mux $procmux$24
  212. parameter \WIDTH 3
  213. connect \Y $procmux$24_Y
  214. connect \S $procmux$25_CMP
  215. connect \B 3'000
  216. connect \A { \n12 \n17 \n22 }
  217. end
  218.  
  219. attribute \src "s27_newgen.v:25"
  220. cell $eq $eq$s27_newgen.v:25$22
  221. parameter \Y_WIDTH 1
  222. parameter \B_WIDTH 1
  223. parameter \A_WIDTH 1
  224. parameter \B_SIGNED 0
  225. parameter \A_SIGNED 0
  226. connect \Y $eq$s27_newgen.v:25$22_Y
  227. connect \B 1'1
  228. connect \A \rst
  229. end
  230.  
  231. attribute \src "s27_newgen.v:23"
  232. cell $and $and$s27_newgen.v:23$20
  233. parameter \Y_WIDTH 1
  234. parameter \B_WIDTH 1
  235. parameter \A_WIDTH 1
  236. parameter \B_SIGNED 0
  237. parameter \A_SIGNED 0
  238. connect \Y $and$s27_newgen.v:23$20_Y
  239. connect \B $not$s27_newgen.v:23$19_Y
  240. connect \A $not$s27_newgen.v:23$18_Y
  241. end
  242.  
  243. attribute \src "s27_newgen.v:23"
  244. cell $not $not$s27_newgen.v:23$19
  245. parameter \Y_WIDTH 1
  246. parameter \A_WIDTH 1
  247. parameter \A_SIGNED 0
  248. connect \Y $not$s27_newgen.v:23$19_Y
  249. connect \A \new_G12_
  250. end
  251.  
  252. attribute \src "s27_newgen.v:23"
  253. cell $not $not$s27_newgen.v:23$18
  254. parameter \Y_WIDTH 1
  255. parameter \A_WIDTH 1
  256. parameter \A_SIGNED 0
  257. connect \Y $not$s27_newgen.v:23$18_Y
  258. connect \A \G2
  259. end
  260.  
  261. attribute \src "s27_newgen.v:22"
  262. cell $and $and$s27_newgen.v:22$17
  263. parameter \Y_WIDTH 1
  264. parameter \B_WIDTH 1
  265. parameter \A_WIDTH 1
  266. parameter \B_SIGNED 0
  267. parameter \A_SIGNED 0
  268. connect \Y $and$s27_newgen.v:22$17_Y
  269. connect \B $not$s27_newgen.v:22$16_Y
  270. connect \A $not$s27_newgen.v:22$15_Y
  271. end
  272.  
  273. attribute \src "s27_newgen.v:22"
  274. cell $not $not$s27_newgen.v:22$16
  275. parameter \Y_WIDTH 1
  276. parameter \A_WIDTH 1
  277. parameter \A_SIGNED 0
  278. connect \Y $not$s27_newgen.v:22$16_Y
  279. connect \A \G7
  280. end
  281.  
  282. attribute \src "s27_newgen.v:22"
  283. cell $not $not$s27_newgen.v:22$15
  284. parameter \Y_WIDTH 1
  285. parameter \A_WIDTH 1
  286. parameter \A_SIGNED 0
  287. connect \Y $not$s27_newgen.v:22$15_Y
  288. connect \A \G1
  289. end
  290.  
  291. attribute \src "s27_newgen.v:21"
  292. cell $and $and$s27_newgen.v:21$14
  293. parameter \Y_WIDTH 1
  294. parameter \B_WIDTH 1
  295. parameter \A_WIDTH 1
  296. parameter \B_SIGNED 0
  297. parameter \A_SIGNED 0
  298. connect \Y $and$s27_newgen.v:21$14_Y
  299. connect \B $not$s27_newgen.v:21$13_Y
  300. connect \A $not$s27_newgen.v:21$12_Y
  301. end
  302.  
  303. attribute \src "s27_newgen.v:21"
  304. cell $not $not$s27_newgen.v:21$13
  305. parameter \Y_WIDTH 1
  306. parameter \A_WIDTH 1
  307. parameter \A_SIGNED 0
  308. connect \Y $not$s27_newgen.v:21$13_Y
  309. connect \A \new_G9_
  310. end
  311.  
  312. attribute \src "s27_newgen.v:21"
  313. cell $not $not$s27_newgen.v:21$12
  314. parameter \Y_WIDTH 1
  315. parameter \A_WIDTH 1
  316. parameter \A_SIGNED 0
  317. connect \Y $not$s27_newgen.v:21$12_Y
  318. connect \A \G5
  319. end
  320.  
  321. attribute \src "s27_newgen.v:20"
  322. cell $and $and$s27_newgen.v:20$11
  323. parameter \Y_WIDTH 1
  324. parameter \B_WIDTH 1
  325. parameter \A_WIDTH 1
  326. parameter \B_SIGNED 0
  327. parameter \A_SIGNED 0
  328. connect \Y $and$s27_newgen.v:20$11_Y
  329. connect \B $not$s27_newgen.v:20$10_Y
  330. connect \A $not$s27_newgen.v:20$9_Y
  331. end
  332.  
  333. attribute \src "s27_newgen.v:20"
  334. cell $not $not$s27_newgen.v:20$10
  335. parameter \Y_WIDTH 1
  336. parameter \A_WIDTH 1
  337. parameter \A_SIGNED 0
  338. connect \Y $not$s27_newgen.v:20$10_Y
  339. connect \A \n17
  340. end
  341.  
  342. attribute \src "s27_newgen.v:20"
  343. cell $not $not$s27_newgen.v:20$9
  344. parameter \Y_WIDTH 1
  345. parameter \A_WIDTH 1
  346. parameter \A_SIGNED 0
  347. connect \Y $not$s27_newgen.v:20$9_Y
  348. connect \A \new_G14_
  349. end
  350.  
  351. attribute \src "s27_newgen.v:19"
  352. cell $or $or$s27_newgen.v:19$8
  353. parameter \Y_WIDTH 1
  354. parameter \B_WIDTH 1
  355. parameter \A_WIDTH 1
  356. parameter \B_SIGNED 0
  357. parameter \A_SIGNED 0
  358. connect \Y $or$s27_newgen.v:19$8_Y
  359. connect \B $not$s27_newgen.v:19$7_Y
  360. connect \A $not$s27_newgen.v:19$6_Y
  361. end
  362.  
  363. attribute \src "s27_newgen.v:19"
  364. cell $not $not$s27_newgen.v:19$7
  365. parameter \Y_WIDTH 1
  366. parameter \A_WIDTH 1
  367. parameter \A_SIGNED 0
  368. connect \Y $not$s27_newgen.v:19$7_Y
  369. connect \A \new_G15_
  370. end
  371.  
  372. attribute \src "s27_newgen.v:19"
  373. cell $not $not$s27_newgen.v:19$6
  374. parameter \Y_WIDTH 1
  375. parameter \A_WIDTH 1
  376. parameter \A_SIGNED 0
  377. connect \Y $not$s27_newgen.v:19$6_Y
  378. connect \A \new_G16_
  379. end
  380.  
  381. attribute \src "s27_newgen.v:18"
  382. cell $or $or$s27_newgen.v:18$5
  383. parameter \Y_WIDTH 1
  384. parameter \B_WIDTH 1
  385. parameter \A_WIDTH 1
  386. parameter \B_SIGNED 0
  387. parameter \A_SIGNED 0
  388. connect \Y $or$s27_newgen.v:18$5_Y
  389. connect \B \new_G8_
  390. connect \A \G3
  391. end
  392.  
  393. attribute \src "s27_newgen.v:17"
  394. cell $or $or$s27_newgen.v:17$4
  395. parameter \Y_WIDTH 1
  396. parameter \B_WIDTH 1
  397. parameter \A_WIDTH 1
  398. parameter \B_SIGNED 0
  399. parameter \A_SIGNED 0
  400. connect \Y $or$s27_newgen.v:17$4_Y
  401. connect \B \new_G8_
  402. connect \A \new_G12_
  403. end
  404.  
  405. attribute \src "s27_newgen.v:16"
  406. cell $and $and$s27_newgen.v:16$3
  407. parameter \Y_WIDTH 1
  408. parameter \B_WIDTH 1
  409. parameter \A_WIDTH 1
  410. parameter \B_SIGNED 0
  411. parameter \A_SIGNED 0
  412. connect \Y $and$s27_newgen.v:16$3_Y
  413. connect \B \G6
  414. connect \A \new_G14_
  415. end
  416.  
  417. attribute \src "s27_newgen.v:15"
  418. cell $not $not$s27_newgen.v:15$2
  419. parameter \Y_WIDTH 1
  420. parameter \A_WIDTH 1
  421. parameter \A_SIGNED 0
  422. connect \Y $not$s27_newgen.v:15$2_Y
  423. connect \A \n17
  424. end
  425.  
  426. attribute \src "s27_newgen.v:14"
  427. cell $not $not$s27_newgen.v:14$1
  428. parameter \Y_WIDTH 1
  429. parameter \A_WIDTH 1
  430. parameter \A_SIGNED 0
  431. connect \Y $not$s27_newgen.v:14$1_Y
  432. connect \A \G0
  433. end
  434.  
  435. connect { \G5 \G6 \G7 } \state
  436. connect \new_G14_ $not$s27_newgen.v:14$1_Y
  437. connect \G17 $not$s27_newgen.v:15$2_Y
  438. connect \new_G8_ $and$s27_newgen.v:16$3_Y
  439. connect \new_G15_ $or$s27_newgen.v:17$4_Y
  440. connect \new_G16_ $or$s27_newgen.v:18$5_Y
  441. connect \new_G9_ $or$s27_newgen.v:19$8_Y
  442. connect \n12 $and$s27_newgen.v:20$11_Y
  443. connect \n17 $and$s27_newgen.v:21$14_Y
  444. connect \new_G12_ $and$s27_newgen.v:22$17_Y
  445. connect \n22 $and$s27_newgen.v:23$20_Y
  446. connect $procmux$25_CMP $eq$s27_newgen.v:25$22_Y
  447. connect $0\state[2:0] $procmux$24_Y
  448. end
  449.  
  450. 3. Executing OPT pass (performing simple optimizations).
  451.  
  452. 3.1. Executing OPT_EXPR pass (perform const folding).
  453. Optimizing module ISCAS89_s27.
  454. Replacing $not cell `$not$s27_newgen.v:20$9' (double_invert) in module `\ISCAS89_s27' with constant driver `$not$s27_newgen.v:20$9_Y = \G0'.
  455. Replacing $eq cell `$eq$s27_newgen.v:25$22' (1) in module `\ISCAS89_s27' with constant driver `$eq$s27_newgen.v:25$22_Y = \rst'.
  456.  
  457. 3.2. Executing OPT_MERGE pass (detect identical cells).
  458. Finding identical cells in module `\ISCAS89_s27'.
  459. Cell `$not$s27_newgen.v:15$2' is identical to cell `$not$s27_newgen.v:20$10'.
  460. Redirecting output \Y: $not$s27_newgen.v:15$2_Y = $not$s27_newgen.v:20$10_Y
  461. Removing $not cell `$not$s27_newgen.v:15$2' from module `\ISCAS89_s27'.
  462. Removed a total of 1 cells.
  463.  
  464. 3.3. Executing OPT_MUXTREE pass (detect dead branches in mux trees).
  465. Running muxtree optimizer on module \ISCAS89_s27..
  466. Creating internal representation of mux trees.
  467. Evaluating internal representation of mux trees.
  468. Root of a mux tree: $procmux$24 (pure)
  469. Analyzing evaluation results.
  470. Removed 0 multiplexer ports.
  471.  
  472. 3.4. Executing OPT_REDUCE pass (consolidate $*mux and $reduce_* inputs).
  473. Optimizing cells in module \ISCAS89_s27.
  474. Performed a total of 0 changes.
  475.  
  476. 3.5. Executing OPT_MERGE pass (detect identical cells).
  477. Finding identical cells in module `\ISCAS89_s27'.
  478. Removed a total of 0 cells.
  479.  
  480. 3.6. Executing OPT_RMDFF pass (remove dff with constant values).
  481.  
  482. 3.7. Executing OPT_CLEAN pass (remove unused cells and wires).
  483. Finding unused cells or wires in module \ISCAS89_s27..
  484. removing unused non-port wire $not$s27_newgen.v:14$1_Y.
  485. removing unused non-port wire $not$s27_newgen.v:15$2_Y.
  486. removing unused non-port wire $and$s27_newgen.v:16$3_Y.
  487. removing unused non-port wire $or$s27_newgen.v:17$4_Y.
  488. removing unused non-port wire $or$s27_newgen.v:18$5_Y.
  489. removing unused non-port wire $or$s27_newgen.v:19$8_Y.
  490. removing unused non-port wire $not$s27_newgen.v:20$9_Y.
  491. removing unused non-port wire $not$s27_newgen.v:20$10_Y.
  492. removing unused non-port wire $and$s27_newgen.v:20$11_Y.
  493. removing unused non-port wire $and$s27_newgen.v:21$14_Y.
  494. removing unused non-port wire $and$s27_newgen.v:22$17_Y.
  495. removing unused non-port wire $and$s27_newgen.v:23$20_Y.
  496. removing unused non-port wire $eq$s27_newgen.v:25$22_Y.
  497. removing unused non-port wire $procmux$25_CMP.
  498. removing unused non-port wire $procmux$24_Y.
  499. Removed 0 unused cells and 15 unused wires.
  500.  
  501. 3.8. Executing OPT_EXPR pass (perform const folding).
  502. Optimizing module ISCAS89_s27.
  503.  
  504. 3.9. Finished OPT passes. (There is nothing left to do.)
  505.  
  506. 4. Executing FSM pass (extract and optimize FSM).
  507.  
  508. 4.1. Executing FSM_DETECT pass (finding FSMs in design).
  509.  
  510. 4.2. Executing FSM_EXTRACT pass (extracting FSM from design).
  511.  
  512. 4.3. Executing FSM_OPT pass (simple optimizations of FSMs).
  513.  
  514. 4.4. Executing OPT_CLEAN pass (remove unused cells and wires).
  515. Finding unused cells or wires in module \ISCAS89_s27..
  516.  
  517. 4.5. Executing FSM_OPT pass (simple optimizations of FSMs).
  518.  
  519. 4.6. Executing FSM_RECODE pass (re-assigning FSM state encoding).
  520.  
  521. 4.7. Executing FSM_INFO pass (dumping all available information on FSM cells).
  522.  
  523. 5. Executing FSM_EXPORT pass (exporting FSMs in KISS2 file format).
  524. loggger.txt
  525. loggger.txt
  526.  
  527. End of script. Logfile hash: 411a50581e, CPU: user 0.02s system 0.00s, MEM: 9.12 MB peak
  528. Yosys 0.9+1706 (git sha1 2bda51ac, clang 6.0.0-1ubuntu2 -fPIC -Os)
  529. Time spent: 31% 2x read_verilog (0 sec), 14% 2x opt_expr (0 sec), ...
Advertisement
Add Comment
Please, Sign In to add comment