查看: 419|回复: 7

[技术讨论] STEP BY STEP! 带你快速上手小脚丫FPGA开发板之——2.3-8译码器!

[复制链接]

6

主题

0

好友

136

积分

版主

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    奋斗
    2017-8-8 12:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-8-11 13:30:55 |显示全部楼层
    本帖最后由 _张泽_ 于 2017-8-14 09:24 编辑

    搞定了LED之后,我们就可以试着做一个3-8译码器,来巩固一下组合逻辑的Verilog描述方法。

    回复

    使用道具 举报

    6

    主题

    0

    好友

    136

    积分

    版主

    Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    奋斗
    2017-8-8 12:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-8-11 13:42:22 |显示全部楼层

    在这个实验里我们将学习如何用Verilog来实现组合逻辑。
    组合逻辑电路是数字电路的重要部分,电路的输出只与输入的当前状态相关的逻辑电路,常见的有选择器、比较器、译码器、编码器、编码转换等等。在本实验里以最常见的3-8译码器为例说明如何用Verilog实现。3-8译码器的真值表如下:
    从前面的实验可以知道,当FPGA输出信号到LED为高电平时LED熄灭,反之LED变亮。同时我们可以以开关的信号模拟3-8译码器的输入,这样控制开关我们就能控制特定的LED变亮。

    1. // ********************************************************************
    2. // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
    3. // ********************************************************************
    4. // File name    : decode38.v
    5. // Module name  : decode38
    6. // Author       : STEP
    7. // Description  : 3-8decode control LED
    8. // Web          : www.stepfpga.com
    9. //
    10. // --------------------------------------------------------------------
    11. // Code Revision History :
    12. // --------------------------------------------------------------------
    13. // Version: |Mod. Date:   |Changes Made:
    14. // V1.0     |2017/03/02   |Initial ver
    15. // --------------------------------------------------------------------
    16. // Module Function:利用3路开关的状态作为输出,通过3-8译码实现控制LED灯的显示。

    17. module decode38 (sw,led);
    18. input [2:0] sw;                                                        //开关输入信号,利用了其中3个开关作为3-8译码器的输入
    19.         output [7:0] led;                                                //输出信号控制特定LED

    20.         reg [7:0] led;                                                  //定义led为reg型变量,在always过程块中只能对reg型变量赋值

    21.         //always过程块,括号中sw为敏感变量,当sw变化一次执行一次always中所有语句,否则保持不变
    22.         always @ (sw)
    23.         begin
    24.                 case(sw)                                                   //case语句,一定要跟default语句
    25.                         3'b000:        led=8'b0111_1111;                         //条件跳转,其中“_”下划线只是为了阅读方便,无实际意义  
    26.                         3'b001:        led=8'b1011_1111;                         //位宽'进制+数值是Verilog里常数的表达方法,进制可以是b、o、d、h(二、八、十、十六进制)
    27.                         3'b010:        led=8'b1101_1111;
    28.                         3'b011:        led=8'b1110_1111;
    29.                         3'b100:        led=8'b1111_0111;
    30.                         3'b101:        led=8'b1111_1011;
    31.                         3'b110: led=8'b1111_1101;
    32.                         3'b111:        led=8'b1111_1110;
    33.                         default: ;
    34.                 endcase
    35.         end

    36. endmodule
    复制代码
    回复

    使用道具 举报

    6

    主题

    0

    好友

    136

    积分

    版主

    Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    奋斗
    2017-8-8 12:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-8-11 14:12:57 |显示全部楼层
    本帖最后由 _张泽_ 于 2017-8-14 09:24 编辑

    完成代码并综合,之后就是分配管脚,这一步千万不要忘记,如果忘记会导致综合器将管脚自动分配,这样程序肯定是实现不了的了。
    分配管脚图如下:

    管脚分配.png

    下载完程序后就可以实现3个开关控制不同LED灯的显示,3-8译码器完成。
    回复

    使用道具 举报

    100

    主题

    2

    好友

    2278

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 09:28
  • 签到天数: 478 天

    连续签到: 15 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章

    发表于 2017-8-12 12:23:21 |显示全部楼层
    学习了!!!
    回复

    使用道具 举报

    0

    主题

    0

    好友

    10

    积分

    白丁

    Rank: 1

  • TA的每日心情
    开心
    2017-10-8 13:52
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-10-8 21:29:36 |显示全部楼层
    不错不错,本小白跟着学
    回复

    使用道具 举报

    18

    主题

    6

    好友

    2850

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2017-10-9 08:58:26 |显示全部楼层
    不留~丶痕迹 发表于 2017-10-8 21:29
    不错不错,本小白跟着学

    给你参考
    http://www.stepfpga.com/doc/step ... 8%E6%95%99%E7%A8%8B
    然后说,早安~
    回复

    使用道具 举报

    18

    主题

    6

    好友

    2850

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2017-10-9 08:58:46 |显示全部楼层
    jinglixixi 发表于 2017-8-12 12:23
    学习了!!!

    这个比较全
    http://www.stepfpga.com/doc/step ... 8%E6%95%99%E7%A8%8B
    然后说,早安~
    回复

    使用道具 举报

    100

    主题

    2

    好友

    2278

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 09:28
  • 签到天数: 478 天

    连续签到: 15 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章

    发表于 2017-10-9 17:37:23 |显示全部楼层
    ky123 发表于 2017-10-9 08:58
    这个比较全
    http://www.stepfpga.com/doc/step-mxo2%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B
    然后说,早安~ ...

    谢谢!!!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-10-19 05:59 , Processed in 0.146686 second(s), 17 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部