【每日一题】下面脉冲练习题,请写出其功能代码。
【每日一题】同学们,上午好。
为了提高大家学习能动性与专业技术水平,我将会不定时在群里进行不同主题提问,这就要你们活动活动脑子啦,日积月累达到能力提升哟~
今日题目:下面练习题,请写出其功能代码。
dout初值为1,当收到en=1时,dout产生宽度为5的低电平脉冲;当收到en2=1时,dout产生宽度为7的低电平脉冲。如下图:
希望同学们积极踊跃参与答题哦~~~
同学们,晚上好,我来公布答案啦!
至简设计参考代码:
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
cnt <= 0;
end
else if(add_cnt)begin
if(end_cnt)
cnt <= 0;
else
cnt <= cnt + 1;
end
end
assign add_cnt = dout==0;
assign end_cnt = add_cnt && cnt== x-1;
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
flag_sel <= 0;
end
else if(en1)begin
flag_sel <= 1;
end
else if(en2)begin
flag_sel <= 0;
end
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout <= 1;
end
else if(en1 || en2)begin
dout <= 0;
end
else if(end_cnt)begin
dout <= 1;
end
end
always@(*)begin
if(flag_sel==0)
x = 5;
else
x = 7;
end
该问题,可以参考下面链接:
至简设计法问题【汇总贴】
http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=950&fromuid=100782
(出处: 明德扬论坛)
在分别三,【问题2】 有解释。
页:
[1]