Verilog实现 3-8译码器

1、实验平台

软件:Quartus Prime 18.1、Modelsim 10.5b
硬件:Altera FPGA开发板(EP4CE6E22F17C8)

2、实验目的

熟悉Verilog的语法与Modelsim仿真流程
根据输入的3位拨码开关驱动依次点亮对应的LED灯,实现译码效果

2.1、实验要求

要求根据输入的不同情况,实现以下效果:
拨码开关LED(低电平有效)
00011111110
00111111101
01011111011
01111110111
10011101111
10111011111
11010111111
11101111111

3、实验流程

3.1、实验原理

根据开发板的原理图,可得到以下资料
拨码开关这里选择低三位,也就是编号 876 

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

3.2、框架设计

对于FPGA来说,需要接收来自拨码开关的输入,然后驱动控制LED,故有以下系统框架

在这里插入图片描述

3.3、功能模块划分

由于本设计比较简单,故没有必要划分多个模块	
可以得出我们的端口信号为 3 bit 的拨码开关输入 和 8 bit 的LED输出

在这里插入图片描述

3.4、时序信号图

因本设计信号简单,且为组合逻辑电路,故无需时序图

3.5、代码实现

/***************************
file_name: Decoder.v
Author:Adolph
Description: 3 to 8 decoder
@Time:2022-4-25 14:32:21
Reversion:1.0
****************************/
module Decoder(
	input	wire [2:0]	Key_in,//3位拨码开关输入4
	input	wire		clk	,//50MHZ
	
	output	reg	 [7:0]	led		//8颗LED输出
);
	always@(Key_in)begin
		case(Key_in)	
			3'b000 : led = 8'b1111_1110;
			3'b001 : led = 8'b1111_1101;
			3'b010 : led = 8'b1111_1011;
			3'b011 : led = 8'b1111_0111;
			3'b100 : led = 8'b1110_1111;
			3'b101 : led = 8'b1101_1111;
			3'b110 : led = 8'b1011_1111;
			3'b111 : led = 8'b0111_1111;
			default: ;//空语句
		endcase
	end
endmodule 

3.6、测试文件

/*************************
file_name: tb_Decoder.v
Author:Adolph
Description: 译码器测试文件
@Time:2022-4-25 14:56:07
Reversion:1.0
****************************/

`timescale  1ns/1ns  //时间尺度,定义仿真系统时间单位和时间精度

module tb_Decoder();

//激励信号
	reg	[2:0]	tb_key;

//响应信号
	wire [7:0]	led;

//模块实例化
	Decoder		U_Decoder(
		/*input	wire [2:0]	*/.Key_in(tb_key),//3位拨码开关输入

		/*output reg [7:0]	*/.led	 (led	)	//8颗LED输出
	);

//信号初始化
	initial	begin
		tb_key = 3'b000;
		#38;
		tb_key = 3'b111;
		repeat(15)begin //循环语句
			# 46;
			tb_key = tb_key + 1'b1;
		end
		#200;
		$stop(2);
	end
endmodule 

3.7、Modelsim仿真

在进行仿真之前,一定要确保我们的设计文件和测试文件成功通过分析综合的检验,如下图

在这里插入图片描述
Quartus 联合 Modelsim仿真的相关设置如下:
在这里插入图片描述

设置完成后,一路OK下去就好,然后点击 菜单栏 Tools —> Run Simulation Tool —> RTL Simulation,
启动仿真软件 

在这里插入图片描述
成功运行的情况应该是会在这个界面
在这里插入图片描述

如果后面的注释出现中文乱码,需要进行如下设置:把编码格式改为“utf-8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来介绍一些常用的按钮(菜单)
请添加图片描述
在这里插入图片描述
在这里插入图片描述
经过检查波形图,可以确认是符合我们的预期
在这里插入图片描述
在这里插入图片描述

3.8、上板验证

验证完设计文件的逻辑功能正确性之后
绑定我们的引脚(实验原理中的原理图可以得到具体的引脚信息)
然后连接开发板,编程下载
经验证也是符合我们的预期设置的

4、总结

 1. 任何文件,模块名和文件名一定要保持一致!!!不然Modelsim会找不到对应的文件
 2. 调用文件的时候,实例化名称可以和模块名不一样,也可以保持一致 	
 3. 任何一个信号,我们在使用之前,一定要先声明
 4. 两个端口信号(输入输出信号)之间用 “,”隔开
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值