十六进制七段LED显示译码器 静态显示

该文描述了一个基于VerilogHDL的16进制7段数码显示译码器的设计与验证过程。通过编写代码实现从4位二进制输入到7段LED显示的转换,涉及条件判断语句的运用和组合逻辑电路设计。并提供了仿真测试代码以确保译码器功能的正确性,最终可下载到开发板上进行实际操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

译码器是一类多输入多输出组合逻辑电路器件,其可以分为变量译码和显示译码两类。 变量译码器一般是一种较少输入变为较多输出的器件,如3-8译码器,显示译码器用来将数值转换成要显示的对应的符号。

任务描述

根据所学的组合逻辑及数字电路的知识利用VerilogHDL描述完成一个16进制7段数码显示译码器的设计,并进行验证测试。
熟悉Verilog HDL文本设计流程,掌握组合逻辑电路的设计仿真和硬件测试的方法。最后完善一个16进制7段数码显示译码器电路的功能描述风格Verilog HDL 代码。

实验目的

进一步学习和掌握使用Verilog HDL描述电路功能的编写,练习使用条件判断语句进行译码。

实验原理

十六进制数七段LED显示译码器也称为七段数码管,其示意图如下所示,包括七个LED管和一个圆形 LED小数点。按 LED单元连接方式可以分为共阳数码管和共阴数码管,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到逻辑高电平,当某一字段发光二极管的阴极为低电平时,相应字段就点亮;当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到逻辑低电平,当某一字段发光二极管的阳极为高电平时,相应字段就点亮;当某字段的阳极为低电平时,相应字段就不亮。
七段LED显示器示意图
在开发板电路上常用共阳极驱动数码管,要求设计对应的译码电路,其对应的显示译码器功能表如下所示,为了完整,将小数点也计算在内,如果不用小数点时,将其不点亮即可,即默认共阳极dp为高电平。规定seg_d[7:0] = {dp,g,f,e,d,c,b,a}。
在这里插入图片描述

实验过程及步骤

1、新建工程,工程名为shumaguanyimaqi
在这里插入图片描述
2、新建Verilog Module文件,命名为:shumaguanyimaqi
在这里插入图片描述
编写代码
在这里插入图片描述

module shumaguanyimaqi( 
			input[3:0]data_in,
			input rst_n,
			output [7:0]LED
    );
			reg [7:0]smg_duan;
always@(*)begin
		case(data_in)
	      0:smg_duan=8'hc0;//c0
	      1:smg_duan=8'hf9;
	      2:smg_duan=8'ha4;
	      3:smg_duan=8'hb0;
	      4:smg_duan=8'h99;
	      5:smg_duan=8'h92;
	      6:smg_duan=8'h82;
	      7:smg_duan=8'hf8;
	      8:smg_duan=8'h80;
	      9:smg_duan=8'h90;
	      10:smg_duan=8'h88;
	      11:smg_duan=8'h83;
	      12:smg_duan=8'hc6;
			13:smg_duan=8'ha1;
			14:smg_duan=8'h86;
			15:smg_duan=8'h8e;
			endcase
   end
assign LED=smg_duan;	

3、运行正确之后,查看RTL图
在这里插入图片描述
双击放大:
在这里插入图片描述
4、右击,选择New Source,选择Verilog Test Fixture,命名为shuziyima
在这里插入图片描述
编写仿真代码:

仿真测试代码
module shuziyima;

	// Inputs
	reg [3:0] data_in;
	reg rst_n;

	// Outputs
	wire [7:0] LED;

	// Instantiate the Unit Under Test (UUT)
	shumaguanyimaqi uut (
		.data_in(data_in), 
		.rst_n(rst_n), 
		.LED(LED)
	);
		
	initial begin
		// Initialize Inputs
		data_in = 0;
		rst_n = 0;

		// Wait 100 ns for global reset to finish
		#100;
		rst_n=1;
		data_in = 0;
		// Add stimulus here
		#5
		data_in=0000;
		#5
		data_in=0001;
		#5
		data_in=0010;
		#5
		data_in=0011;
		#5
		data_in=0100;
		#5
		data_in=0101;
		#5
		data_in=0110;
		#5
		data_in=0111;
		#5
		data_in=1000;
		#5
		data_in=1001;
		#5
		data_in=1010;
		#5
		data_in=1011;
		#5
		data_in=1100;
		#5
		data_in=1101;
		#5
		data_in=1110;
		#5
		data_in=1111;

	end
      
endmodule

根据上面显示译码器功能表可知,
进行行为仿真,得到波形图如下:

在这里插入图片描述
5、完成引脚标注,下载到开发板上进行实物实验

NET "data_in[0]" LOC = L5;
NET "data_in[1]" LOC = M3;
NET "data_in[2]" LOC = L4;
NET "data_in[3]" LOC = L3;

NET "LED[0]" LOC = L10;
NET "LED[1]" LOC = P9;
NET "LED[2]" LOC = N9;
NET "LED[3]" LOC = M9;
NET "LED[4]" LOC = L7;
NET "LED[5]" LOC = N8;
NET "LED[6]" LOC = P8;
NET "LED[7]" LOC = M7;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值