FPGA 我的几句话的程序都有问题,希望高手帮忙解决
module motor (clk,up,down,g);input clk,up,down;
output g;
reg g;
initial
begin
g <= 1;
end
always @ (posedge clk)
begin
if (up == 1'b1)
g <= g + 1;
else if (down == 1'b1)
g <= g - 1;
else if(up == 1'b0&down == 1'b0)
g <= g;
end
endmodule
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_544213.jpg
(原文件名:未命名.jpg)
为什么g是011了呢,我是希望他是010的 if (up == 1'b1)
g <= g + 1;
else if (down == 1'b1)
g <= g - 1;
else if(up == 1'b0&down == 1'b0)
g <= g;
有些问题!!
else if(up == 1'b0&down == 1'b0)
g <= g;
不可能起作用
综合的时候出问题了 楼主你好,
initial 语句是不可以综合的,一般只用于仿真。你不能用在这里,即使用也是无效果的。
那么按照逻辑,寄存器g上电应该是一个未知值。
实际上电可能会是0。因为某些FPGA或者CPLD有上电寄存器自清零的功能选择项。
以下
“else if(up == 1'b0&down == 1'b0)
g <= g;”
这一句你的意思是保持原值。其实可以不写,因为它是时序的寄存器逻辑。
页:
[1]