作者YOYOKT (东西要出清啦)
看板Electronics
标题[问题] 如何在没有reset下去计数clock
时间Wed Mar 12 18:25:35 2008
如果只有一个input,且是一个clock,而要输出reset跟一些其他讯号,目前卡在如何去
计数clock,我的写法如下:
input clock;
reg state;
reg [8:0] count;
always @(posedge clock)
begin
state <= 1'b0;
end
always @(posedge clock )
begin
if (~state)
count <= 8'd0; // initial count=0
end
always @(posedge clock)
if (~count)
count <= count + 1;
modelsim模拟结果,这样是可以计数clock,可是要合成电路会有错误,"Only one
always block may assign a given variable count[8:0]" 现在想不通如何把下面两个
always合成一个always呢? 谢谢了!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.185.203
1F:推 FengMin:count这变数不能在两个不同的always block同时access 03/12 21:42
2F:→ YOYOKT:那请教该如何做才能达到呢? 03/13 09:35
3F:推 DinoZavolta:我觉得你用FSM比较好控制,只需定义好每个状态该做什麽 03/13 10:53
4F:→ DinoZavolta:ex. 初始状态 => count=0, 计数状态 => count=count+1 03/13 10:57
5F:→ DinoZavolta:这样只需要一个seq. block (用来控制状态转换), 03/13 10:59
6F:→ DinoZavolta:跟一个comb. block (用来描述各状态的动作) 03/13 11:01
7F:→ YOYOKT:请问定义初始状态COUNT=0,合成时不是无效吗? 03/13 11:13
8F:→ DinoZavolta:只要count=0包在always block内,是确定可合成的~ 03/13 11:38
9F:→ YOYOKT:原来如此,立刻试看看,谢谢您^^ 03/13 11:44