FifoDDS.vo 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. //Copyright (C)2014-2025 Gowin Semiconductor Corporation.
  2. //All rights reserved.
  3. //File Title: Post-PnR Verilog Simulation Model file
  4. //Tool Version: V1.9.11.02 (64-bit)
  5. //Created Time: Thu Jun 26 11:09:20 2025
  6. `timescale 100 ps/100 ps
  7. module FifoDDS(
  8. Data,
  9. Reset,
  10. WrClk,
  11. RdClk,
  12. WrEn,
  13. RdEn,
  14. Q,
  15. Empty,
  16. Full
  17. );
  18. input [79:0] Data;
  19. input Reset;
  20. input WrClk;
  21. input RdClk;
  22. input WrEn;
  23. input RdEn;
  24. output [79:0] Q;
  25. output Empty;
  26. output Full;
  27. wire [79:0] Data;
  28. wire Empty;
  29. wire Full;
  30. wire GND;
  31. wire [79:0] Q;
  32. wire RdClk;
  33. wire RdEn;
  34. wire Reset;
  35. wire VCC;
  36. wire WrClk;
  37. wire WrEn;
  38. wire \fifo_inst/n20_5 ;
  39. wire \fifo_inst/n24_3 ;
  40. wire \fifo_inst/n423_3 ;
  41. wire \fifo_inst/n538_4 ;
  42. wire \fifo_inst/rempty_val ;
  43. wire \fifo_inst/wfull_val_7 ;
  44. wire \fifo_inst/wfull_val1 ;
  45. wire \fifo_inst/wfull_val1_0 ;
  46. wire \fifo_inst/Full_1 ;
  47. wire \fifo_inst/Equal.wbinnext_0_8 ;
  48. wire \fifo_inst/rbin_num_next_0_10 ;
  49. wire \fifo_inst/rempty_val1 ;
  50. wire \fifo_inst/wfull_val1_2 ;
  51. wire \fifo_inst/wfull_val1_3 ;
  52. wire \fifo_inst/Full_1_2 ;
  53. wire \fifo_inst/Full_2 ;
  54. wire \fifo_inst/n4_6 ;
  55. wire \fifo_inst/n9_6 ;
  56. wire [0:0] \fifo_inst/Equal.wgraynext ;
  57. wire [1:1] \fifo_inst/Equal.wbinnext ;
  58. wire [1:1] \fifo_inst/rbin_num_next ;
  59. wire [0:0] \fifo_inst/Equal.rgraynext ;
  60. wire [1:0] \fifo_inst/reset_r ;
  61. wire [1:0] \fifo_inst/reset_w ;
  62. wire [1:0] \fifo_inst/rbin_num ;
  63. wire [0:0] \fifo_inst/rptr ;
  64. wire [1:0] \fifo_inst/wptr ;
  65. wire [0:0] \fifo_inst/Equal.wbin ;
  66. wire [31:16] \fifo_inst/DO ;
  67. VCC VCC_cZ (
  68. .V(VCC)
  69. );
  70. GND GND_cZ (
  71. .G(GND)
  72. );
  73. GSR GSR (
  74. .GSRI(VCC)
  75. );
  76. LUT4 \fifo_inst/n20_s1 (
  77. .I0(\fifo_inst/Full_2 ),
  78. .I1(\fifo_inst/Full_1_2 ),
  79. .I2(\fifo_inst/Full_1 ),
  80. .I3(WrEn),
  81. .F(\fifo_inst/n20_5 )
  82. );
  83. defparam \fifo_inst/n20_s1 .INIT=16'h5300;
  84. LUT2 \fifo_inst/n24_s0 (
  85. .I0(Empty),
  86. .I1(RdEn),
  87. .F(\fifo_inst/n24_3 )
  88. );
  89. defparam \fifo_inst/n24_s0 .INIT=4'h4;
  90. LUT3 \fifo_inst/Equal.wgraynext_0_s0 (
  91. .I0(\fifo_inst/n20_5 ),
  92. .I1(\fifo_inst/Equal.wbin [0]),
  93. .I2(\fifo_inst/wptr [1]),
  94. .F(\fifo_inst/Equal.wgraynext [0])
  95. );
  96. defparam \fifo_inst/Equal.wgraynext_0_s0 .INIT=8'h1E;
  97. LUT2 \fifo_inst/n423_s0 (
  98. .I0(\fifo_inst/rempty_val ),
  99. .I1(\fifo_inst/reset_r [1]),
  100. .F(\fifo_inst/n423_3 )
  101. );
  102. defparam \fifo_inst/n423_s0 .INIT=4'hE;
  103. LUT2 \fifo_inst/n538_s1 (
  104. .I0(\fifo_inst/reset_w [1]),
  105. .I1(\fifo_inst/wfull_val_7 ),
  106. .F(\fifo_inst/n538_4 )
  107. );
  108. defparam \fifo_inst/n538_s1 .INIT=4'h4;
  109. LUT4 \fifo_inst/rempty_val_s3 (
  110. .I0(\fifo_inst/wptr [0]),
  111. .I1(\fifo_inst/rptr [0]),
  112. .I2(\fifo_inst/wptr [1]),
  113. .I3(\fifo_inst/rbin_num [1]),
  114. .F(\fifo_inst/rempty_val )
  115. );
  116. defparam \fifo_inst/rempty_val_s3 .INIT=16'h9009;
  117. LUT4 \fifo_inst/wfull_val_s3 (
  118. .I0(\fifo_inst/wptr [0]),
  119. .I1(\fifo_inst/wptr [1]),
  120. .I2(\fifo_inst/rbin_num [1]),
  121. .I3(\fifo_inst/rptr [0]),
  122. .F(\fifo_inst/wfull_val_7 )
  123. );
  124. defparam \fifo_inst/wfull_val_s3 .INIT=16'h1428;
  125. LUT3 \fifo_inst/wfull_val1_s9 (
  126. .I0(\fifo_inst/wfull_val1_3 ),
  127. .I1(\fifo_inst/wfull_val1_2 ),
  128. .I2(\fifo_inst/wfull_val1_0 ),
  129. .F(\fifo_inst/wfull_val1 )
  130. );
  131. defparam \fifo_inst/wfull_val1_s9 .INIT=8'hAC;
  132. LUT3 \fifo_inst/wfull_val1_s10 (
  133. .I0(\fifo_inst/wfull_val1_0 ),
  134. .I1(\fifo_inst/wfull_val_7 ),
  135. .I2(\fifo_inst/reset_w [1]),
  136. .F(\fifo_inst/wfull_val1_0 )
  137. );
  138. defparam \fifo_inst/wfull_val1_s10 .INIT=8'h0E;
  139. LUT3 \fifo_inst/Full_d_s (
  140. .I0(\fifo_inst/Full_2 ),
  141. .I1(\fifo_inst/Full_1_2 ),
  142. .I2(\fifo_inst/Full_1 ),
  143. .F(Full)
  144. );
  145. defparam \fifo_inst/Full_d_s .INIT=8'hAC;
  146. LUT3 \fifo_inst/Full_s8 (
  147. .I0(\fifo_inst/Full_1 ),
  148. .I1(\fifo_inst/wfull_val_7 ),
  149. .I2(\fifo_inst/reset_w [1]),
  150. .F(\fifo_inst/Full_1 )
  151. );
  152. defparam \fifo_inst/Full_s8 .INIT=8'h0E;
  153. LUT2 \fifo_inst/Equal.wbinnext_0_s3 (
  154. .I0(\fifo_inst/n20_5 ),
  155. .I1(\fifo_inst/Equal.wbin [0]),
  156. .F(\fifo_inst/Equal.wbinnext_0_8 )
  157. );
  158. defparam \fifo_inst/Equal.wbinnext_0_s3 .INIT=4'h6;
  159. LUT3 \fifo_inst/Equal.wbinnext_1_s2 (
  160. .I0(\fifo_inst/n20_5 ),
  161. .I1(\fifo_inst/Equal.wbin [0]),
  162. .I2(\fifo_inst/wptr [1]),
  163. .F(\fifo_inst/Equal.wbinnext [1])
  164. );
  165. defparam \fifo_inst/Equal.wbinnext_1_s2 .INIT=8'h78;
  166. LUT4 \fifo_inst/rbin_num_next_1_s3 (
  167. .I0(Empty),
  168. .I1(RdEn),
  169. .I2(\fifo_inst/rbin_num [0]),
  170. .I3(\fifo_inst/rbin_num [1]),
  171. .F(\fifo_inst/rbin_num_next [1])
  172. );
  173. defparam \fifo_inst/rbin_num_next_1_s3 .INIT=16'hBF40;
  174. LUT3 \fifo_inst/rbin_num_next_0_s4 (
  175. .I0(Empty),
  176. .I1(RdEn),
  177. .I2(\fifo_inst/rbin_num [0]),
  178. .F(\fifo_inst/rbin_num_next_0_10 )
  179. );
  180. defparam \fifo_inst/rbin_num_next_0_s4 .INIT=8'hB4;
  181. LUT4 \fifo_inst/Equal.rgraynext_0_s1 (
  182. .I0(Empty),
  183. .I1(RdEn),
  184. .I2(\fifo_inst/rbin_num [0]),
  185. .I3(\fifo_inst/rbin_num [1]),
  186. .F(\fifo_inst/Equal.rgraynext [0])
  187. );
  188. defparam \fifo_inst/Equal.rgraynext_0_s1 .INIT=16'h0BF4;
  189. DFFP \fifo_inst/reset_r_0_s0 (
  190. .D(GND),
  191. .CLK(\fifo_inst/n4_6 ),
  192. .PRESET(Reset),
  193. .Q(\fifo_inst/reset_r [0])
  194. );
  195. defparam \fifo_inst/reset_r_0_s0 .INIT=1'b1;
  196. DFFP \fifo_inst/reset_w_1_s0 (
  197. .D(\fifo_inst/reset_w [0]),
  198. .CLK(\fifo_inst/n9_6 ),
  199. .PRESET(Reset),
  200. .Q(\fifo_inst/reset_w [1])
  201. );
  202. defparam \fifo_inst/reset_w_1_s0 .INIT=1'b1;
  203. DFFP \fifo_inst/reset_w_0_s0 (
  204. .D(GND),
  205. .CLK(\fifo_inst/n9_6 ),
  206. .PRESET(Reset),
  207. .Q(\fifo_inst/reset_w [0])
  208. );
  209. defparam \fifo_inst/reset_w_0_s0 .INIT=1'b1;
  210. DFFC \fifo_inst/rbin_num_1_s0 (
  211. .D(\fifo_inst/rbin_num_next [1]),
  212. .CLK(RdClk),
  213. .CLEAR(\fifo_inst/reset_r [1]),
  214. .Q(\fifo_inst/rbin_num [1])
  215. );
  216. defparam \fifo_inst/rbin_num_1_s0 .INIT=1'b0;
  217. DFFC \fifo_inst/rbin_num_0_s0 (
  218. .D(\fifo_inst/rbin_num_next_0_10 ),
  219. .CLK(RdClk),
  220. .CLEAR(\fifo_inst/reset_r [1]),
  221. .Q(\fifo_inst/rbin_num [0])
  222. );
  223. defparam \fifo_inst/rbin_num_0_s0 .INIT=1'b0;
  224. DFFC \fifo_inst/rptr_0_s0 (
  225. .D(\fifo_inst/Equal.rgraynext [0]),
  226. .CLK(RdClk),
  227. .CLEAR(\fifo_inst/reset_r [1]),
  228. .Q(\fifo_inst/rptr [0])
  229. );
  230. defparam \fifo_inst/rptr_0_s0 .INIT=1'b0;
  231. DFFC \fifo_inst/wptr_1_s0 (
  232. .D(\fifo_inst/Equal.wbinnext [1]),
  233. .CLK(WrClk),
  234. .CLEAR(\fifo_inst/reset_w [1]),
  235. .Q(\fifo_inst/wptr [1])
  236. );
  237. defparam \fifo_inst/wptr_1_s0 .INIT=1'b0;
  238. DFFC \fifo_inst/wptr_0_s0 (
  239. .D(\fifo_inst/Equal.wgraynext [0]),
  240. .CLK(WrClk),
  241. .CLEAR(\fifo_inst/reset_w [1]),
  242. .Q(\fifo_inst/wptr [0])
  243. );
  244. defparam \fifo_inst/wptr_0_s0 .INIT=1'b0;
  245. DFFC \fifo_inst/Equal.wbin_0_s0 (
  246. .D(\fifo_inst/Equal.wbinnext_0_8 ),
  247. .CLK(WrClk),
  248. .CLEAR(\fifo_inst/reset_w [1]),
  249. .Q(\fifo_inst/Equal.wbin [0])
  250. );
  251. defparam \fifo_inst/Equal.wbin_0_s0 .INIT=1'b0;
  252. DFFP \fifo_inst/rempty_val1_s0 (
  253. .D(\fifo_inst/rempty_val ),
  254. .CLK(RdClk),
  255. .PRESET(\fifo_inst/n423_3 ),
  256. .Q(\fifo_inst/rempty_val1 )
  257. );
  258. defparam \fifo_inst/rempty_val1_s0 .INIT=1'b1;
  259. DFFP \fifo_inst/Empty_s0 (
  260. .D(\fifo_inst/rempty_val1 ),
  261. .CLK(RdClk),
  262. .PRESET(\fifo_inst/n423_3 ),
  263. .Q(Empty)
  264. );
  265. defparam \fifo_inst/Empty_s0 .INIT=1'b1;
  266. DFFP \fifo_inst/reset_r_1_s0 (
  267. .D(\fifo_inst/reset_r [0]),
  268. .CLK(\fifo_inst/n4_6 ),
  269. .PRESET(Reset),
  270. .Q(\fifo_inst/reset_r [1])
  271. );
  272. defparam \fifo_inst/reset_r_1_s0 .INIT=1'b1;
  273. DFFC \fifo_inst/wfull_val1_s0 (
  274. .D(\fifo_inst/wfull_val_7 ),
  275. .CLK(WrClk),
  276. .CLEAR(\fifo_inst/reset_w [1]),
  277. .Q(\fifo_inst/wfull_val1_2 )
  278. );
  279. defparam \fifo_inst/wfull_val1_s0 .INIT=1'b0;
  280. DFFP \fifo_inst/wfull_val1_s1 (
  281. .D(\fifo_inst/wfull_val_7 ),
  282. .CLK(WrClk),
  283. .PRESET(\fifo_inst/n538_4 ),
  284. .Q(\fifo_inst/wfull_val1_3 )
  285. );
  286. defparam \fifo_inst/wfull_val1_s1 .INIT=1'b1;
  287. DFFC \fifo_inst/Full_s0 (
  288. .D(\fifo_inst/wfull_val1 ),
  289. .CLK(WrClk),
  290. .CLEAR(\fifo_inst/reset_w [1]),
  291. .Q(\fifo_inst/Full_1_2 )
  292. );
  293. defparam \fifo_inst/Full_s0 .INIT=1'b0;
  294. DFFP \fifo_inst/Full_s1 (
  295. .D(\fifo_inst/wfull_val1 ),
  296. .CLK(WrClk),
  297. .PRESET(\fifo_inst/n538_4 ),
  298. .Q(\fifo_inst/Full_2 )
  299. );
  300. defparam \fifo_inst/Full_s1 .INIT=1'b1;
  301. SDPB \fifo_inst/Equal.mem_Equal.mem_0_0_s (
  302. .CLKA(WrClk),
  303. .CEA(\fifo_inst/n20_5 ),
  304. .RESETA(GND),
  305. .CLKB(RdClk),
  306. .CEB(\fifo_inst/n24_3 ),
  307. .RESETB(\fifo_inst/reset_r [1]),
  308. .OCE(GND),
  309. .BLKSELA({GND, GND, GND}),
  310. .BLKSELB({GND, GND, GND}),
  311. .DI({Data[31:0]}),
  312. .ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, VCC, VCC, VCC, VCC}),
  313. .ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
  314. .DO({Q[31:0]})
  315. );
  316. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .READ_MODE=1'b0;
  317. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_0=32;
  318. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BIT_WIDTH_1=32;
  319. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .RESET_MODE="ASYNC";
  320. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_0=3'b000;
  321. defparam \fifo_inst/Equal.mem_Equal.mem_0_0_s .BLK_SEL_1=3'b000;
  322. SDPB \fifo_inst/Equal.mem_Equal.mem_0_1_s (
  323. .CLKA(WrClk),
  324. .CEA(\fifo_inst/n20_5 ),
  325. .RESETA(GND),
  326. .CLKB(RdClk),
  327. .CEB(\fifo_inst/n24_3 ),
  328. .RESETB(\fifo_inst/reset_r [1]),
  329. .OCE(GND),
  330. .BLKSELA({GND, GND, GND}),
  331. .BLKSELB({GND, GND, GND}),
  332. .DI({Data[63:32]}),
  333. .ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, VCC, VCC, VCC, VCC}),
  334. .ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
  335. .DO({Q[63:32]})
  336. );
  337. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .READ_MODE=1'b0;
  338. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_0=32;
  339. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BIT_WIDTH_1=32;
  340. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .RESET_MODE="ASYNC";
  341. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_0=3'b000;
  342. defparam \fifo_inst/Equal.mem_Equal.mem_0_1_s .BLK_SEL_1=3'b000;
  343. SDPB \fifo_inst/Equal.mem_Equal.mem_0_2_s (
  344. .CLKA(WrClk),
  345. .CEA(\fifo_inst/n20_5 ),
  346. .RESETA(GND),
  347. .CLKB(RdClk),
  348. .CEB(\fifo_inst/n24_3 ),
  349. .RESETB(\fifo_inst/reset_r [1]),
  350. .OCE(GND),
  351. .BLKSELA({GND, GND, GND}),
  352. .BLKSELB({GND, GND, GND}),
  353. .DI({GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, GND, Data[79:64]}),
  354. .ADA({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/Equal.wbin [0], GND, VCC, VCC, VCC, VCC}),
  355. .ADB({GND, GND, GND, GND, GND, GND, GND, GND, \fifo_inst/rbin_num [0], GND, GND, GND, GND, GND}),
  356. .DO({\fifo_inst/DO [31:16], Q[79:64]})
  357. );
  358. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .READ_MODE=1'b0;
  359. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BIT_WIDTH_0=32;
  360. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BIT_WIDTH_1=32;
  361. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .RESET_MODE="ASYNC";
  362. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BLK_SEL_0=3'b000;
  363. defparam \fifo_inst/Equal.mem_Equal.mem_0_2_s .BLK_SEL_1=3'b000;
  364. INV \fifo_inst/n4_s2 (
  365. .I(RdClk),
  366. .O(\fifo_inst/n4_6 )
  367. );
  368. INV \fifo_inst/n9_s2 (
  369. .I(WrClk),
  370. .O(\fifo_inst/n9_6 )
  371. );
  372. endmodule