⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsm.v

📁 用状态机实现一个逻辑运算单元,该逻辑运算单元拥有常规的计算功能.状态机保证层次清晰,用门级电路搭建而成,可以直接综合并且流片.
💻 V
📖 第 1 页 / 共 5 页
字号:
module pg20_3 ( a, b, p, g );  input [19:0] a;  input [19:0] b;  output [19:0] p;  output [19:0] g;  XOR2X1 U1 ( .A(b[6]), .B(a[6]), .Y(p[6]) );  XOR2X1 U2 ( .A(b[11]), .B(a[11]), .Y(p[11]) );  XOR2X1 U3 ( .A(b[1]), .B(a[1]), .Y(p[1]) );  XOR2X1 U4 ( .A(b[16]), .B(a[16]), .Y(p[16]) );  XOR2X1 U5 ( .A(b[17]), .B(a[17]), .Y(p[17]) );  XOR2X1 U6 ( .A(b[12]), .B(a[12]), .Y(p[12]) );  XOR2X1 U7 ( .A(b[7]), .B(a[7]), .Y(p[7]) );  XOR2X1 U8 ( .A(b[2]), .B(a[2]), .Y(p[2]) );  AND2X2 U9 ( .A(b[4]), .B(a[4]), .Y(g[4]) );  AND2X2 U10 ( .A(b[9]), .B(a[9]), .Y(g[9]) );  XOR2X1 U11 ( .A(b[5]), .B(a[5]), .Y(p[5]) );  XOR2X1 U12 ( .A(b[10]), .B(a[10]), .Y(p[10]) );  XOR2X1 U13 ( .A(b[0]), .B(a[0]), .Y(p[0]) );  XOR2X1 U14 ( .A(b[15]), .B(a[15]), .Y(p[15]) );  XOR2X1 U15 ( .A(b[4]), .B(a[4]), .Y(p[4]) );  XOR2X1 U16 ( .A(b[14]), .B(a[14]), .Y(p[14]) );  XOR2X1 U17 ( .A(b[9]), .B(a[9]), .Y(p[9]) );  XOR2X1 U18 ( .A(b[19]), .B(a[19]), .Y(p[19]) );  XOR2X1 U19 ( .A(b[8]), .B(a[8]), .Y(p[8]) );  XOR2X1 U20 ( .A(b[13]), .B(a[13]), .Y(p[13]) );  XOR2X1 U21 ( .A(b[3]), .B(a[3]), .Y(p[3]) );  XOR2X1 U22 ( .A(b[18]), .B(a[18]), .Y(p[18]) );  AND2X2 U23 ( .A(b[3]), .B(a[3]), .Y(g[3]) );  AND2X2 U24 ( .A(b[13]), .B(a[13]), .Y(g[13]) );  AND2X2 U25 ( .A(b[8]), .B(a[8]), .Y(g[8]) );  AND2X2 U26 ( .A(b[18]), .B(a[18]), .Y(g[18]) );  AND2X2 U27 ( .A(b[0]), .B(a[0]), .Y(g[0]) );  AND2X2 U28 ( .A(b[5]), .B(a[5]), .Y(g[5]) );  AND2X2 U29 ( .A(b[15]), .B(a[15]), .Y(g[15]) );  AND2X2 U30 ( .A(b[10]), .B(a[10]), .Y(g[10]) );  AND2X2 U31 ( .A(b[1]), .B(a[1]), .Y(g[1]) );  AND2X2 U32 ( .A(b[6]), .B(a[6]), .Y(g[6]) );  AND2X2 U33 ( .A(b[2]), .B(a[2]), .Y(g[2]) );  AND2X2 U34 ( .A(b[7]), .B(a[7]), .Y(g[7]) );  AND2X2 U35 ( .A(b[16]), .B(a[16]), .Y(g[16]) );  AND2X2 U36 ( .A(b[17]), .B(a[17]), .Y(g[17]) );  AND2X2 U37 ( .A(b[11]), .B(a[11]), .Y(g[11]) );  AND2X2 U38 ( .A(b[12]), .B(a[12]), .Y(g[12]) );  AND2X2 U39 ( .A(b[19]), .B(a[19]), .Y(g[19]) );  AND2X2 U40 ( .A(b[14]), .B(a[14]), .Y(g[14]) );endmodulemodule pg20_2 ( a, b, p, g );  input [19:0] a;  input [19:0] b;  output [19:0] p;  output [19:0] g;  XOR2X1 U1 ( .A(b[6]), .B(a[6]), .Y(p[6]) );  XOR2X1 U2 ( .A(b[11]), .B(a[11]), .Y(p[11]) );  XOR2X1 U3 ( .A(b[1]), .B(a[1]), .Y(p[1]) );  XOR2X1 U4 ( .A(b[16]), .B(a[16]), .Y(p[16]) );  XOR2X1 U5 ( .A(b[17]), .B(a[17]), .Y(p[17]) );  XOR2X1 U6 ( .A(b[12]), .B(a[12]), .Y(p[12]) );  XOR2X1 U7 ( .A(b[7]), .B(a[7]), .Y(p[7]) );  XOR2X1 U8 ( .A(b[2]), .B(a[2]), .Y(p[2]) );  AND2X2 U9 ( .A(b[4]), .B(a[4]), .Y(g[4]) );  AND2X2 U10 ( .A(b[9]), .B(a[9]), .Y(g[9]) );  XOR2X1 U11 ( .A(b[5]), .B(a[5]), .Y(p[5]) );  XOR2X1 U12 ( .A(b[10]), .B(a[10]), .Y(p[10]) );  XOR2X1 U13 ( .A(b[0]), .B(a[0]), .Y(p[0]) );  XOR2X1 U14 ( .A(b[15]), .B(a[15]), .Y(p[15]) );  XOR2X1 U15 ( .A(b[4]), .B(a[4]), .Y(p[4]) );  XOR2X1 U16 ( .A(b[14]), .B(a[14]), .Y(p[14]) );  XOR2X1 U17 ( .A(b[9]), .B(a[9]), .Y(p[9]) );  XOR2X1 U18 ( .A(b[19]), .B(a[19]), .Y(p[19]) );  XOR2X1 U19 ( .A(b[8]), .B(a[8]), .Y(p[8]) );  XOR2X1 U20 ( .A(b[13]), .B(a[13]), .Y(p[13]) );  XOR2X1 U21 ( .A(b[3]), .B(a[3]), .Y(p[3]) );  XOR2X1 U22 ( .A(b[18]), .B(a[18]), .Y(p[18]) );  AND2X2 U23 ( .A(b[3]), .B(a[3]), .Y(g[3]) );  AND2X2 U24 ( .A(b[13]), .B(a[13]), .Y(g[13]) );  AND2X2 U25 ( .A(b[8]), .B(a[8]), .Y(g[8]) );  AND2X2 U26 ( .A(b[18]), .B(a[18]), .Y(g[18]) );  AND2X2 U27 ( .A(b[0]), .B(a[0]), .Y(g[0]) );  AND2X2 U28 ( .A(b[10]), .B(a[10]), .Y(g[10]) );  AND2X2 U29 ( .A(b[5]), .B(a[5]), .Y(g[5]) );  AND2X2 U30 ( .A(b[15]), .B(a[15]), .Y(g[15]) );  AND2X2 U31 ( .A(b[1]), .B(a[1]), .Y(g[1]) );  AND2X2 U32 ( .A(b[11]), .B(a[11]), .Y(g[11]) );  AND2X2 U33 ( .A(b[6]), .B(a[6]), .Y(g[6]) );  AND2X2 U34 ( .A(b[2]), .B(a[2]), .Y(g[2]) );  AND2X2 U35 ( .A(b[12]), .B(a[12]), .Y(g[12]) );  AND2X2 U36 ( .A(b[7]), .B(a[7]), .Y(g[7]) );  AND2X2 U37 ( .A(b[16]), .B(a[16]), .Y(g[16]) );  AND2X2 U38 ( .A(b[17]), .B(a[17]), .Y(g[17]) );  AND2X2 U39 ( .A(b[19]), .B(a[19]), .Y(g[19]) );  AND2X2 U40 ( .A(b[14]), .B(a[14]), .Y(g[14]) );endmodulemodule pg20_1 ( a, b, p, g );  input [19:0] a;  input [19:0] b;  output [19:0] p;  output [19:0] g;  XOR2X1 U1 ( .A(b[6]), .B(a[6]), .Y(p[6]) );  XOR2X1 U2 ( .A(b[11]), .B(a[11]), .Y(p[11]) );  XOR2X1 U3 ( .A(b[1]), .B(a[1]), .Y(p[1]) );  XOR2X1 U4 ( .A(b[16]), .B(a[16]), .Y(p[16]) );  XOR2X1 U5 ( .A(b[17]), .B(a[17]), .Y(p[17]) );  XOR2X1 U6 ( .A(b[12]), .B(a[12]), .Y(p[12]) );  XOR2X1 U7 ( .A(b[7]), .B(a[7]), .Y(p[7]) );  XOR2X1 U8 ( .A(b[2]), .B(a[2]), .Y(p[2]) );  AND2X2 U9 ( .A(b[4]), .B(a[4]), .Y(g[4]) );  AND2X2 U10 ( .A(b[9]), .B(a[9]), .Y(g[9]) );  XOR2X1 U11 ( .A(b[5]), .B(a[5]), .Y(p[5]) );  XOR2X1 U12 ( .A(b[10]), .B(a[10]), .Y(p[10]) );  XOR2X1 U13 ( .A(b[0]), .B(a[0]), .Y(p[0]) );  XOR2X1 U14 ( .A(b[15]), .B(a[15]), .Y(p[15]) );  XOR2X1 U15 ( .A(b[4]), .B(a[4]), .Y(p[4]) );  XOR2X1 U16 ( .A(b[14]), .B(a[14]), .Y(p[14]) );  XOR2X1 U17 ( .A(b[9]), .B(a[9]), .Y(p[9]) );  XOR2X1 U18 ( .A(b[19]), .B(a[19]), .Y(p[19]) );  XOR2X1 U19 ( .A(b[8]), .B(a[8]), .Y(p[8]) );  XOR2X1 U20 ( .A(b[13]), .B(a[13]), .Y(p[13]) );  XOR2X1 U21 ( .A(b[3]), .B(a[3]), .Y(p[3]) );  XOR2X1 U22 ( .A(b[18]), .B(a[18]), .Y(p[18]) );  AND2X2 U23 ( .A(b[3]), .B(a[3]), .Y(g[3]) );  AND2X2 U24 ( .A(b[13]), .B(a[13]), .Y(g[13]) );  AND2X2 U25 ( .A(b[8]), .B(a[8]), .Y(g[8]) );  AND2X2 U26 ( .A(b[18]), .B(a[18]), .Y(g[18]) );  AND2X2 U27 ( .A(b[0]), .B(a[0]), .Y(g[0]) );  AND2X2 U28 ( .A(b[5]), .B(a[5]), .Y(g[5]) );  AND2X2 U29 ( .A(b[15]), .B(a[15]), .Y(g[15]) );  AND2X2 U30 ( .A(b[10]), .B(a[10]), .Y(g[10]) );  AND2X2 U31 ( .A(b[1]), .B(a[1]), .Y(g[1]) );  AND2X2 U32 ( .A(b[6]), .B(a[6]), .Y(g[6]) );  AND2X2 U33 ( .A(b[2]), .B(a[2]), .Y(g[2]) );  AND2X2 U34 ( .A(b[7]), .B(a[7]), .Y(g[7]) );  AND2X2 U35 ( .A(b[16]), .B(a[16]), .Y(g[16]) );  AND2X2 U36 ( .A(b[17]), .B(a[17]), .Y(g[17]) );  AND2X2 U37 ( .A(b[11]), .B(a[11]), .Y(g[11]) );  AND2X2 U38 ( .A(b[12]), .B(a[12]), .Y(g[12]) );  AND2X2 U39 ( .A(b[19]), .B(a[19]), .Y(g[19]) );  AND2X2 U40 ( .A(b[14]), .B(a[14]), .Y(g[14]) );endmodulemodule claslice5_15 ( Port12, Port13, Port14, Port15, Port16, Port17, Port18,         Port19, Port20, Port21, Co, Port22, Port23, Port24, Port25, pp, gg );  input Port12, Port13, Port14, Port15, Port16, Port17, Port18, Port19, Port20,         Port21, Co;  output Port22, Port23, Port24, Port25, pp, gg;  wire   \p[4] , \p[3] , \p[2] , \p[1] , \p[0] , \g[4] , \g[3] , \g[2] ,         \g[1] , \g[0] , \Cp[3] , \Cp[2] , \Cp[1] , \Cp[0] , n1, n2, n3, n4,         n5, n6, n7, n8, n13, n14, n15, n16;  assign \p[4]  = Port12;  assign \p[3]  = Port13;  assign \p[2]  = Port14;  assign \p[1]  = Port15;  assign \p[0]  = Port16;  assign \g[4]  = Port17;  assign \g[3]  = Port18;  assign \g[2]  = Port19;  assign \g[1]  = Port20;  assign \g[0]  = Port21;  assign Port22 = \Cp[3] ;  assign Port23 = \Cp[2] ;  assign Port24 = \Cp[1] ;  assign Port25 = \Cp[0] ;  NOR3X1 U1 ( .A(n16), .B(n15), .C(n14), .Y(pp) );  NAND3X1 U2 ( .A(\p[1] ), .B(\p[0] ), .C(\p[2] ), .Y(n16) );  AOI21X1 U3 ( .A0(\Cp[1] ), .A1(\p[2] ), .B0(\g[2] ), .Y(n4) );  OAI21XL U4 ( .A0(n4), .A1(n15), .B0(n3), .Y(\Cp[3] ) );  INVX1 U5 ( .A(\g[3] ), .Y(n3) );  INVX1 U6 ( .A(n4), .Y(\Cp[2] ) );  AOI21X1 U7 ( .A0(n6), .A1(\p[2] ), .B0(\g[2] ), .Y(n7) );  INVX1 U8 ( .A(n5), .Y(n6) );  AOI21X1 U9 ( .A0(\g[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n5) );  INVX1 U10 ( .A(\p[3] ), .Y(n15) );  INVX1 U11 ( .A(n2), .Y(\Cp[1] ) );  AOI21X1 U12 ( .A0(\Cp[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n2) );  INVX1 U13 ( .A(n1), .Y(\Cp[0] ) );  AOI21X1 U14 ( .A0(Co), .A1(\p[0] ), .B0(\g[0] ), .Y(n1) );  INVX1 U15 ( .A(\p[4] ), .Y(n14) );  OAI21XL U16 ( .A0(n13), .A1(n14), .B0(n8), .Y(gg) );  INVX1 U17 ( .A(\g[4] ), .Y(n8) );  AOI2BB1X1 U18 ( .A0N(n15), .A1N(n7), .B0(\g[3] ), .Y(n13) );endmodulemodule claslice5_14 ( Port12, Port13, Port14, Port15, Port16, Port17, Port18,         Port19, Port20, Port21, Co, Port22, Port23, Port24, Port25, pp, gg );  input Port12, Port13, Port14, Port15, Port16, Port17, Port18, Port19, Port20,         Port21, Co;  output Port22, Port23, Port24, Port25, pp, gg;  wire   \p[4] , \p[3] , \p[2] , \p[1] , \p[0] , \g[4] , \g[3] , \g[2] ,         \g[1] , \g[0] , \Cp[3] , \Cp[2] , \Cp[1] , \Cp[0] , n1, n2, n3, n4,         n5, n6, n7, n8, n13, n14, n15, n16;  assign \p[4]  = Port12;  assign \p[3]  = Port13;  assign \p[2]  = Port14;  assign \p[1]  = Port15;  assign \p[0]  = Port16;  assign \g[4]  = Port17;  assign \g[3]  = Port18;  assign \g[2]  = Port19;  assign \g[1]  = Port20;  assign \g[0]  = Port21;  assign Port22 = \Cp[3] ;  assign Port23 = \Cp[2] ;  assign Port24 = \Cp[1] ;  assign Port25 = \Cp[0] ;  NOR3X1 U1 ( .A(n16), .B(n15), .C(n14), .Y(pp) );  NAND3X1 U2 ( .A(\p[1] ), .B(\p[0] ), .C(\p[2] ), .Y(n16) );  AOI21X1 U3 ( .A0(\Cp[1] ), .A1(\p[2] ), .B0(\g[2] ), .Y(n4) );  OAI21XL U4 ( .A0(n4), .A1(n15), .B0(n3), .Y(\Cp[3] ) );  INVX1 U5 ( .A(\g[3] ), .Y(n3) );  INVX1 U6 ( .A(n4), .Y(\Cp[2] ) );  AOI21X1 U7 ( .A0(n6), .A1(\p[2] ), .B0(\g[2] ), .Y(n7) );  INVX1 U8 ( .A(n5), .Y(n6) );  AOI21X1 U9 ( .A0(\g[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n5) );  INVX1 U10 ( .A(\p[3] ), .Y(n15) );  INVX1 U11 ( .A(n2), .Y(\Cp[1] ) );  AOI21X1 U12 ( .A0(\Cp[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n2) );  INVX1 U13 ( .A(n1), .Y(\Cp[0] ) );  AOI21X1 U14 ( .A0(Co), .A1(\p[0] ), .B0(\g[0] ), .Y(n1) );  INVX1 U15 ( .A(\p[4] ), .Y(n14) );  OAI21XL U16 ( .A0(n13), .A1(n14), .B0(n8), .Y(gg) );  INVX1 U17 ( .A(\g[4] ), .Y(n8) );  AOI2BB1X1 U18 ( .A0N(n15), .A1N(n7), .B0(\g[3] ), .Y(n13) );endmodulemodule claslice5_13 ( Port12, Port13, Port14, Port15, Port16, Port17, Port18,         Port19, Port20, Port21, Co, Port22, Port23, Port24, Port25, pp, gg );  input Port12, Port13, Port14, Port15, Port16, Port17, Port18, Port19, Port20,         Port21, Co;  output Port22, Port23, Port24, Port25, pp, gg;  wire   \p[4] , \p[3] , \p[2] , \p[1] , \p[0] , \g[4] , \g[3] , \g[2] ,         \g[1] , \g[0] , \Cp[3] , \Cp[2] , \Cp[1] , \Cp[0] , n1, n2, n3, n4,         n5, n6, n7, n8, n13, n14, n15, n16;  assign \p[4]  = Port12;  assign \p[3]  = Port13;  assign \p[2]  = Port14;  assign \p[1]  = Port15;  assign \p[0]  = Port16;  assign \g[4]  = Port17;  assign \g[3]  = Port18;  assign \g[2]  = Port19;  assign \g[1]  = Port20;  assign \g[0]  = Port21;  assign Port22 = \Cp[3] ;  assign Port23 = \Cp[2] ;  assign Port24 = \Cp[1] ;  assign Port25 = \Cp[0] ;  NOR3X1 U1 ( .A(n16), .B(n15), .C(n14), .Y(pp) );  NAND3X1 U2 ( .A(\p[1] ), .B(\p[0] ), .C(\p[2] ), .Y(n16) );  AOI21X1 U3 ( .A0(\Cp[1] ), .A1(\p[2] ), .B0(\g[2] ), .Y(n4) );  OAI21XL U4 ( .A0(n4), .A1(n15), .B0(n3), .Y(\Cp[3] ) );  INVX1 U5 ( .A(\g[3] ), .Y(n3) );  INVX1 U6 ( .A(n4), .Y(\Cp[2] ) );  AOI21X1 U7 ( .A0(n6), .A1(\p[2] ), .B0(\g[2] ), .Y(n7) );  INVX1 U8 ( .A(n5), .Y(n6) );  AOI21X1 U9 ( .A0(\g[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n5) );  INVX1 U10 ( .A(\p[3] ), .Y(n15) );  INVX1 U11 ( .A(n2), .Y(\Cp[1] ) );  AOI21X1 U12 ( .A0(\Cp[0] ), .A1(\p[1] ), .B0(\g[1] ), .Y(n2) );  INVX1 U13 ( .A(n1), .Y(\Cp[0] ) );  AOI21X1 U14 ( .A0(Co), .A1(\p[0] ), .B0(\g[0] ), .Y(n1) );  INVX1 U15 ( .A(\p[4] ), .Y(n14) );  OAI21XL U16 ( .A0(n13), .A1(n14), .B0(n8), .Y(gg) );  INVX1 U17 ( .A(\g[4] ), .Y(n8) );  AOI2BB1X1 U18 ( .A0N(n15), .A1N(n7), .B0(\g[3] ), .Y(n13) );endmodulemodule claslice5_12 ( Port12, Port13, Port14, Port15, Port16, Port17, Port18,         Port19, Port20, Port21, Co, Port22, Port23, Port24, Port25, pp, gg );  input Port12, Port13, Port14, Port15, Port16, Port17, Port18, Port19, Port20,         Port21, Co;  output Port22, Port23, Port24, Port25, pp, gg;  wire   \p[4] , \p[3] , \p[2] , \p[1] , \p[0] , \g[4] , \g[3] , \g[2] ,         \g[1] , \g[0] , \Cp[3] , \Cp[2] , \Cp[1] , \Cp[0] , n1, n2, n3, n4,         n5, n6, n7, n8, n13, n14, n15, n16;  assign \p[4]  = Port12;  assign \p[3]  = Port13;  assign \p[2]  = Port14;  assign \p[1]  = Port15;  assign \p[0]  = Port16;  assign \g[4]  = Port17;  assign \g[3]  = Port18;  assign \g[2]  = Port19;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -