3-8 译码器的设计

3-8 译码器真值表

创建工程

按照真值表定义编写Verilog程序

module my3_8(a,b,c,out);
input a;
input b;
input c;

output reg [7:0]out;//定义一个8位的位宽.只要是在always块中进行赋值的都要定义为reg类型。
[email protected](a,b,c)
begin
case ({a,b,c})//{}位为位拼接,将信号拼接成一个三位的信号
3‘b000: out=8‘b0000_0001;
3‘b001: out=8‘b0000_0010;
3‘b010: out=8‘b0000_0100;
3‘b011: out=8‘b0000_1000;
3‘b100: out=8‘b0001_0000;
3‘b101: out=8‘b0010_0000;
3‘b110: out=8‘b0100_0000;
3‘b111: out=8‘b1000_0000;
endcase
end
endmodule

编写testbench信号

`timescale 1ns/1ns
module my3_8_tb;
reg a,b,c;
wire [7:0] out ;

my3_8 u1(
.a(a),
.b(b),
.c(c),
.out(out));
initial begin
a=0;b=0;c=0;
#200;
a=0;b=0;c=1;
#200;
a=0;b=1;c=0;
#200;
a=0;b=1;c=1;
#200;
a=1;b=0;c=0;
#200;
a=1;b=0;c=1;
#200;
a=1;b=1;c=0;
#200;
a=1;b=1;c=1;
#200;
$stop;
end

endmodule

将testbench文件链接到仿真工具

点击 前仿按钮进行仿真验证,仿真结果波形 如下, 与真值表对照发现波形是对的,说明 设计没有问题

点击全编译按钮后点击进行后仿,后仿结果如下

至此,整个3-8译码器就设计完成了,下面既需要对照开发板进行管脚设置和程序下载。

设置管脚,SW0~SW2对应a~c,LED7~0对应out【7:0】

点击全编译按钮后,上电链接开发板,点击programmer,将系统生成的.sof文件烧写到开发板中。

实验现象:按顺序波动拨动拨码开关,灯会按真值表的输出亮。

时间: 2024-10-05 21:58:52

3-8 译码器的设计的相关文章

FPGA开发随笔汇总

点击标题即可进入相关随笔: 1.FPGA的发展史及FPGA 的基础架构 2.用VerilogHDL设计一个与门逻辑,并进行前仿和后仿 3.点亮一个LED灯 4.3-8 译码器的设计 5.计数器设计与应用 6.利用IP核设计高性能的计数器 7.设计一个BCD码计数器. 8.用一个例子来学习阻塞赋值和非阻塞赋值 9.状态机的设计实例 10.数码管的动态扫描与驱动 11.按键消抖试验及一个数码管电子时钟的设计 12.uart通讯协议

用3-8线译码器74LS138、D触发器74LS74设计汽车尾灯控制电路

用3-8线译码器74LS138.D触发器74LS74设计汽车尾灯控制电路, 要求: 假设汽车尾部左右各有3个指示灯(用发光二极管模拟), a汽车正常运行时指示灯全灭: b右转弯时,右侧3个指示灯按右循环顺序点亮: c左转弯时左侧3个指示灯按左循环顺序点亮: d临时刹车所有指示灯同时闪烁. STATE (Q2Q1Q0)     STATE*(Q2*Q1*Q0*)    R0       R1      R2           L0     L1       L2 正常      00     

用Verilog语言设计一个3-8译码器

case语句 if_case语句 源代码 // case语句 module decoder38(din,dout); input [2:0] din; output reg[7:0] dout; [email protected](*) begin case(din) 3'b000: dout = 8'h01; 3'b001: dout = 8'h02; 3'b010: dout = 8'h04; 3'b011: dout = 8'h08; 3'b100: dout = 8'h10; 3'b10

CPU GPU设计工作原理《转》

我知道这很长,但是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们到底是怎么"私下勾搭"的.会有利于我们用程序来指挥它们....(这是我加上去的) 原文从这里开始: 要说到设计的复杂程度,那还是CPU了!这个不用讨论,很简单的道理你看看显卡芯片的更新速度和CPU的更新速度就可见一斑了.还是简单说说他们的设计原理吧. CPU: 但是,现在我要问一句:"什么是CPU?"我相信大多数人并不知道什么是CPU.当然,你可以回

基于状态机的简易RISC CPU设计

目录 一.什么是CPU? 二.RISC CPU结构 1.时钟发生器 2.指令寄存器 3.累加器 4.RISC CPU算术逻辑运算单元 5.数据控制器 6.状态控制器 7.程序计数器 8.地址多路器 9.外围模块 10.地址译码器 a.RAM b.ROM 三.RISC CPU中各部件的相互连接关系 四.RISC CPU和它的外围电路 五.RISC CPU的寻址方式和指令系统 六.RISC CPU的操作和时序 正文 一.什么是CPU? CPU 即中央处理单元的英文缩写,它是计算机的核心部件.计算机进

8-3编码器,3-8译码器的verilog实现

在数字系统中,由于采用二进制运算处理数据,因此通常将信息变成若干位二进制代码.在逻辑电路中,信号都是以高,低电平的形式输出.编码器:实现编码的数字电路,把输入的每个高低电平信号编成一组对应的二进制代码. 设计一个输入为8个高电平有效信号,输出代码为原码输出的3位二进制编码器. 化简逻辑表达式:由逻辑表达式可以得出,普通的8-3编码器用或门即可实现.对应的verilog程序如下: module mb_83(x,y); input [7:0]x; output [2:0]y; reg [2:0]y;

霍夫曼编码/译码器

赫夫曼树的应用 1.哈夫曼编码 在数据通信中,需要将传送的文字转换成二进制的字符串,用0,1码的不同排列来表示字符.例如,需传送的报文为"AFTER DATA EAR ARE ART AREA",这里用到的字符集为"A,E,R,T,F,D",各字母出现的次数为{8,4,5,3,1,1}.现要求为这些字母设计编码.要区别6个字母,最简单的二进制编码方式是等长编码,固定采用3位二进制,可分别用000.001.010.011.100.101对"A,E,R,T,F

AC620教程 第十五节 8位7段数码管驱动设计与验证

本章导读 电子系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.12864等)以及真彩液晶屏,VGA显示器一般是现在的电脑显示器.芯航线开发板对以上三种设备均提供了硬件接口. 本章将实现FPGA驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证.最终板级调试时使用In system sources and probes edi

大二第一学期期末课程设计 2015.12.28

<数据结构与算法>课程设计教学任务书 --2015-2016(一)   课程设计周数:2周                                                              一.课程设计的目的 数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科.数据结构是介于数学.计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计.数据库.操作系统.编译原理及人工智能等的重要基础,广泛的应用于信息学