作者syuan08 (syuan)
看板Electronics
标题[问题] 同步记数器初始值
时间Fri Oct 7 09:54:35 2016
小弟我最近有个问题
我试着利用verilog逻辑闸拚出一个同步记数器
发现功能如果分开测的话应该是正常的
但是现在发现我DFF的初始值,不知道怎麽给导致功能无法正常运作
想请问一下大大有没有啥建议?
module counter_3b (rst_n, clk, cnt);
input rst_n, clk;
output [2:0]cnt;
assign d2 = cnt[0] ^ cnt [1];
assign d3 = (cnt[0] & cnt[1]) ^ cnt[2];
assign clk_r = clk & rst_n; //rst功能
assign init_d = 1'b0 | cnt[0];
D_type DFF1(.CP(clk_r), .D(init_d), .Q(cnt[0]), .Q_bar(dff1b_out));
D_type DFF2(.CP(clk_r), .D(d2), .Q(cnt[1]), .Q_bar(dff2b_out));
D_type DFF3(.CP(clk_r), .D(d3), .Q(cnt[2]), .Q_bar(dff3b_out));
module D_type (CP_clk, D, Q, Q_bar);
input CP_clk, D;
output Q, Q_bar;
nand nand_1 (out_1, out_4, out_2);
nand nand_2 (out_2, out_1, CP_clk);
nand nand_3 (out_3, out_2, CP_clk, out_4);
nand nand_4 (out_4, out_3, D);
nand nand_5 (Q, out_2, Q_bar);
nand nand_6 (Q_bar, Q, out_3);
endmodule
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.75.124.162
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1475805278.A.D70.html
1F:推 tkhan: none.. 10/07 10:26
2F:→ amistad: 1. DFF1 的 Q 要接到 DFF2 的 D 10/07 10:56
3F:→ amistad: 2. 通常会用 set / reset的机制进行初始化设计 10/07 10:56
4F:→ amistad: 习惯上会用 behavior model 取代 instantiate cell 的写 10/07 10:59
5F:→ amistad: 法 10/07 10:59
6F:→ amistad: 3. 除非限用 cell library / full customer 的流程, 10/07 11:01
7F:→ amistad: 习惯上会用 behavior model 取代 instantiate cell 的写 10/07 11:01
8F:→ amistad: 法。X 10/07 11:01
9F:→ syuan08: 因为我想用cell lib的方式写看看,下部的dff不做更改,只 10/07 11:09
10F:→ syuan08: 能在外部电路设计! 10/07 11:09