【求教】always @()敏感信号列表的问题【恢复】
我用的是QUARTUS II 8.0 综合module liangzhu(sys_clk,rst_n,sp);
input sys_clk,rst_n;
output sp;
//-----------------------------------------------------------------------------------------
always @ (posedge sys_clk or posedge rst_n) //always @ (posedge sys_clk or rst_n)
if (!rst_n)
clk_cnt <= 24'd0;
else
clk_cnt <= clk_cnt + 1'b1;
都综合不了,报错
//-----------------------------------------------------------------------------------------
而 always @ (posedge sys_clk or negedge rst_n)
if (!rst_n)
clk_cnt <= 24'd0;
else
clk_cnt <= clk_cnt + 1'b1;
就可以综合,请问怎么回事? 哦,对了,谢谢大家! posedge rst_n 上升沿有效,进入always里面后rst_n当然是高电平,你怎么又在里面判断rst_n是不是低电平呢? posedge 上升沿有效
negedge 下降沿有效 把always 里面的 negedge rst_n去掉:
always @ (posedge sys_clk)
if (!rst_n)
clk_cnt <= 24'd0;
else
clk_cnt <= clk_cnt + 1'b1; 报错说:
Error (10200): Verilog HDL Conditional Statement error at liangzhu.v(12): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct .....
assign tclk=((clk&!mode)|mode);
assign sclk=((settm&mode)|!mode);
always @(posedge tclk or posedge sclk)
begin
if(mode==0)
.....
else
.....
end
end
我写的程序如上,(省略了一部分),错误是一样的,请哥们帮忙看一下, 楼上的你要干嘛? 难道用双时钟? 牛啊! 没用啊,一个是正常的时钟信号,另一个是校时的时钟信号 不能双时钟沿触发。硬件实现不了。 记号 回复【9楼】ngzhang 兽哥
-----------------------------------------------------------------------
我看到别人的程序上有用双时钟沿触发的啊,好像没错 回复【11楼】hugang0120
-----------------------------------------------------------------------
双时钟沿触发在仿真阶段是可以过,综合的时候出错,因为硬件没法做成这样的,至少目前写成这样没法综合。 不会吧? 我看到很多程序这样啊 mark 最无耻的是网上下载的Verilog HDL例子大部分是仿真例子。这已经误导人了。 posedge rst_n 上升沿有效,进入always里面后rst_n当然是高电平,你怎么又在里面判断rst_n是不是低电平呢?
------------------------
明白了,搞了一上午,这错误。。。强力MARK 呵呵 也跟着学习了
页:
[1]