Verilog高手请进,请教一个关于if的问题
答案:2 悬赏:80 手机版
解决时间 2021-01-20 08:42
- 提问者网友:低吟詩仙的傷
- 2021-01-19 10:09
Verilog高手请进,请教一个关于if的问题
最佳答案
- 五星知识达人网友:风格不统一
- 2021-01-19 11:41
module a(clk,LED1,LED2,M,N,switch,rst_n);
input clk;
input rst_n;//增加一个异步复位按钮,才符合实际情况
output LED1,LED2;
//integer temp;在语句always中,左边的变量建议为寄存器类型
reg [2:0] temp;
input[2:0] M,N;
input switch;
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
temp<=0;
else if(temp==N-1)
temp<=0;
else
temp<=temp+1;
//end if;这句错误,没有这种写法
end
//***************************************************
//条件语句if-else是顺序语句,应该放在“always” 快内,因此你那样写会有错误
//if(switch==1)
//注意,我已经把你的开关融合到下面两个赋值语句中了
assign LED1=switch&(temp //else
assign LED2=~switch&(temp //***************************************************
endmodule
有详细的注释,如果不对的地方还望指正。
我觉得你应该把基础大好,这样才能后续的学习。
附上仿真图。
追问高手啊 可以仿真!!!非常感谢 如果我的开关有两位 就是控制4个输出还能这样做么?
input clk;
input rst_n;//增加一个异步复位按钮,才符合实际情况
output LED1,LED2;
//integer temp;在语句always中,左边的变量建议为寄存器类型
reg [2:0] temp;
input[2:0] M,N;
input switch;
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
temp<=0;
else if(temp==N-1)
temp<=0;
else
temp<=temp+1;
//end if;这句错误,没有这种写法
end
//***************************************************
//条件语句if-else是顺序语句,应该放在“always” 快内,因此你那样写会有错误
//if(switch==1)
//注意,我已经把你的开关融合到下面两个赋值语句中了
assign LED1=switch&(temp
assign LED2=~switch&(temp
endmodule
有详细的注释,如果不对的地方还望指正。
我觉得你应该把基础大好,这样才能后续的学习。
附上仿真图。
追问高手啊 可以仿真!!!非常感谢 如果我的开关有两位 就是控制4个输出还能这样做么?
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-01-19 12:40
没有end if这个写法吧,至少我没有见过~~~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯