实验三 3-8译码器的功能测试及仿真
3-8译码器实验报告
3-8译码器实验报告
班级:121 姓名:连森学号:02
1.实验目标与实验要求:
1.理解译码器的概念和意义
2.理解译码器在计算机电路里的作用。
2.实验器材:
Altair 80C31Small 教学实验平台杜邦线
3.实验原理(电路图):
74HC138 是集成3-8 线译码器,能将3 位二进制码转换为8 位输出信号,这8 位输出信号相对于输入的3 位二进制码的8 种编码,始终只有一位输出有效(低电平),其余7 位皆无效(高电平)
4.实验步骤
首先用杜邦线将A3实验区与逻辑开关K1~K6相连的JP1-1~JP1-6,连接到A7实验区与74HC138相连的JP9单号插针;接着在74HC138的输出端连接绿色LED显示器;然后用跳线连接JP39-1与JP39-2,即可接通电源。
5.实验结果(现象):
当K4、K5、K6 打到0、0、1时,译码器74HC138 的逻辑功能有效,相应引脚输出低电平,对应LED 熄灭。
否则,74HC138 始终输出高电平(无效电平),LED 全亮。
实验三 3-8译码器的功能测试及仿真
实验三3-8译码器功能测试及仿真一、实验目的1、掌握中规模集成3-8译码器的逻辑功能和使用方法。
2、进一步掌握VHDL语言的设计。
二、预习要求复习有关译码器的原理。
三、实验仪器和设备1.数字电子技术实验台1台2.数字万用表1块3.导线若干4.MUX PLUSII软件5.74LS138集成块若干四、实验原理译码器是一个多输入、多输出的组合逻辑电路。
它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。
译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。
不同的功能可选用不同种类的译码器。
译码器分为通用译码器和显示译码器两大类。
前者又分为变量译码器和代码变换译码器。
1.变量译码器(又称二进制译码器)用以表示输入变量的状态,如2线-4线、3线-8线和4线-16线译码器。
若有n个输入变量,则有2n个不同的组合状态,就有2n个输出端供其使用。
而每一个输出所代表的函数对应于n个输入变量的最小项。
以3线-8线译码器74LS138为例进行分析,下图(a)、(b)分别为其逻辑图及引脚排列。
其中 A2、A1、A0为地址输入端,0Y~7Y为译码输出端,S1、2S、3S为使能端。
下表为74LS138功能表,当S1=1,2S+3S=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。
当S1=0,2S+3S=X时,或 S1=X,2S+3S=1时,译码器被禁止,所有输出同时为1。
3-8线译码器74LS138逻辑图及引脚排列图74LS138功能表输入输出S12S+3S A2A1A00Y1Y2Y3Y4Y5Y6Y7Y1 0 0 0 0 0 1 1 1 1 1 1 11 0 0 0 1 1 0 1 1 1 1 1 11 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 1 1 1 1 1 1 1 00 ×××× 1 1 1 1 1 1 1 1× 1 ××× 1 1 1 1 1 1 1 1二进制译码器实际上也是负脉冲输出的脉冲分配器。
3 8译码器
试验一组合逻辑3线-8线译码器设计试验一、试验目的1、了解并初步掌握ModelSim软件的使用;2、了解使用ModelSim进行组合数字电路设计的一般步骤;3、掌握组合逻辑电路的设计方法;4、掌握组合逻辑电路3线-8线译码器的原理;5、掌握门级建模的方法;二、试验原理译码器(Decoder)的逻辑功能是将每个输入的二进制代码译成对应得输出高、低电平或另外一个代码。
因此,译码是编码的反操作。
常用的译码器电路有二进制译码器、二-十进制译码器和显示译码器等。
二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应得高、低电平信号。
例如,典型的3线-8线译码器功能框图图1-1所示。
输入的3位二进制代码共有8种状态,译码器将每个输入代码译成对应的一根输出线上的高、低电平信号。
图1-1 3线-8线译码器框图74HC138是用CMOS门电路组成的3线-8线译码器,它的逻辑图图1-2所示。
表1-1是74HC138的逻辑功能表。
当门电路G S的输出为高电平时,可以由逻辑图写出。
图1-2 74HC138逻辑功能图表1-1 74HC138逻辑功能表由上式可以看出,由''07Y Y -同时又是210,,A A A 这三个变量的全部最小项的译码输出,所以也将这种译码器称为最小项译码器。
74HC138有3个附加的控制端''123,S S S 和。
当''123S 1,S S 0=+=时,s G 输出为高电平,译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁为高电平。
这3个控制端也称为“片选”输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能;三、 预习要求1、数字电子技术基础组合逻辑电路设计一般设计方法;2、74HC138的逻辑功能;3、门级建模的一般方法和基本语句;4、ModelSim 软件的一般使用方法(ModelSim SE Tutorial);四、 实验步骤(一)、熟悉ModelSim 软件环境 1、建立一个新Project1-1双击左面快捷方式或者电击[程序]/[ModelSim SE 6.1f]/[ModelSim]启动ModelSim 6.1(如图1-3);注意:必须首先关闭IMPORTANT Information 对话框才能开始其它操作;图1-31-2 [File]/[New]/[Project…]新建一个project,会弹出Create Project对话框(如图1-4);图1-4⏹Project Name(项目名称)需要填入你所建立的项目的名称;⏹指定项目所在路径;如果所指定的目录不存在,会弹出对话框提示是否建立这个目录;一般选择是;⏹缺省的工作库名;注意:1、路径一般不应包含汉字;2、逻辑应在ModelSim的安装目录下指定;3、缺省的工作库的名称一般不需要改动;2、载入HDL元文件2-1设定好1-2步骤的每项内容后,点击OK,弹出Add items to the Projects对话框;如图1-5所示。
实验三 3-8译码器的功能测试及仿真
实验三3-8译码器功能测试及仿真一、实验目的1、掌握中规模集成3-8译码器的逻辑功能和使用方法。
2、进一步掌握VHDL语言的设计。
二、预习要求复习有关译码器的原理。
三、实验仪器和设备1.数字电子技术实验台1台2.数字万用表1块3.导线若干4.MUX PLUSII软件5.74LS138集成块若干四、实验原理译码器是一个多输入、多输出的组合逻辑电路。
它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。
译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。
不同的功能可选用不同种类的译码器。
译码器分为通用译码器和显示译码器两大类。
前者又分为变量译码器和代码变换译码器。
1.变量译码器(又称二进制译码器)用以表示输入变量的状态,如2线-4线、3线-8线和4线-16线译码器。
若有n个输入变量,则有2n个不同的组合状态,就有2n个输出端供其使用。
而每一个输出所代表的函数对应于n个输入变量的最小项。
以3线-8线译码器74LS138为例进行分析,下图(a)、(b)分别为其逻辑图及引脚排列。
其中 A2、A1、A0为地址输入端,0Y~7Y为译码输出端,S1、2S、3S为使能端。
下表为74LS138功能表,当S1=1,2S+3S=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。
当S1=0,2S+3S=X时,或 S1=X,2S+3S=1时,译码器被禁止,所有输出同时为1。
3-8线译码器74LS138逻辑图及引脚排列图74LS138功能表输入输出S12S+3S A2A1A00Y1Y2Y3Y4Y5Y6Y7Y1 0 0 0 0 0 1 1 1 1 1 1 11 0 0 0 1 1 0 1 1 1 1 1 11 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 1 1 1 1 1 1 1 00 ×××× 1 1 1 1 1 1 1 1× 1 ××× 1 1 1 1 1 1 1 1二进制译码器实际上也是负脉冲输出的脉冲分配器。
实验三 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译码器仿真及实现姓名:学号:班级:日期:一、实验目的和要求本次实验使用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译码器的仿真
一:实验名称: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线译码器一、实验目的:1、熟悉常用译码器的功能逻辑。
2、掌握复杂译码器的设计方法。
二、实验原理:1、总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。
2、3-8线译码器原理图如下图所示:三、实验连线:1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到 SOPC下载的一边2、请将JPLED1短路帽右插,JPLED的短路帽全部上插。
3、请将JP103的短路帽全部插上。
四、实验步骤:按照步骤三正确连线,参考实验二步骤,完成项目的建立,文件的命名,文件的编辑,语法检查,引脚分配,编译,下载。
实验参考代码: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;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY shiyan5 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 shiyan5;ARCHITECTURE ADO OF shiyan5 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;IF(DIN="000") THEN OUTA<="00111111" ;D_OUT<="00000000"; --"0"ELSIF(DIN="001") THEN outa<="00000110" ;D_OUT<="00000001"; --"1" ELSIF(DIN="010") THEN outa<="01011011";D_OUT<="00000010"; --"2" ELSIF(DIN="011") THEN outa<="01001111";D_OUT<="00000100"; --"3" ELSIF(DIN="100") THEN outa<="01100110";D_OUT<="00001000"; --"4" ELSIF(DIN="101") THEN outa<="01101101";D_OUT<="00010000"; --"5" ELSIF(DIN="110") THEN outa<="01111101";D_OUT<="00100000"; --"6"ELSIF(DIN="111") THEN outa<="00000111";D_OUT<="01000000"; --"7"ELSE OUTA<="XXXXXXXX";D_OUT<="XXXXXXXX";END IF;END PROCESS;END ADO;五、实验现象:(程序:EP2C5\dencode\dencode.sof)3-8线译码器的三个输入C、B、A分别对应拨位开关SW3,SW2,SW1,改变SW3,SW2,SW1的位置,以改变C、B、A 的状态,于LED1上观察译码实验结果。
仿真用与非门组成的3-8译码器(74HC138)
贵州大学
电路EDA电路技术课程考
核报告
姓名:田泽民
学号:PZ082014131 班级:08级计维班
一、实验目的:
1、会PSpice软件的仿真应用。
2、知道全加器的原理,进行仿
真。
二、实验名称:
仿真用与非门组成的3-8译码器(74HC138)。
三、实验内容:
画出电路图,进行参数的设置,截图,分析得到仿真结果。
四、实验原理:
译码器74HC138有三个附加的控制端,当状态为(1,0,0)时,译码器工作。
输入端A2,A1,A0;输出端Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7.
五、实验过程:
1、实验电路:
2、参数设置:
DSTM4、DSTM5、DSTM6高低电平交互的时间分别设为:4ms、2ms 和1ms,0—30ms,步长为5ms
3、仿真结果:
从上图可以看出,当输入端为000的时候选择Y0输出,当输入端为001的时候选择Y1输出……
010 Y2 011 Y3 100 Y4
101 Y5 110 Y6 111 Y7
4、真值表对照:
5、结果截图(与理论值相符):
六、实验结论:
本次实验,所得到的显示结果与预计:完全相同,因而证明本次实验是正确的。
七、实验总结:
进行参数设置的时候,时间不能设得太短,最好是以(ms)为单位。
在输入端时间设置应该注意取到每个输入组合,否则实验就不一定仿真出真实的结果。
实验三 3—8译码器
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
Q9
Q10
Q11
Q12
Q13
Q14
Q15
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1.实验现象与结果
(1)利用multisim仿真验证3/8译码器
(2)借助指示灯或万用表观测Q0-Q7的状态,记入表5-1中。
图5-2
2、 用两片74LS138组成4-16线译码器
按图5-3接线,利用开关改变输入D0-D3的状态。
图5-3
3.实验设备及材料
1.SAC-DS4数字逻辑电路实验箱1个
2.万用表 1块
3.74LS138 3-8线译码器2片
4.74LS40 双四输入与非门1片
4.实验方法步骤及注意事项
1)根据表5-1,利用开关设置S1、S2、S3、及A2、A1、A0的状态,借助指示灯或万用表观测Q0-Q7的状态,记入表5-1中。
0
1
1
0
1
1
3线8线译码器七段译码器实验报告
实验报告数据选择器设计12传感网金涛1228403019一.实验目的1.熟悉硬件描述语言软件的使用2.熟悉译码器的工作原理和逻辑功能3.掌握译码器及七段显示译码器的设计方法二.实验原理译码器是数字系统中常用的组合逻辑电路。
译码器的逻辑功能是将每个输入的二进制代码译成对应的输出高、低电平信号或者另外一个代码。
译码是编码的反操作。
常用的译码电路有二进制译码器、二—十进制译码器和显示译码器。
三.实验内容1.设计一个3线—8线译码器。
程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder3_8 ISPORT(a0,a1,a2,g1,g2a,g2b:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder3_8;ARCHITECTURE rtl of decoder3_8 isSIGNAL indata :STD_LOGIC_VECTOR(2 DOWNTO 0);BEGININdata <=a2&a1&a0;PROCESS(indata,g1,g2a,g2b)BEGINIF(g1='1' AND g2b='0' AND g2a='0')THENCASE INDA TA ISWHEN"000"=>Y<="11111110";WHEN"001"=>Y<="11111101";WHEN"010"=>Y<="11111001";WHEN"011"=>Y<="11110111";WHEN"100"=>Y<="11101111";WHEN"101"=>Y<="11011111";WHEN"110"=>Y<="10111111";WHEN"111"=>Y<="01111111";WHEN OTHERS=> NULL;END CASE;ELSEY<="11111111";END IF;END PROCESS;END rtl;仿真波形仿真波形分析g1g2ag2b为控制输入端,a2a1a0为数据输入端,y0y1y2y3y4y5y6y7为数据输出端。
EDA实验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的短路帽全部插上。
2-4转3-8译码器实验报告
2-4转3-8译码器实验报告
实验目的:
掌握2-4转3-8译码器的基本原理和应用,了解其译码功能和
逻辑电路设计。
实验器材:
2-4转3-8译码器芯片、数字逻辑实验箱、杜邦线等。
实验原理:
2-4转3-8译码器是一种常用的数字电路器件,用于将2位二
进制输入数据转换为8个输出信号。
其逻辑功能如下:
- 当输入为00时,输出Y0为1,其余输出为0;
- 当输入为01时,输出Y1为1,其余输出为0;
- 当输入为10时,输出Y2为1,其余输出为0;
- 当输入为11时,输出Y3为1,其余输出为0。
实验步骤:
1. 将2-4转3-8译码器芯片插入数字逻辑实验箱的芯片插座中。
2. 连接实验箱电源,并将电压调整到5V。
3. 将多根杜邦线依次连接译码器芯片和实验箱上的连接端,确保连接正确。
4. 将示波器的触发方式调整为外部触发,并将其中一根杜邦线接入示波器的外部触发输入端。
5. 设计四组输入数据,并分别将它们输入到译码器的AB端。
6. 观察示波器上的输出波形,检查译码器的输出是否满足预期。
实验结果:
根据设计输入数据和观察波形,可以确认2-4转3-8译码器的输出与理论相符,实现了正确的译码功能。
实验总结:
通过本次实验,我们成功地了解了2-4转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、时序仿真或功能仿真。
实验三 83优先编码器和38线译码器
实验三8-3优先编码器和3-8线译码器一、实验目的1、熟悉常用编码器,译码器的功能逻辑。
2、熟悉VHDL的代码编写方法。
3、掌握复杂译码器的设计方法。
二、实验原理2、逻辑表达式:Y2=X4&X5&X6&X7Y1=~(~(X2)&X4&X5|~(X3)&X4&X5|~(X6)|~(X7));Y0=~(~(X1)&x2&X4&X6|~(X3)&X4&X6|~(X5)&X6|~(X7));2、3-8线码器总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。
三、实验连线1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPCJTAG口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、请将JPLED1短路帽右插,JPLED的短路帽全部上插。
3、请将JP103的短路帽全部插上。
四、实验步骤及波形按照步骤三正确连线,参考实验二步骤,完成项目的建立,文件的命名,文件的编辑,语法检查,引脚分配,编译,下载。
8-3优先编码器参考代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYencodeISPORT(XINA:INSTD_LOGIC_VECTOR(7DOWNTO0);Y0,Y1,Y2:OUTSTD_LOGIC;OUTA:OUTSTD_LOGIC_VECTOR(7DOWNTO0);LEDW:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDencode;ARCHITECTUREADOOFencodeISSIGNALLED:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALXIN:STD_LOGIC_VECTOR(7DOWNTO0);BEGINXIN<=XINA;LEDW<="000";PROCESS(XIN)BEGINCASEXINISWHENx"00"=>OUTA<=x"3F";WHENx"01"=>OUTA<=x"06";WHENx"02"=>OUTA<=x"5B";WHENx"04"=>OUTA<=x"4F";WHENx"08"=>OUTA<=x"66";WHENx"10"=>OUTA<=x"6D";WHENx"20"=>OUTA<=x"7D";WHENx"40"=>OUTA<=x"07";WHENx"80"=>OUTA<=x"3F";WHENOTHERS=>OUTA<=x"3F";ENDCASE;ENDPROCESS;PROCESS(XIN)BEGINCASEXINISWHENx"01"=>LED<="001";WHENx"02"=>LED<="010";WHENx"04"=>LED<="011";WHENx"08"=>LED<="100";WHENx"10"=>LED<="101";WHENx"20"=>LED<="110";WHENx"40"=>LED<="111";WHENx"80"=>LED<="000";WHENOTHERS=>LED<="000";ENDCASE;ENDPROCESS;Y2<=LED(2);Y1<=LED(1);Y0<=LED(0);ENDADO;3-8译码器参考代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYDECODEISPORT(DATA_IN:INSTD_LOGIC_VECTOR(2DOWNTO0);LEDOUT,DATA_OUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);LEDW:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDDECODE;ARCHITECTUREADOOFDECODEISSIGNALOUTA,D_OUT:STD_LOGIC_VECTOR(7DOWNTO0);BEGINLEDW<="000";PROCESS(DATA_IN)V ARIABLEDIN:STD_LOGIC_VECTOR(2DOWNTO0);BEGINDIN:=DATA_IN;LEDOUT<=OUTA;DA TA_OUT<=D_OUT;CASEDINISwhen"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"WHENOTHERS=>OUTA<="XXXXXXXX";ENDCASE;CASEDINISWHEN"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";WHENOTHERS=>D_OUT<="XXXXXXXX";ENDCASE;ENDPROCESS;ENDADO;五、实验仿真8-3编码器引脚锁定如图:图5-1图5-2仿真波形如图:3-8译码器引脚锁定如图:图5-3波形如图:图5-4六、实验现象调试ok的EP2C5文件在文件夹decode中,可以直接调用。
3-8译码器的实现(综合实验)
广东海洋大学学生实验报告书(学生用表)实验名称3-8译码器的实现(综合实验)课程名称EDA 课程号学院(系) 信息学院专业电子信息工程班级1083学生姓名蒙传剑学号200811611323 实验地点钟海楼04017 实验日期2011年4月实验八、3-8译码器的实现(综合实验)一、实验目的:学会用VHDL去实现3-8译码器的实现(综合实验)。
二、实验设备:友晶公司的DE2板。
FPGA核心芯片为EP2C35F672C6。
三、实验内容:实现功能:在DE2板上面用三个开关作为地址的输入,一个开关作为选通使能端,用LEDR中的8位作为输出(低电平有效)四. 实验程序library ieee;use ieee.std_logic_1164.all;entity xie8 isport( en:in std_logic;a: in std_logic_vector(2 downto 0);y:out std_logic_vector(7 downto 0));end xie8;architecture behavioral of xie8 isbeginprocess(en,a)beginif (en='1') thencase a iswhen "000"=> y<="11111110";when "001"=> y<="11111101";when "010"=> y<="11111011";when "011"=> y<="11110110";when "100"=> y<="11101110";when "101"=> y<="11011110";when "110"=> y<="10111110";when "111"=> y<="01111110";when others =>null;end case;GDOU-B-11-112end if;end process;end behavioral;五..实验结果:1、仿真后的RTL图如下:2、仿真的波形图如下:六、心得体会在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验内容,实验步骤,最重要的是要记录什么数据和怎样做数据处理,等等。
实验三 8-3优先编码器和3-8线译码器
实验三8-3优先编码器和3-8线译码器一、实验目的1、熟悉常用编码器,译码器的功能逻辑。
2、熟悉VHDL的代码编写方法。
3、掌握复杂译码器的设计方法。
二、实验原理2、逻辑表达式:Y2=X4&X5&X6&X7Y1=~(~(X2)&X4&X5|~(X3)&X4&X5|~(X6)|~(X7));Y0=~(~(X1)&x2&X4&X6|~(X3)&X4&X6|~(X5)&X6|~(X7));2、3-8线码器总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。
三、实验连线1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、请将JPLED1短路帽右插,JPLED的短路帽全部上插。
3、请将JP103的短路帽全部插上。
四、实验步骤及波形按照步骤三正确连线,参考实验二步骤,完成项目的建立,文件的命名,文件的编辑,语法检查,引脚分配,编译,下载。
8-3优先编码器参考代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY encode ISPORT(XINA :IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y0,Y1,Y2: OUT STD_LOGIC;OUTA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LEDW: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END encode;ARCHITECTURE ADO OF encode ISSIGNAL LED: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL XIN: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINXIN<=XINA;LEDW<="000";PROCESS (XIN)BEGINCASE XIN ISWHEN x"00" => OUTA<=x"3F";WHEN x"01" => OUTA<=x"06";WHEN x"02" => OUTA<=x"5B";WHEN x"04" => OUTA<=x"4F";WHEN x"08" => OUTA<=x"66";WHEN x"10" => OUTA<=x"6D";WHEN x"20" => OUTA<=x"7D";WHEN x"40" => OUTA<=x"07";WHEN x"80" => OUTA<=x"3F";WHEN OTHERS => OUTA<=x"3F";END CASE;END PROCESS;PROCESS (XIN)BEGINCASE XIN ISWHEN x"01" => LED<="001";WHEN x"02" => LED<="010";WHEN x"04" => LED<="011";WHEN x"08" => LED<="100";WHEN x"10" => LED<="101";WHEN x"20" => LED<="110";WHEN x"40" => LED<="111";WHEN x"80" => LED<="000";WHEN OTHERS => LED<="000";END CASE;END PROCESS;Y2<=LED(2);Y1<=LED(1);Y0<=LED(0);END ADO;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)V ARIABLE DIN: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINDIN:=DA TA_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;五、实验仿真8-3编码器引脚锁定如图:图5-1图5-2仿真波形如图:3-8译码器引脚锁定如图:图5-3波形如图:图5-4六、实验现象调试ok的EP2C5文件在文件夹decode中,可以直接调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三3-8译码器功能测试及仿真
一、实验目的
1、掌握中规模集成3-8译码器的逻辑功能和使用方法。
2、进一步掌握VHDL语言的设计。
二、预习要求
复习有关译码器的原理。
三、实验仪器和设备
1.数字电子技术实验台1台
2.数字万用表1块
3.导线若干
4.MUX PLUSII软件
5.74LS138集成块若干
四、实验原理
译码器是一个多输入、多输出的组合逻辑电路。
它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。
译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。
不同的功能可选用不同种类的译码器。
译码器分为通用译码器和显示译码器两大类。
前者又分为变量译码器和代码变换译码器。
1.变量译码器(又称二进制译码器)
用以表示输入变量的状态,如2线-4线、3线-8线和4线-16线译码器。
若有n个输入变量,则有2n个不同的组合状态,就有2n个输出端供其使用。
而每一个输出所代表的函数对应于n个输入变量的最小项。
以3线-8线译码器74LS138为例进行分析,下图(a)、(b)分别为其逻辑图及引脚排列。
其中 A2、A1、A0为地址输入端,0Y~7Y为译码输出端,S1、2S、3S为使能端。
下表为74LS138功能表,当S1=1,2S+3S=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。
当S1=0,2S+3S=X时,或 S1=X,2S+3S=1时,译码器被禁止,所有输出同时为1。
3-8线译码器74LS138逻辑图及引脚排列图
74LS138功能表
二进制译码器实际上也是负脉冲输出的脉冲分配器。
若利用使能端中的一个输入端输入数据信息,器件就成为一个数据分配器(又称多路分配器),如图3-2所示。
若在S1输入
端输入数据信息,2S=3S=0,地址码所对应的输出是S1数据信息的反码;若从2S端输入数据信息,令S1=1、3S=0,地址码所对应的输出就是2S端数据信息的原码。
若数据信息是时钟脉冲,则数据分配器便成为时钟脉冲分配器。
根据输入地址的不同组合译出唯一地址,故可用作地址译码器。
接成多路分配器,可
将一个信号源的数据信息传输到不同的地点。
二进制译码器还能方便地实现逻辑函数,如下图所示,实现的逻辑函数是 Z =C B A C B A C B A +++ABC
作数据分配器图 实现逻辑函数图
利用使能端能方便地将两个 3/8译码器组合成一个4/16译码器,如下图所示。
用两片74LS138组合成4/16译码器图
五、实验内容及步骤
1.74LS138译码器逻辑功能测试
将译码器使能端S 1、2S 、3S 及地址端A 2、A 1、A 0 分别接至逻辑电平开关输出口,八个
Y⋅⋅⋅依次连接在逻辑电平显示器的八个输入口上,拨动逻辑电平开关,按下表逐输出端0
7Y
2.3-8译码器的VHDL仿真
1)运行该软件,在主菜单中选择File中的New中的Text Editor file文本编辑框,输入与门的VHDL文本:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY decoder3_8 IS
PORT(a: IN STD_LOGIC_ VECTOR(DOWNTO 0);
y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END decoder3_8;
ARCHITECTURE one OF decoder3_8 IS
BEGIN
PROCESS (a)
BEGIN
CASE a IS
WHEN "000"=>Y<="00000001";
WHEN "001"=>Y<="00000010";
WHEN "010"=>Y<="00000100";
WHEN "011"=>Y<="00001000";
WHEN "100"=>Y<="00010000";
WHEN "101"=>Y<="00100000";
WHEN "110"=>Y<="01000000";
WHEN "111"=>Y<="10000000";
WHEN OTHERS =>null;
END CASE;
END PROCESS ;
END one;
3进行波形仿真
4.波形分析
六、实验报告要求
1.画出实验线路,把观察到的波形画出来,并标上对应的地址码。
2.对仿真实验结果进行分析,说明译码器的特点。