请选择 进入手机版 | 继续访问电脑版

明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 4234|回复: 2

【每日一题】下面脉冲练习题,请写出其功能代码。

[复制链接]
发表于 2020-4-22 10:08:03 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
【每日一题】

   同学们,上午好。

   为了提高大家学习能动性与专业技术水平,我将会不定时在群里进行不同主题提问,这就要你们活动活动脑子啦,日积月累达到能力提升哟~

   今日题目:下面练习题,请写出其功能代码。

    dout初值为1,当收到en=1时,dout产生宽度为5的低电平脉冲;当收到en2=1时,dout产生宽度为7的低电平脉冲。如下图:

    微信图片_20200422100613.png


希望同学们积极踊跃参与答题哦~~~



FPGA视频课程  培训班 FPGA学习资料
吴老师 18022857217(微信同号) Q1241003385
 楼主| 发表于 2020-4-23 16:11:05 | 显示全部楼层
同学们,晚上好,我来公布答案啦!

至简设计参考代码:
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
FPGA视频课程  培训班 FPGA学习资料
吴老师 18022857217(微信同号) Q1241003385

35

主题

57

帖子

7013

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7013

荣誉管理论坛元老

QQ
发表于 2020-4-23 17:37:16 | 显示全部楼层
TIM图片20200423173443.png

该问题,可以参考下面链接:
至简设计法问题【汇总贴】
http://www.fpgabbs.cn/forum.php? ... &fromuid=100782
(出处: 明德扬论坛)
在分别三,【问题2】 有解释。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号 )

GMT+8, 2024-4-16 19:30 , Processed in 0.063765 second(s), 25 queries .

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表