二、七段译码逻辑设计

所需软件

Verilog编程软件:Lattice Diamond(3.11.0.396.4_Diamond_x64)

Verilog仿真软件:ModelSim SE-64 10.2c(modelsim-win64-10.2c-se)

方法:用case语句实现七段译码逻辑设计

符号图:

Verilog代码:

Part1:Test7_seg_dec.v文件(Verilog工程文件)

//2022-05-27
//7段数码管译码器
module Test7_seg_dec(num,a_g);
input[3:0]          num;    //定义4位的输入变量:num
output[6:0]         a_g;    //定义7位的输出变量:a_g
reg[6:0]            a_g;    //a_g[6:0]->{a,b,c,d,e,f,g}。因要用always语句块对a_g赋值,因此需要将a_g定义为reg型变量。//虽然a_g定义成了reg型,但因有case语句,故仍是组合逻辑。always@(num) begin          //当always语句中的敏感变量num发生变化时,逻辑信号开始变化case(num)              //用case语句实现组合逻辑4'd0: begin a_g<=7'b1111110; end   //当num为十进制的0时,a_g输出为1111110,数码管显示0。4'd1: begin a_g<=7'b0110000; end //当num为十进制的1时,a_g输出为011_0000,数码管显示1。  4'd2: begin a_g<=7'b1101101; end  //当num为十进制的2时,a_g输出为110_1101,数码管显示2。  4'd3: begin a_g<=7'b1111001; end  //当num为十进制的3时,a_g输出为111_1001,数码管显示3。4'd4: begin a_g<=7'b0010011; end    //当num为十进制的4时,a_g输出为001_0011,数码管显示4。4'd5: begin a_g<=7'b1011011; end    //当num为十进制的5时,a_g输出为101_1011,数码管显示5。4'd6: begin a_g<=7'b1011111; end    //当num为十进制的6时,a_g输出为101_1111,数码管显示6。4'd7: begin a_g<=7'b1110000; end    //当num为十进制的7时,a_g输出为111_0000,数码管显示7。4'd8: begin a_g<=7'b1111111; end    //当num为十进制的8时,a_g输出为111_1111,数码管显示8。4'd9: begin a_g<=7'b1111011; end    //当num为十进制的9时,a_g输出为111_1011,数码管显示9。//Verilog中的数字表达式:<位宽><进制><数字>//'b:二进制,eg 4'b1010,表示4位二进制数1010//'h:十六进制,eg 8'hef、4'ha//'d:十进制,eg 2'd3(二位的十进制数3)、4'd15(不能写16,4位最大是15,意为十进制数15,0000001111)default: begin a_g<=7'b0000001; end   //当num不在0-9范围时,a_g输出为000_0001,数码管显示中杠“-”。endcase
endendmodule

Part2:Test7_seg_dec_tb.v文件(Verilog仿真文件)

//2022-05-27
//7段数码管译码器--testbench of Test7_seg_dec
`timescale 1ns/10ps
module Test7_seg_dec_tb;
reg[3:0]                    num_in;     //仿真输入变量
wire[6:0]                   a_g_out;    //仿真输出变量Test7_seg_dec Test7_seg_dec(.num(num_in),.a_g(a_g_out));
initial beginnum_in<=0; //定义输入变量初值为0,即当num为十进制的0时。#150               $stop;      //定义仿真时长为150ns。//注:七段数码管可显示10种阿拉伯数字(0~9),令每种数字显示10ns,加上输入default显示中杠“-”占用的10ns,故110ns即可遍历一轮仿真。endalways #10 num_in<=num_in+1;        //每过10ns,输入变量的值就加1。endmodule

仿真波形:

注意事项

1、//Verilog中的数字表达式:<位宽><进制><数字>
     //'b:二进制,比如4'b1010,表示4位二进制数1010。
     //'h:十六进制,比如8'hef、4'ha。
     //'d:十进制,eg 2'd5(二位的十进制数5)、4'd15(不能写16,4位最大是15,意为十进制数15,0000001111)

2、七段数码管可显示10种数字(0~9),令每种数字显示10ns,加上输入default显示中杠“-”占用的10ns,故110ns即可遍历一轮仿真。

原教学视频链接如下

Verilog零基础入门_哔哩哔哩_bilibili

【Verilog零基础入门-边看边练】学习笔记——第三讲 组合逻辑代码设计和仿真(补码转换和七段译码逻辑设计)(二)相关推荐

  1. Verilog学习笔记(3)Modelsim仿真_补码转换_七段译码逻辑设计

    1.组合逻辑代码设计和仿真 1.1补码转换 正数补码与原码相同; 负数补码转换方法是符号位不变,幅度位按位取反加1; 代码: //补码转换逻辑 module comp_conv( a , a_comp ...

  2. Python零基础入门(三)——函数[学习笔记]

    目录: 一.函数: 1.内置函数 2.定义函数 二.函数参数: 1.必选参数 2.默认参数 3.可变参数/任意参数 4.关键字参数 三.return语句 四.函数封装 1.导入整个模块 2.导入特定的 ...

  3. 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系

    今天为大家带来的内容是:零基础入门必看篇:浅析python ,PyCharm,Anaconda三者之间关系 众所周知,Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C, ...

  4. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  5. 2022年最新最全的Java零基础入门,零基础入门springboot,MySQL的学习

    今天就来开始带领大家零基础入门Java开发 写在前面 为什么学习Java Java用途很广泛,如下图所示,Java可以做很多工作 JAVA语言发展史 2019年3月,JDK12版本发布. 2019年9 ...

  6. 《C#零基础入门之百识百例》(四十四)静态类 -- 温度单位转换

    C#零基础入门 类和对象 -- 静态类 -- 温度转换 前言 一,静态类 1.1 静态构造函数 1.2 遵守规则 二,实例练习 -- 温度单位转换 2.1 题目描述 2.2 问题分析 2.3 参考代码 ...

  7. 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程

    在人工智能和数据分析的带领之下,推动了互联网市场的发展,也推动了python语言的发展,让它成为了市场上炙手可热的编程语言. 而python具有入门简单.就业范围广泛.薪资水平高诸多优势,越来越多的人 ...

  8. 20200404零基础入门数据挖掘 - 二手车交易价格预测笔记(5)

    五.模型融合 5.1 模型融合目标 对于多种调参完成的模型进行模型融合,因为多个模型组合在一起通常可以产生更强大的模型. 5.2 内容介绍 模型融合是比赛后期一个重要的环节,大体来说有如下的类型方式. ...

  9. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数

    Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...

最新文章

  1. Flutter初体验(二)—— 创建第一个Flutter APP
  2. javascript实现的一个带下拉框功能的文本框
  3. Java基础案例教程
  4. linux抓包提示没有权限,linux下wireshark不用sudo权限抓包包
  5. 百度AI快车道深圳实战班启动,用极致技术打造实用产品
  6. 运动目标跟踪(十四)--MIL跟踪
  7. 深入理解二阶段提交协议(DDB对XA悬挂事务的处理分析)(一)
  8. VIM文本编辑器相关命令实验总结
  9. Java题库(为了这辈子能吃上俩个菜好好学Java)
  10. 030_《Delphi COM深入编程》
  11. 【历史上的今天】5 月 23 日:Java 正式发布;晶体管的共同发明者出生
  12. Unity3DCPU优化方法相关理论知识
  13. 新核心业务系统数据架构规划与数据治理
  14. Scrum团队成立3.0
  15. 请收下,700+页PDF社区精化!
  16. 数据资产管理体系方案
  17. PAT-ADVANCED1011——World Cup Betting
  18. Palm OS Develop Suite 入门配置
  19. 《Delphi 版 everything、光速搜索代码》 关于获取文件全路径 GetFullFileName 函数的优化
  20. 中央民族大学 软件工程专业研究生停止招生!计算机改科目!

热门文章

  1. 捂碳星球|换季了,那些不穿的衣服,你都怎么处理了?
  2. Matlab解方程的几种方法
  3. xilinx jtag 驱动
  4. Shell监控Gitlab备份并且通过邮件通
  5. 路由器的广域网HDLC封装
  6. 光耦隔离继电器驱动模块设计以及单片机的使用
  7. 树莓派 使用 i2c 连接 LCD1602/LCD1602A 模块
  8. 《群体遗传学》学习笔记
  9. 成功的数据驱动型公司为什么会采用Data Mesh?
  10. 最新上海阿里巴巴笔试题分享