3-8译码器代码

合集下载

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

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

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;always@(x)begincase (x)8'b00000001:y=3'b000; //当当 x=8 ’b00000001,则则 y 输出为 3 ’b0008'b00000010:y=3'b001; //当当 x=8 ’b00000010,则则 y 输出为 3 ’b0018'b00000100:y=3'b010; //当当 x=8 ’b00000100,则则 y 输出为 3 ’b0108'b00001000:y=3'b011; //当当 x=8 ’b00001000,则则 y 输出为 3 ’b0118'b00010000:y=3'b100; //当当 x=8 ’b00010000,则则 y 输出为 3 ’b1008'b00100000:y=3'b101; //当当 x=8 ’b00100000,则则 y 输出为 3 ’b1018'b01000000:y=3'b110; //当当 x=8 ’b01000000,则则 y 输出为 3 ’b1108'b10000000:y=3'b111; //当当 x=8 ’b10000000,则则 y 输出为 3 ’b111default: y=3'b000;endcaseendendmodule上述编码器有⼀个缺点,即在某⼀个时刻只允许有⼀个有效的输⼊,⽽同时若⼜有两个或两个以上的输⼊信号要求编码,输出端⼀定会发⽣混乱,出现错误。

范文4.3常用组合逻辑电路(3线—8线译码器138)

范文4.3常用组合逻辑电路(3线—8线译码器138)
内容回忆
• 编码: 将输入的每个高/低电平信号变成一个对应的二 进制代码
最新.
1
选通输入端 S'
I '7
I '6
I '5
状态信号 I '4
输入端
I '3
〔低电平有效〕 I '2
I '1
I '0
YS'
YE' X
最新.
74HC148
Y ' S 选通输出端
Y '2 代码输出端 Y '1 Y '0 〔低电平有效〕 Y'EX 扩展端
最新.
16
例1:利用74HC138设计一个多输出的组合逻辑电 路,输出逻辑函数式为:
Z1 AC ' A'BC AB'C Z2 BC A'B'C Z3 A'B AB'C Z4 A'BC ' B'C ' ABC
最新.
17
解:先将要输出的逻辑函数化成最小项之和的形式, 即
Z1ACABCABCm3m4m5m6 Z2 BCABCm1m3m7 Z3 ABABCm2m3m5 Z4 ABCBCABC m0m2m4m7
S2'S3'0时
Yi'(S1mi)'
最新.
12
• 利用附加控制端进展扩展 • 例:用74HC138〔3线—8线译码器〕 • 构成 4线—16线译码器
最新.
13
D3=0
Zi' mi'
最新.
D3=1
14
二、二-十进制译码器 二-十进制译码器的逻辑功能是将输入的BCD代 码译成10个高、低电平输出信号。

实验三+3-8译码器仿真及实现

实验三+3-8译码器仿真及实现

实验三3-8译码器仿真及实现姓名:学号:班级:日期:一、实验目的和要求本次实验使用Verilog 硬件描述语言在DE1开发平台上设计一个基本组合逻辑电路3-8 译码器,并完成功能仿真和时序仿真。

二、实验环境1、PC机,Pentium 4 2.0G以上,内存1G以上,硬盘500G以上,1024×768彩显,USB接口,网络接口,串口。

2、友晶DE1开发板和相关配件。

3、软件:Windows XP或者Windows 7操作系统,DE1配套光盘。

三、实验内容1、编写3-8的Verilog程序。

2、构建仿真波形文件,实现QuartusII的功能仿真和时序仿真。

3、下载设计到DE1,观察译码输出。

四、实验步骤1、建立Quartus 工程:1)打开Quartus II 工作环境。

2)点击菜单项File->New Project Wizard 帮助新建工程。

3)输入工程目录、工程文件名以及顶层实体名。

自己起名字,例如学号加38等。

注意:输入的顶层实体名必须与之后设计文件的顶层实体名相同,默认的顶层实体名与工程文件名相同,本类实验均采用这种命名方法以便于管理。

不要使用Quartus II的根目录作为工程目录。

4)添加设计文件。

如果用户之前已经有设计文件(比如.v 文件)。

那么直接添加相应文件,如果没有完成的设计文件,点击Next 之后添加并且编辑新的设计文件。

5)选择设计所用器件。

由于本次实验使用 Altera 公司提供的DE1 开发板,用户必须选择与之相对应的FPGA 器件型号,如下图:6)设置 EDA 工具。

设计中可能会用到的EDA 工具有综合工具、仿真工具以及时序分析工具。

本次实验中不使用这些工具,因此点击Next 直接跳过设置。

7)查看新建工程总结。

在基本设计完成后,Quartus II 会自动生成一个总结让用户核对之前的设计,确认后点击Finish 完成新建。

8)培养良好的文件布局。

Quartus II 默认把所有编译结果放在工程的根目录,为了让Quartus II 像Visual Studio 等IDE 一样把编译结果放在一个单独的目录中,需要指定编译结果输出路径。

用多种方法描述3_8译码器

用多种方法描述3_8译码器

《在VHDL中用多种方法描述3线-8线译码器》沈明山2011-01-033_8译码器元件符号:addres[2..0]: 地址信号线3根;sta: 选择信号,高电平有效;stbn: 选择信号,低电平有效;stcn:选择信号,低电平有效;yout[7..0]: 译码器输出信号,8位,每位的输出低电平有效。

功能表:同74LS138相同。

一、条件信号赋值语句法。

1、条件信号赋值语句格式沈明山《EDA技术及可编程器件应用实训》科学出版社2004年10月第1版p185;王传新《FPGA设计基础》高等教育出版社2007年9月第1版P742、文本范例:decoder3_8_1.vhdLIBRARY ieee;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder3_8_1 ISPORT(addres : IN STD_LOGIC_VECTOR(2 downto 0);sta, stbn, stcn: IN STD_LOGIC;yout : OUT STD_LOGIC_VECTOR(7 downto 0));END decoder3_8_1;ARCHITECTURE a OF decoder3_8_1 ISSIGNAL ytemp : STD_LOGIC_vector(7 downto 0);SIGNAL st_temp : STD_LOGIC_vector(2 downto 0);BEGINst_temp<= sta&stbn&stcn;ytemp<="11111110" WHEN (addres="000") ELSE"11111101" WHEN (addres="001") ELSE"11111011" WHEN (addres="010") ELSE"11110111" WHEN (addres="011") ELSE"11101111" WHEN (addres="100") ELSE"11011111" WHEN (addres="101") ELSE"10111111" WHEN (addres="110") ELSE"01111111" WHEN (addres="111") ;yout<=ytemp WHEN (st_temp="100")ELSE "11111111";END a; --3_8译码器的设计方法1条件信号赋值语句法3、仿真波形图二、选择信号赋值语句法1、选择信号赋值语句格式沈明山《EDA技术及可编程器件应用实训》科学出版社2004年10月第1版p185;王传新《FPGA设计基础》高等教育出版社2007年9月第1版P742、文本范例:decoder3_8_2.vhdLIBRARY ieee;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder3_8_2 ISPORT(addres : IN STD_LOGIC_VECTOR(2 downto 0);sta,stbn,stcn: IN STD_LOGIC;yout : OUT STD_LOGIC_VECTOR(7 downto 0));END decoder3_8_2;ARCHITECTURE a OF decoder3_8_2 ISSIGNAL ytemp : STD_LOGIC_vector(7 downto 0);SIGNAL st_temp : STD_LOGIC_vector(2 downto 0);BEGINst_temp<= sta&stbn&stcn;WITH addres SELECTytemp<="11111110" WHEN "000","11111101" WHEN "001","11111011" WHEN "010","11110111" WHEN "011","11101111" WHEN "100","11011111" WHEN "101","10111111" WHEN "110","01111111" WHEN "111","11111111" WHEN OTHERS; --必须加此句,以便对U、Z等情况做出限定yout<=ytemp WHEN (st_temp="100")ELSE "11111111";END a; --3_8译码器的设计方法2:选择信号赋值法。

实验五 3-8线译码器

实验五 3-8线译码器

实验五 3-8线译码器一、实验目的1、熟悉常用译码器的功能逻辑。

2、掌握复杂译码器的设计方法。

二、实验原理1、总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。

2、3-8线译码器原理图如下图所示:三、实验程序实验参考代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DECODE ISPORT(DATA_IN :IN STD_LOGIC_VECTOR(2 DOWNTO 0);LEDOUT,DATA_OUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LEDW :OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END DECODE;ARCHITECTURE ADO OF DECODE ISSIGNAL OUTA,D_OUT : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINLEDW<="000";PROCESS (DATA_IN)VARIABLE DIN: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINDIN:=DATA_IN;LEDOUT<=OUTA;DATA_OUT<=D_OUT;CASE DIN ISwhen "000" => OUTA<="00111111" ; --"0"when "001" => outa<="00000110" ; --"1"when "010" => outa<="01011011"; --"2"when "011" => outa<="01001111"; --"3"when "100" => outa<="01100110"; --"4"when "101" => outa<="01101101"; --"5"when "110" => outa<="01111101"; --"6"when "111" => outa<="00000111"; --"7"WHEN OTHERS => OUTA<="XXXXXXXX";END CASE;CASE DIN ISWHEN "000" => D_OUT<="00000000";WHEN "001" => D_OUT<="00000001";WHEN "010" => D_OUT<="00000010";WHEN "011" => D_OUT<="00000100";WHEN "100" => D_OUT<="00001000";WHEN "101" => D_OUT<="00010000";WHEN "110" => D_OUT<="00100000";WHEN "111" => D_OUT<="01000000";WHEN OTHERS=> D_OUT<="XXXXXXXX";END CASE;END PROCESS;END ADO;四、实验步骤1、打开Quartus II,选择“File”菜单下的“New Project Wizard”,建立Project及顶层实体的名称为ADO,期间,选择的目标芯片为EP2C5Q208C8N;2、选择“File”菜单下的“New”命令,在“New”窗口中选择“VHDL Files”,输入程序,进行编译;3、选择“File”菜单中的“New”项,在“New”窗口中选择“Other Files”中的“VectorWaveform File”项,打开空白的波形编辑器,输入所有的信号节点,给输入随机赋值,保存,单击工具栏上的快捷方式,进行波形仿真;4、打开“Assignments”菜单下的“Pins”命令,打开引脚锁定窗口,进行引脚锁定,再次对VHDL Files进行编译;5、连接EDA实验箱,将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到 SOPC下载的一边,将JPLED1短路帽右插,JPLED的短路帽全部上插,请将JP103的短路帽全部插上。

实验一3-8译码器

实验一3-8译码器

3-8译码器的仿真
一:实验名称:3-8译码器仿真
二:实验要求:熟悉对max+plusⅡ10.0的使用,并且能简单的使用进行3-8译码器的仿真和论证。

三:实验步骤:
1:使用max+plusⅡ10.0软件,设计3-8译码器的实验原理图如下所示:
图1 实验原理图
2:波形的仿真与分析
启动max+plusⅡ10.0\Waveform editor菜单,进入波形编辑窗口,选择欲仿真的所有I\O管脚。

如下图所示:
图2 波形编辑
为输入端口添加激励波形,使用时钟信号。

选择初始电平为“0”,时
钟周期倍数为“1”。

添加完后,波形图如下所示:
图3 添加激励后的波形
打开max+plusⅡ10.0\Simulator菜单,确定仿真时间,单击Start开始仿真,如下图所示:
图4 仿真过程
图5 仿真结果
四:实验结论:使用max+plusⅡ10.0能很好的完成很多电路的仿真与工作。

实验三 3-8译码器的设计

实验三  3-8译码器的设计

实验三3-8译码器的设计
一.实验目的:
1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。

2、初步掌握VHDL语言的常用语句。

3、掌握VHDL语言的基本语句及文本输入的EDA设计方法。

二、设计要求
设计一个3—8译码器使其满足如下真值表:
1.采用原理图输入法利用门电路进行设计并实现仿真、下载。

2.利用VHDL语言输入进行设计并进行仿真。

三、预习要求:
1.熟悉3-8译码器原理
2.根据原理绘制原理图。

3.初步写出VHDL语言程序。

四、实验记录
1.原理图及源程序。

2.仿真波形。

(两种方法)
3.延时分析。

(两种方法)。

3线8线译码器(有地址锁存)

3线8线译码器(有地址锁存)
SG54HC137 SG74HC137 逻辑符号
3线—8线译码器(有地址锁存)
外引线排列



推荐工作条件
电源电压 输入电压 输出电压 输入电流 输出电流
电源电流
VCC…………….-0.5~+7.0V V1….…..-1.5V~+Vcc+1.5V VO……….-0.5V~Vcc+0.5V I1(每端)…….…..±20mA IO(每端)…………...± 25mA
1.2
1.2
2.0
1.9
1.9
1.9
4.5
4.4
4.4
4.4
V
6.0
5.9
5.9
5.9
VI=VIL或VIH
4.5
|IO| ≤4.0mA
6.0
|IO| ≤5.2mA
VI=VIL或VIH
2.0 4.5
|IO| ≤20µA VOL 输出低电平电压
6.0
(最大)
VI=VIL或VIH
4.5
|IO| ≤4.0mA
2.0
195
4.5
39
6.0
33
2.0
100
4.5
20
6.0
17
2.0
50
4.5
10
6.0
8
2.0
75
4.5
15
6.0
13
2.0
80
4.5
16
6.0
14
75
10
246
291
49
58
ns
42
49
125
150
25
30
ns

数电实验丨异或门-3_8译码器-模型机指令译码器

数电实验丨异或门-3_8译码器-模型机指令译码器

数字电路与逻辑设计实验一一、实验目的熟悉QuartusII仿真软件的基本操作,并用VHDL语言设计一个异或门。

二、实验内容1、熟悉QuartusII软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、波形设计)2、用VHDL语言设计一个异或门,最后仿真验证。

3、用VHDL语言设计一个3-8译码器,最后仿真验证。

4、用VHDL语言设计一个指令译码器,最后仿真验证。

第一部分:异或门①实验方法1、实验方法采用基于FPGA进行数字逻辑电路设计的方法。

采用的软件工具是Quartus II。

2、实验步骤1、新建,编写源代码。

(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路(设置文件名XOR2.vhd—在【add】)-【properties】径+设置project name为XOR2)-【next】(type=AHDL)-【next】(family=FLEX10K;name=EPF10K10TI144-4)-【next】-【finish】 (2).新建:【file】-【new】(第二个AHDL File)-【OK】2、根据题意,画好原理图,写好源代码并保存文件。

原理图:3、编译与调试。

确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译,编译成功。

4、波形仿真及验证。

新建一个vector waveform file。

按照程序所述插入a,b,c三个节点(a、b为输入节点,c为输出节点)。

(操作为:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】)。

任意设置a,b的输入波形…点击保存按钮保存。

然后【start simulation】,出name C的输出图。

5、时序仿真或功能仿真。

项目3 3线-8线译码器设计

项目3 3线-8线译码器设计

项目三3线-8线译码器电路设计
班级:09电信姓名:朱丽丝学号:41
1.实训目标
1)通过3线-8线译码器的设计,让学生掌握组合逻辑电路的设计方法。

2)掌握译码器的设计原理。

3)掌握Altera MAX+PLUS II原理图输入设计和VHDL语言输入设计的全过程。

2.实训原理
3线-8线译码器的真值表见表3-1。

表3-1
3.实训步骤
1)利用原理图编辑法,在Mf函数的maxplus2里面调用74138器件(3线-8线译码
器),加入输入和输出引脚。

编程器件型号选择ACE1k系列的EP1K30TC144-3。

完成项目编辑及功能仿真。

2)采用文本编辑法,即利用VHDL语言描述3线-8线译码器,代码如下。

然后对其进行编译,编程器件型号选择ACE1k系列的EP1K30TC144-3,完成程序仿真,记录仿真数据。

4.实训数据
1)原理图编辑法设的3线-8线译码器的电路。

2)原理图编辑法仿真结果。

简述仿真波形的意义。

3)采用VHDL语言设计的3线-8线译码器的仿真结果。

简述仿真波形的意义。

5.思考题
根据BCD-7段显示译码器的真值表,见表4-2,用VHDL语言描述BCD-7段显示译码器。

进行编辑和仿真,写出设计的VHDL程序,并记录仿真数据。

3-8译码器

3-8译码器

摘要EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

EDA设计可分为系统级、电路级和物理实现级。

关键词译码,VHDL语言,MAX+PLUSⅡAbstractEDA technology refers to the computer for working platform, shirt-sleeve application of electronic technology, computer technology and information processing and intelligent technology to the latest achievements of electronic products, the automatic design.Using EDA tools, electronic stylist can be from concept, algorithm, agreement, etc, begin to design your electronic system a lot work can be finished by computer and electronic products can be from circuit design, performance analysis to design the IC territory or PCB layout the whole process of the computer automatically complete the processing.Now on the concept of using EDA or category very wide. Included in machinery, electronics, communication, aerospace, chemical, mineral, biology, medicine, military and other fields, have EDA applications. Current EDA technology has in big companies, enterprises, institutions and teaching research departments extensive use. For example in the aircraft manufacturing process, from design, performance testing and characteristic analysis until a flight simulator, all may involve EDA technology. Globalization-the EDA technology, mainly in electronic circuit design, PCB design and IC design.EDA can be divided into system level and circuit-level and physical implementation level.Keywords cent, the VHDL language, MAX+PLUS II目录摘要 (I)ABSTRACT (II)目录 .............................................................................................................................................. I II 引言 (1)一EDA技术简介 (2)1.1EDA技术的概念 (2)1.2EDA技术的特点 (2)1.3EDA设计技术的主要内容 (2)1.4EDA设计技术的方法 (2)1.5EDA技术的发展趋势 (3)二硬件语言VHDL描述 (5)2.1VHDL概述 (5)2.2VHDL语言的特点 (5)2.3VHDL语言的基本结构 (6)2.4VHDL语言的设计方法 (6)2.5VHDL语言的设计流程 (6)三3-8译码器 (7)3.1M AX+PLUS II软件介绍 (7)3.23-8译码器的工作原理和VHDL语言程序 (7)3.2.1 3-8译码器的工作原理 (7)3.2.2 3-8译码器的VHDL语言程序 (8)3.33-8译码器的仿真和原理分析 (9)3.3.1 3-8译码器的仿真步骤 (9)3.3.2 3-8译码器的仿真波形 (13)3.3.3 3-8译码器的仿真波形分析 (13)3.3.4 3-8译码器的原理框图 (14)结论 (15)致谢 (16)参考文献 (17)附录A (18)附录B (19)附录C (20)引言随着社会的发展,科学技术也在不断的进步。

3-8译码器设计

3-8译码器设计

摘要EDA技术是以微电子技术为物理层面,现代电子设计技术为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC为目的的一门新兴技术。

而VHDL语言是硬件描述语言之一,其广泛应用性和结构的完整性使其成为硬件描述语言的代表。

随着社会经济和科技的发展,越来越多的电子产品涌如我们的日常生活当中,在日常生活中译码器起着不可忽视的作用。

本设计就是运用VHDL语言设计的3-8译码器。

3-8译码器电路的输入变量有三个即D0,D1,D2,输出变量有八个Y0-Y7,对输入变量D0,D1,D2译码,就能确定输出端Y0-Y7的输出端变为有效(低电平),从而达到译码目的。

关键词 EDA 输入,输出,译码器AbstractEDA technology is for the physical plane microelectronics technology, modern electronic design technology for the soul, and computer software technology as the means, and finally form integrated electronic system or application-specific integrated circuit ASIC for the purpose of a new technology. And VHDL language is one of the hardware description language, which are widely applied and theintegrity of the structure to make it a hardware description language representative.Along with the social economy and the development of science and technology, more and more electronic product surged into our daily life in the daily life of decoder plays an important role. This design is theuse of the design of 3-VHDL language 8 decoder. 3-8 decoder circuit, input variables have three namely D0, D1, D2, output variable has eight Y0-Y7, D0 to input variables, D1, D2 decoding, can determine the output, the output terminal of the Y0-Y7 into effective (low level), so as to achieve the purpose decoding.Key word EDA input output decode目录引言EDA(Electronic Design Automation)技术是现代电子工程领域的一门新技术。

4.3常用组合逻辑电路(3线—8线译码器 138)

4.3常用组合逻辑电路(3线—8线译码器 138)
中规模集成电路是为了实现专门的逻 辑功能而设计,但是通过适当的连接, 可以实现一般的逻辑功能。
用中规模集成电路设计逻辑电路,可 以减少连线、提高可靠性。
任何一个逻辑函数都可以表示成最小 项和的形式,而3-8译码器的输出对应于 不同的最小项,因此,可用3-8译码器方 便的实现任意3三变量逻辑函数。
例1:利用74HC138设计一个多输出的组合逻辑电 路,输出逻辑函数式为:
状态 不工作 工作,但无输入 工作,且有输入 不可能出现
4.3.2 译码器
译码器的逻辑功能是将每个输入的 二进制代码译成对应的输出高、低电平 信号。
译码器
二进制译码器 二-十进制译码器
显示译码器
一、二进制译码器
二进制译码
器有n个输入 端(即n位二进
制码),2n个 输出线。
常见的译码 器有2—4译码 器、3—8译码 器和4—16译
X
1 XXX1 1 1 1 1 1 1 1
1
0 00011111110
1
0 00111111101
1
0 01011111011
1
0 01111110111
1
0 10011101111
1
0 10111011111
1
0 11010111111
1
0 11101111111
当附加控制端S1=0或S2+S3=1时,译码器被 禁止工作,输出端状态全部为高电平。
A2 A1 A0 S1 S 2 S 3
ABC 1
例3 试利用3线-8线译码器74HC138及与非门实现 全减器,设A为被减数,B为减数,CI为来自低位的 借位,D为差,CO为向高位的借位。
A B CI D CO 00 000 00 111 01 011 01 101 10 010 10 100 11 000 11 111

用VHDL设计三八译码器。。超赞版

用VHDL设计三八译码器。。超赞版

3-8译码器的设计1 设计目的与要求随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。

由此,计算机对我们的社会对我们每个人都是很重要的。

所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。

编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。

1.1 设计的目的本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。

以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。

通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。

也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。

1.2 设计要求根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。

译码器由三-八译码器为实例代表。

关键词:输入、输出、译码2 VHDL的简单介绍2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期出现。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。

目前,它在我过的应用多数是用在FPGA/CPLD/EPLD的设计中。

01.【点滴积累FPGA】关于3-8译码器10种不同的表达

01.【点滴积累FPGA】关于3-8译码器10种不同的表达

module decoder38_1( //使用位移操作input [2:0]a,output [7:0]y);assign y=1<<a;endmodulemodule decoder38_2( //使用CASE 语句input [2:0]a,output [7:0]y);reg [7:0]y;always @*case (a[2:0])0:y<=8'b0000_0001;1:y<=8'b0000_0010;2:y<=8'b0000_0100;3:y<=8'b0000_1000;4:y<=8'b0001_0000;5:y<=8'b0010_0000;6:y<=8'b0100_0000;7:y<=8'b1000_0000;endcaseendmodulemodule decoder38_3( //使用ifinput [2:0]a,output [7:0]y);reg [7:0]y;always @*if (a==0)y<='h01;elseif (a==1)y<='h02;elseif (a==2)y<='h04;elseif (a==3)y<='h08;elseif (a==4)y<='h10;elseif (a==5)y<='h20;elseif (a==6)y<='h40;elseif (a==7)y<='h80;elsey<='hx;endmodulemodule decoder38_4( //使用assigninput [2:0]a,output [7:0]y);assign y[0] = a==0 ;assign y[1] = a==1 ;assign y[2] = a==2 ;assign y[3] = a==3 ;assign y[4] = a==4 ;assign y[5] = a==5 ;assign y[6] = a==6 ;assign y[7] = a==7 ;endmodulemodule decoder38_5( //使用位逻辑运算input [2:0]a,output [7:0]y);assign y[0] = ~a[2] & ~a[1] & ~a[0] ;//3'b000 assign y[1] = ~a[2] & ~a[1] & a[0] ;//3'b001 assign y[2] = ~a[2] & a[1] & ~a[0] ;//3'b010 assign y[3] = ~a[2] & a[1] & a[0] ;//3'b011 assign y[4] = a[2] & ~a[1] & ~a[0] ;//3'b100 assign y[5] = a[2] & ~a[1] & a[0] ;//3'b101 assign y[6] = a[2] & a[1] & ~a[0] ;//3'b110 assign y[7] = a[2] & a[1] & a[0] ;//3'b111endmodulemodule decoder38_6(//使用?:表达式input [2:0]a,output [7:0]y);assign y = (a==0)?'h01:(a==1)?'h02:(a==2)?'h04:(a==3)?'h08:(a==4)?'h10:(a==5)?'h20:(a==6)?'h40:(a==7)?'h80:'hx;endmodulemodule decoder38_7(//使用循环input [2:0]a,output [7:0]y);reg [7:0]y;integer i ;//or reg [3:0]i ;always @(*)for(i=0;i<=7;i=1+i)if(a==i)y[i]=1;else y[i]=0;endmodulemodule decoder38_8( //使用function 调用input [2:0]a,output [7:0]y);function [7:0]do_dec38;input [2:0]din;do_dec38 = 1<<din;endfunctionassign y=do_dec38(a);endmodulemodule decoder38_9( //使用task 调用,此处可以综合input [2:0]a,output [7:0]y);reg [7:0]y ;task do_dec38;input [2:0]din;y = 1<<din;endtaskalways @*do_dec38(a);endmodulemodule decoder38_10( //例化模块实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Y<="11111111";
END IF;
END PROCESS;
END rtl;
七段显示
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
BEGIN
IF(g1='1' AND g2b='0' AND g2a='0')THEN
CASE INDATA IS
WHEN"000"=>Y<="11111110";
WHEN"001"=>Y<="11111101";
ENTITY decled1 IS
PORT(AIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END DECLED1;
ARCHITECTURE BEHAV OF DECLED1 IS
WHEN"0111"=>DOUT<="0000111";
WHEN"1000"=>DOUT<="1111111";
WHEN"1001"=>DOUT<="1101111";
WHEN"1010"=>DOUT<="1110111";
WHEN"1111"=>DOUT<="1110001";
WHEN OTHERS=>DOUT<="0000000";
END CASE;
END PROCESS;
END BEHAV;
WHEN"0011"=>DOUT<="1001111";
WHEN"0100"=>DOUT<="1100110";
WHEN"0101"=>DOUT<="1101101";
WHEN"0110"=>DOUT<="1111101";
WHEN"010"=>Y<="11111001";
WHEN"011"=>Y<="11110111";
WHEN"100"=>Y<="11101111";
WHEN"101"=>Y<="11011111";
3-8译码器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY decoder3_8 IS
PORT(a0,a1,a2,g1,g2a,g2b:IN STD_LOGIC;
Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
WHEN"1011"=>DOUT<="1111100";
WHEN"1100"=>DOUT<="0111001";
WHEN"1101"=>DOUT<="1011110";
WHEN"1110"=>DOUT<="1111001";
BEGIN
PROCESS(AIN)
BEGIN
CASE AIN IS
WHEN"0000"=>DOUT<="0111111";
WHEN"0001"=>DOUT<="0000110";
WHEN"0010"=>DOUT<="1011011";
WHEN"110"=>Y<="10111111";
WHEN"111"=&g34;;
WHEN OTHERS=> NULL;
END CASE;
ELSE
END decoder3_8;
ARCHITECTURE rtl of decoder3_8 is
SIGNAL indata :STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
INdata <=a2&a1&a0;
PROCESS(indata,g1,g2a,g2b)
相关文档
最新文档