FPGA学习小例子:38译码器设计与仿真

前言

译码器74x138是数字电路课程重点内容之一。译码器的设计比
较简单,使用Verilog语言实现译码器就更为简单。本教程设计了一个3-8译码器并做了仿真。

一、创建一个VIVADO工程

打开vivado,点击File
在这里插入图片描述
在这里插入图片描述
填写项目名,以及选择项目路径
在这里插入图片描述
**加粗样式**
并勾选“Do not specify sources at this time”,意思是先创建工程,后期再添加文件。也可不勾选。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、创建Verilog HDL 文件

1.点击 Project Manager 下的 Add Sources 图标
2.选择添加或创建设计源文件“ Add or create design sources 点击“ Next

在这里插入图片描述

选择创建文件“ Create File
在这里插入图片描述
在这里插入图片描述
点击“ Finish 完成“ p_74138.v ”文件添加在这里插入图片描述

在弹出的模块定义“ Define Module 中可以指定“ p_74138.v ”文件的模块名称 Module
name 这里默认不变为“ p_74138”,还可以指定一些端口,这里暂时不指定,点击 OK ”。

在这里插入图片描述
在弹出的对话框中选择“ Yes
在这里插入图片描述
双击文件可以编辑
在这里插入图片描述

三、编写代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/03/26 16:06:39
// Design Name: 
// Module Name: p_74138
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module p_74138(addr,decoder);
input [2:0] addr;
output reg [7:0] decoder;
always @(addr) begin
    case (addr)
        3'b000: decoder = 8'b1111_1110; 
        3'b001: decoder = 8'b1111_1101; 
        3'b010: decoder = 8'b1111_1011; 
        3'b011: decoder = 8'b1111_0111; 
        3'b100: decoder = 8'b1110_1111; 
        3'b101: decoder = 8'b1101_1111; 
        3'b110: decoder = 8'b1011_1111; 
        3'b111: decoder = 8'b0111_1111; 
        // default: 
    endcase
end
endmodule

四、创建仿真文件

在这里插入图片描述
在这里插入图片描述
*加粗样式

1、编写仿真代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/03/26 16:06:39
// Design Name: 
// Module Name: p_74138
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module p_74138(addr,decoder);
input [2:0] addr;
output reg [7:0] decoder;
always @(addr) begin
    case (addr)
        3'b000: decoder = 8'b1111_1110; 
        3'b001: decoder = 8'b1111_1101; 
        3'b010: decoder = 8'b1111_1011; 
        3'b011: decoder = 8'b1111_0111; 
        3'b100: decoder = 8'b1110_1111; 
        3'b101: decoder = 8'b1101_1111; 
        3'b110: decoder = 8'b1011_1111; 
        3'b111: decoder = 8'b0111_1111; 
        // default: 
    endcase
end
endmodule

2、运行仿真文件

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

  • 5
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值