编写了按键控制LED后,算是初步了解了下Verilog HDL语言吧,并行程序的编写刚开始还是比较费脑筋的!
看了下例程,和51的按键消抖还是有很大不同的,稍微复杂些。我有些不明白的是
output led_out ;//LED输出
//寄存器定义
reg led_out ;
引脚的定义与寄存器的定义实用了一个同样的名称,在下面程序中调用led_out,莫不是同时修改两者的值。。
在编写程序中误把
always@(posedge sys_clk or negedge sys_rstn)
begin
if(!sys_rstn)
key_samp<=1'b1;
else
key_samp<=key_in;
end
中的key_samp<=1'b1;打成了led_out<=1'b1;
编译报错:Error (10028): Can't resolve multiple constant drivers for net "led_out" at KEY.v(72) 看来并行程序的编写还是比较有意思的,各个模块之间不能同对一个变量进行修改。。。会冲突。
最后想问下:assign ------; 与 always@(-----) begin------- end 两个模块都是同时执行不?