高手帮忙看下这个Verilog程序的小问题在哪。。

module control(
input wire clk1hz,
output wire en_count,
output wire load,
output reg clr_count );
reg clk2hz;
always @(posedge clk1hz)
clk2hz=~clk2hz;
always@(posedge clk1hz or posedge clk2hz)
if(~clk1hz & ~clk2hz)
clr_count=1;
else
clr_count=0;

assign load=~clk2hz;
assign en_count=clk2hz;

endmodule

错误是这样的:
ERROR:Xst:899 - "control.v" line 13: The logic for <clr_count> does not match a known FF or Latch template. The description style you are using to describe a register or latch is not supported in the current software release.

没有触发器或者寄存器能与你声明的clr_count匹配,原因可能是FPGA里面没有双时钟驱动的触发器,这个我也没见哪个器件支持过,所以改为单时钟驱动的就行了。
另外,你既然是上升沿触发,~clk1hz的条件就不可能触发,改为单时钟驱动时,这个要注意。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-10
首先。你的程序,clk2hz需要一个复位吧,当上电复位后,付给它一个值,0也好1也好,他才能在POSEDGE CLK1HZ的时候翻转啊
第2个回答  2012-10-10
clk2hz没有初值
第3个回答  2012-10-10
你设定的clk2hz只是内部的寄存器型,当clk1hz上升沿到来时,clk2hz取反。可是clk2hz初值是什么?你也没连接到端口上。。不太懂,求解。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网