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文件烧写到开发板中。

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

时间: 07-15

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

FPGA开发随笔汇总

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

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

静态网页框架设计首次体验(文章改)

根据教材与上网成功解决了Tomcat与Myeclipse的安装,同时熟悉了Java web创建项目到部署运行整个过程.今天起正式开始学习有关Java web的编程部分.Java web静态网页(HTML网页)的标记含义.基本语法的介绍到框架设计基本模板与案例,今天的学习的内容,让网页编程有了一个初步的框架.结合自身所在协会的情况,计划制作一个关于协会的网页,已有初步想法,望通过学习不断完善和修改协会网站.根据今天所学,并参考书本30页框架设计案例对网页进行初步搭建. 具体代码如下 TW.jsp:

PYQT设计无边框窗体

#UI.py,通过UI设计师制作后直接转换为UI.py脚本 # -*- coding: utf-8 -*-from PyQt4 import QtCore, QtGui try:    _fromUtf8 = QtCore.QString.fromUtf8except AttributeError:    _fromUtf8 = lambda s: s class Ui_Form(object):    def setupUi(self, Form):        Form.setObject

Java精品高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,视频教程

36套精品Java架构师,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,P2P金融项目,大型分布式电商实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Elasticsearch,Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.java8新特性,P2P金融项目,程序设计,

Android 设计一个菱形形状的Imageview组件.

网上没有资料,特来请教下大神 Android 设计一个菱形形状的Imageview组件. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007107851/Android设计一个菱形形状的Imageview组件.html