综合时出现了锁存器!!!!
module tr(ina,clk,outb);input ina,clk;
output outb;
reg outb;
reg count;//clk
reg count1;//ina
reg q1;
always@(clk)begin
count<=count+1;
if(ina==1)
begin
count1<=count1+1;
q1<=ina;
end
else
begin
outb<=clk;
end
if((count==count1)&&(count1>11))
begin
outb<=q1;
end
else
begin
outb<=clk;
end
end
endmodule 一般情况下,在组合逻辑电路中要避免锁存器的产生。而你的程序中的always块是一个时钟沿触发的,属于时序逻辑电路,所有的reg型,都寄存在一个D触发器中。按理说综合时时不会报错的。建议你在always中只使用一个if语句。要是有多种判断条件你可以使用if……else if……else。 回复 2# 哦十全
我试试看吧 HDL虽然也是代码,但是硬件毕竟不同,刚开始学习就不要只求功能,这对硬件学习者来说,是一种必定后悔的做法。
从开始就要了解自己写的代码对应什么电路,慢但是效果明显。
页:
[1]