实验2 三八译码器设计
EDA实验一3-8译码器的设计

《电子设计自动化》实验报告实验一实验名称:3-8译码器的设计专业及班级:姓名:学号:一、实验目的:1.掌握组合逻辑电路的设计方法。
2.;3.掌握VHDL语言的基本结构及设计的输入方法。
4.掌握VHDL语言的基本描述语句的使用方法。
二、实验步骤(附源代码及仿真结果图):1.建立工程,Quartus II --File--New project wizard(注意工程目录中不能出现中文字符,不能建立在桌面上);弹出窗口如图2-3所示。
图2-3 New Project Wizard 窗口2.点击next,在出现的对话框中输入如下项目信息:a.项目路径,如:D:\EDA experiment\decoder38;b.(c.项目名称,如:decoder38。
如图2-4所示:图2-4 项目路径和项目名称对话框3.点击2次next后,出现如图2-5所示的对话框:a.Device family中选择Cyclone IV E;b.Available devices中选择EP4CE115F29C7.图2-5 器件选择窗口4.~5.点击next后,出现EDA工具设置对话框。
在Simulation一行中,Tool Name选择ModelSim-Altera,Fomat(s)选择VHDL,如图2-6所示。
图2-6 EDA工具设置对话框6.点击next,出现如图2-7所示的对话框:图2-7 新建项目汇总对话框7.点击Finish后,出现如图2-8所示的界面:&图2-8 decoder38项目界面8.点击File->New->VHDL File,如图2-9所示。
点击ok关闭对话框。
图2-9 新建VHDL文件窗口9.在文本编辑框内键入如下程序:LIBRARY ieee;USE decoder38 ISPORT(;A, B,C,G1,G2A,G2B: IN STD_LOGIC;Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder38;ARCHITECTURE Behavior OF decoder38 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINindata <= C&B&A;PROCESS (indata, G1, G2A,G2B)#BEGINIF (G1='1' AND G2A='0' AND G2B='0') THENCASE indata ISWHEN "000"=>Y<="";WHEN "001"=>Y<="";WHEN "010"=>Y<="";WHEN "011"=>Y<="";WHEN "100"=>Y<="";】WHEN "101"=>Y<="";WHEN "110"=>Y<="";WHEN "111"=>Y<="01111111";WHEN OTHERS =>Y<="XXXXXXXX";END CASE;ELSEY<="";END IF;:END PROCESS;END Behavior;10.将文件保存为后,开始编译,点击Processing->Start Compilation,编译成功后,出现如图2-10所示界面:图2-10 编译成功界面10. 再次新建一个vhdl文件,键入如下的modelsim测试程序:LIBRARY ieee;)USE decoder38_tb ISEND decoder38_tb;ARCHITECTURE Behavior OF decoder38_tb ISCOMPONENT decoder38PORT (A,B,C,G1,G2A,G2B: IN STD_LOGIC;Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;#SIGNAL A: STD_LOGIC:='0';SIGNAL B : STD_LOGIC:='0';SIGNAL C: STD_LOGIC:='0';SIGNAL G1: STD_LOGIC:='1';SIGNAL G2A: STD_LOGIC:='0';SIGNAL G2B: STD_LOGIC:='0';SIGNAL Y: STD_LOGIC_VECTOR(7 DOWNTO 0);CONSTANT CLK_PERIOD: TIME:=10ns;<BEGINA<=not A after CLK_PERIOD;B<=not B after 20ns;C<=not C after 40ns;U1: decoder38 port map(A=>A,B=>B,C=>C,G1=>G1,G2A=>G2A,G2B=>G2B,Y=>Y);END behavior;11. 将文件保存为,编译通过。
38译码逻辑设计(图形法)

实验一 3—8译码逻辑设计(图形法)姓名:赵佳伟学号:1002100449一、实验目的l、学习并掌握MAX+PLUSⅡ10.0 Altera CPLD软件开发平台。
2、通过一个简单的3—8译码器的设计,掌握图形编程的使用方法。
3、掌握组合逻辑电路的静态测试方法。
二、实验步骤(1)进入windows操作系统,打开MAX+PLUSⅡ10.0。
1、启动File/Project Name菜单,输入设计项目的名字。
点Assign/Device菜单,选择器件(本设计全选用EPM7128) 。
见图2.1.1。
2、启动菜单File/New,选择Graphic Editor File,打开原理图编辑器,进行原理图设计输入。
图2.1.1(2)设计的输入1、编辑环境下放置一个器件①在原理图的空白处双击鼠标左键,出现图2.1.2。
②在光标处输入组件名称或用鼠标点取组件,OK即可。
③如果安放相同组件,只要按住Ctrl键,同时用鼠标拖动该组件④图2.1.3为组件安放结果.图2.1.2图2.1.32、在器件的管脚上添加连线在元件引脚附近,鼠标光标自动由箭头变为十字。
按住鼠标左键拖动,即可画出连线如图2.1.4。
图2.1.43、保存原理图单击保存按钮,对于第一次输入的新原理图,出现类似文件管理器的图框,选择合适的目录和名称保存刚才输入的原理图 2.1.4,原理图的扩展名.GDF,本实验中取名为:EDA.GDF。
(3)原理图编译启动MAX+PLUS II\COMPILER菜单,按START开始编译,生成.SOF和.POF等文件,以便硬件下载和编程时调用,同时生成.RPT文件,如图2.1.5。
图2.1.5(4)仿真1、创建波形文件:①首先,将设计指定为当前项目。
②创建一个波形文件。
选择菜单MAX+PLUSⅡ\Waveform Editor,打开仿真工具Waveform Editor,或选择新建一个Waveform Editor文件,将创建一个新的无标题波形文件,如图2.1.6所示:图2.1.6③储存波形文件。
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所示。
VHDL实验二 3×8译码器的设计

1、3×8译码器的设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decode_3to8 ISPORT(A0,A1,A2,EN:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decode_3to8;ARCHITECTURE rtl OF decode_3to8 ISSIGNAL indata:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINindata<=A0&A1&A2;PROCESS(indata,EN)BEGINIF(EN='1')THENCASE indata ISWHEN "000"=>Y<="10000000";WHEN "001"=>Y<="01000000";WHEN "010"=>Y<="00100000";WHEN "011"=>Y<="00010000";WHEN "100"=>Y<="00001000";WHEN "101"=>Y<="00000100";WHEN "110"=>Y<="00000010";WHEN "111"=>Y<="00000001";WHEN OTHERS=>Y<="XXXXXXXX";END CASE;ELSEY<="00000000";END IF;END PROCESS;END rtl;2、用构造体的结构描述方式实现如图所示组合逻辑电路,仿真其功能并进行功能描述。
3-8译码器(2)

三八译码器的设计与实现一.实验内容用FPGA设计一个3-8译码器,采用基本门结构化描述二.实验原理3-8译码器的真值表如下所示:根据这个真值表,我们画出卡诺图,化简之后就得到每个输出对应的组合逻辑,即得到如下的电路图根据这个电路图我们就可以写出3-8译码器的门电路的实现。
三.实验过程从上面的电路图我们可以看出需要若干个四输入与非门和三输入的非与门。
四输入与非门源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity and4not isPort ( in1 : in STD_LOGIC;in2 : in STD_LOGIC;in3 : in STD_LOGIC;in4 : in STD_LOGIC;out1 : out STD_LOGIC);end and4not;architecture Behavioral of and4not issignal temp1: STD_LOGIC;signal temp2: STD_LOGIC;signal temp3: STD_LOGIC;begintemp1 <= in1 and in2;temp2 <= in3 and in4;temp3 <= temp1 and temp2;out1 <= not temp3;end Behavioral;三输入的非与门源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity and3not isPort ( in1 : in STD_LOGIC;in2 : in STD_LOGIC;in3 : in STD_LOGIC;out1 : out STD_LOGIC);end and3not;architecture Behavioral of and3not issignal temp1: STD_LOGIC;begintemp1 <= in1 and (not in2);out1 <= temp1 and (not in3);end Behavioral;再在顶层模块里把这些器件按原理图连接起来就行了. 源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity decoder isPort ( A : in STD_LOGIC;B : in STD_LOGIC;C : in STD_LOGIC;S1 : in STD_LOGIC;S2 : in STD_LOGIC;S3 : in STD_LOGIC;Y0 : out STD_LOGIC;Y1 : out STD_LOGIC;Y2 : out STD_LOGIC;Y3 : out STD_LOGIC;Y4 : out STD_LOGIC;Y5 : out STD_LOGIC;Y6 : out STD_LOGIC;Y7 : out STD_LOGIC);end decoder;architecture Behavioral of decoder is COMPONENT and4notPort ( in1 : in STD_LOGIC;in2 : in STD_LOGIC;in3 : in STD_LOGIC;in4 : in STD_LOGIC;out1 : out STD_LOGIC);end COMPONENT;COMPONENT and3notPort ( in1 : in STD_LOGIC;in2 : in STD_LOGIC;in3 : in STD_LOGIC;out1 : out STD_LOGIC);end COMPONENT;signal temp1:STD_LOGIC;beginU0:and3not PORT MAP(S1,S2,S3,temp1);U1:and4not PORT MAP(not A,not B,not C,temp1,y0); U2:and4not PORT MAP(A,not B,not C,temp1,y1);U3:and4not PORT MAP(not A,B,not C,temp1,y2);U4:and4not PORT MAP(A,B,not C,temp1,y3);U5:and4not PORT MAP(not A,not B,C,temp1,y4);U6:and4not PORT MAP(A,not B,C,temp1,y5);U7:and4not PORT MAP(not A,B,C,temp1,y6);U8:and4not PORT MAP(A,B,C,temp1,y7);end Behavioral;由于有5个输入量,因此输入共有32种情况,仿真程序如下: LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY decoderwb ISEND decoderwb;ARCHITECTURE behavior OF decoderwb IS-- Component Declaration for the Unit Under Test (UUT)COMPONENT decoderPORT(A : IN std_logic;B : IN std_logic;C : IN std_logic;S1 : IN std_logic;S2 : IN std_logic;S3 : IN std_logic;Y0 : OUT std_logic;Y1 : OUT std_logic;Y2 : OUT std_logic;Y3 : OUT std_logic;Y4 : OUT std_logic;Y5 : OUT std_logic;Y6 : OUT std_logic;Y7 : OUT std_logic);END COMPONENT;--Inputssignal A : std_logic := '0';signal B : std_logic := '0';signal C : std_logic := '0';signal S1 : std_logic := '0';signal S2 : std_logic := '0';signal S3 : std_logic := '0';--Outputssignal Y0 : std_logic;signal Y1 : std_logic;signal Y2 : std_logic;signal Y3 : std_logic;signal Y4 : std_logic;signal Y5 : std_logic;signal Y6 : std_logic;signal Y7 : std_logic;-- No clocks detected in port list. Replace <clock> below with -- appropriate port nameBEGIN-- Instantiate the Unit Under Test (UUT)uut: decoder PORT MAP (A,B,C,S1,S2,S3,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7);-- Stimulus processstim_proc: processbegin-- hold reset state for 100 ns.A<='0';B<='0';C<='0';S1<='0';S2<='0';S3<='0';wait for 100 ns;A<='0';B<='0';C<='0';S1<='0';S2<='0';S3<='1';wait for 100 ns;A<='0';B<='0';C<='0';S1<='0';S2<='1';S3<='0';wait for 100 ns;A<='0';B<='0';C<='0';S1<='0';S2<='1';S3<='1';A<='0';B<='0';C<='0';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='0';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='0';C<='0';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='0';S1<='1';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='0';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='0';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='0';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='0';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='0';C<='1';S1<='1';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='0';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='0';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='0';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='0';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='0';S1<='1';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='0';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='0';S2<='0';S3<='1';A<='0';B<='1';C<='1';S1<='0';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='0';S2<='1';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='0';B<='1';C<='1';S1<='1';S2<='1';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='0';S2<='0';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='0';S2<='0';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='0';S2<='1';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='0';S2<='1';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='0';S1<='1';S2<='1';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='0';S2<='0';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='0';S2<='0';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='0';S2<='1';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='0';S2<='1';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='1';S2<='0';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='1';S2<='0';S3<='1'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='1';S2<='1';S3<='0'; wait for 100 ns;A<='1';B<='0';C<='1';S1<='1';S2<='1';S3<='1';A<='1';B<='1';C<='0';S1<='0';S2<='0';S3<='0';wait for 100 ns;A<='1';B<='1';C<='0';S1<='0';S2<='0';S3<='1';wait for 100 ns;A<='1';B<='1';C<='0';S1<='0';S2<='1';S3<='0';wait for 100 ns;A<='1';B<='1';C<='0';S1<='0';S2<='1';S3<='1';wait for 100 ns;A<='1';B<='1';C<='0';S1<='1';S2<='0';S3<='0';wait for 100 ns;A<='1';B<='1';C<='0';S1<='1';S2<='0';S3<='1';wait for 100 ns;A<='1';B<='1';C<='0';S1<='1';S2<='1';S3<='0';wait for 100 ns;A<='1';B<='1';C<='0';S1<='1';S2<='1';S3<='1';wait for 100 ns;A<='1';B<='1';C<='1';S1<='0';S2<='0';S3<='0';wait for 100 ns;A<='1';B<='1';C<='1';S1<='0';S2<='0';S3<='1';wait for 100 ns;A<='1';B<='1';C<='1';S1<='0';S2<='1';S3<='0';wait for 100 ns;A<='1';B<='1';C<='1';S1<='0';S2<='1';S3<='1';wait for 100 ns;A<='1';B<='1';C<='1';S1<='1';S2<='0';S3<='0';wait for 100 ns;A<='1';B<='1';C<='1';S1<='1';S2<='0';S3<='1';wait for 100 ns;A<='1';B<='1';C<='1';S1<='1';S2<='1';S3<='0';wait for 100 ns;A<='1';B<='1';C<='1';S1<='1';S2<='1';S3<='1';wait for 100 ns;-- insert stimulus hereend process;END;运行仿真程序,即得到如下的仿真结果:四.实验结果与分析此次实验没有要求上板,因此仿真结果就是最终的结果,可以看出这次实验还是很好完成了既定的任务。
初识EDA--2三八译码器

5-13
全编译成功界面
4、管脚分配
在前面选择好一个合适的目标器件(在这个实验中选择为 EP1C6Q240C8),完成设计的分析综合过程,得到工程的数 据文件以后,需要对设计中的输入、输出引脚指定到具体的器件 管脚号码,指定管脚号码称为管脚分配或管脚锁定。
1)点击Assignments菜单下面的Assignment Editor,进入到引 脚分配窗口。如图5-14所示。
5-7
新建设计文件选择窗口
2)在New对话框(图5-7)中选择Device Design Files页下的 Block Diagram/Schematic File,点击OK按钮,打开图形编辑 器对话框,如图5-8所示。图中标明了常用的每个按钮的功能。
5-8
QUARTUS图形编辑器对话框
QUARTUSII图形编辑器也称块编辑器(Block Editor), 用于以原理图(Schematics)和结构图(Block Diagrams)的 形式输入和编辑图形设计信息。QUARTUSII图形编辑器可以读取 并编译结构图设计文件(Block Design File)和MAXPLUSII图 形设计文件(Graphic Design Files),可以在QUARTUSII软件 中打开图形设计文件并将其另存为结构图设计文件。
5-16
Node Finder对话框
双击OK按钮,完成设置。进入管脚分配窗口,如图5-17所示。
5-17
管脚分配
在图5-17中以锁定端口A的管脚为例,其它端口的管脚锁定与 其基本一致。选择端口A的对应Assignment Name 待其变为蓝色, 双击之,出现下拉菜单选取如图5-17所示的Location(Accepts wildcards/groups)选项。选择端口A的对应Value栏, 待其变 为蓝色,输入对应的管脚名121,按回车键,软件将自动将其改为 PIN_121,同时蓝色选择条会自动跳转到Value栏的下一行,这表 明软件已经将输入端口A分配到FPGA的121引脚上,如图5-18所 示。
38译码器实验报告

38译码器实验报告实验原理:译码器是数字电路中的组合逻辑电路,它的作用是把二进制码组转换为相应的十进制数或BCD码。
由于是多对一的映射关系,故称为译码器。
常用的译码器有十进制译码器、BCD译码器、7段译码器(数码管译码器)等。
本次实验使用的是常用的数字电路集成电路74HC138,它是一个三-八行数码管译码器,能将3位二进制码译成8种不同的输出。
实验内容:1. 搭建实验电路:将74HC138译码器与LED灯和电路板上的电源和接地线连接。
2. 上电测试:将电路板插到插座上,上电后,LED灯按照二进制码的不同组合依次闪烁。
3. 换成7段数码管:将LED灯换成7段数码管,上电后,数码管能够显示不同数字。
实验步骤:1. 准备材料:电路板、74HC138译码器、LED灯、7段数码管、220欧姆电阻、杜邦线、面包板、数字万用表等。
2. 按照示意图,在面包板上连接电路,连接如下:将电源和接地线连接到面包板中。
将74HC138译码器的8个输出引脚连接到面包板的8个LED灯的阳极上,并通过220欧姆电阻连接到接地线上。
同时,将74HC138译码器的3个选择输入引脚连接到面包板的数字端口(1-3号端口)。
74HC138的数据输入引脚不连接。
将7段数码管的A-G引脚连接到面包板的数字端口(4-10号端口),将7段数码管的DP引脚接到接地线上。
3. 检查电路连接:确保每个引脚都连接到正确的端口。
使用数字万用表进行连通性测试。
5. 更换电路元件:将LED灯换成7段数码管。
使用数字万用表确认7段数码管引脚与数字端口的连接关系。
6. 上电测试:再次上电,调整数字端口上的开关,能够让7段数码管显示不同的数字。
实验结果:经过搭建和调试,我们成功实现了74HC138译码器的上电测试和数码管显示的功能。
我们通过手动改变数字端口上的开关状态,成功地改变了LED灯的亮灭顺序和7段数码管的显示数字。
实验结果显示,译码器具有将二进制码组转换为相应十进制数或BCD码的功能,能够广泛应用于数字电路中。
eda第二次实验 38译码器

实验二组合逻辑电路的VHDL模型实验一、实验目的1、掌握组合逻辑和时序逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
加深FPGA设计的过程,并比较原理图输入和文本输入的优劣。
3、了解通用同步计数器,异步计数器的使用方法。
4、理解积分分频器的原理。
二、硬件要求拨位开关、FPGA主芯片EP1K30QC208、LED显示模块三、实验原理译码器是输入数码和输出数码之间的对应关系,也就是说,“输入码和输出码之间的对应表”这应该算是设计译码器的必须条件。
译码器常用来做码和码之间的转换器,也常被用于地址总线或用作电路的控制线。
例如下面为常见的3×8译码器的真值表:实验中可根据需要,为3×8译码器加入使能控制脚。
一般的分频器可获得的分频频率种类分布不均匀,积分分频,能比较好的解决这个问题。
1、分频结果=来源频率×N/(2ⁿ-1);2、频率波形不均匀。
四、实验内容及步骤本实验内容是完成38译码器和5/8分频器的设计,然后将3×8译码器的结果在实验箱上实现,5/8分频器则能正确仿真、显示,实验步骤如下:1、编写3×8译码器的VHDL代码。
2、用MaxPlusII对其进行编译仿真。
3、在仿真确定无误后,选择芯片ACEX1K EP1K30QC208。
4、给芯片进行管脚绑定,在此进行编译。
5、根据自己绑定的管脚,在实验箱上对键盘接口、显示接口和FPGA之间进行正确连线。
6、给目标板下载代码,在开关输入键值,观看实验结果。
7、编写5/8分频器的VHDL代码。
8、用MaxPlusII对其进行编译仿真。
9、使用WaveForm进行波形仿真。
五、程序代码1. 38译码器library ieee;use ieee.std_logic_1164.all;entity a3toy8 isport (en:in std_logic;a:in std_logic_vector(2 downto 0);b:in std_logic_vector(2 downto 0);y:out std_logic_vector(7 downto 0);YM: out std_logic_vector(7 downto 0));end entity a3toy8;architecture a3y8 of a3toy8 issignal t:std_logic_vector(3 downto 0);signal v:std_logic_vector(3 downto 0);begint <= en & a(2 downto 0);process(t(3 downto 0))begincase t(3 downto 0) iswhen "1000" => Y(7 downto 0) <= "00000001";when "1001" => Y(7 downto 0) <= "00000010";when "1010" => Y(7 downto 0) <= "00000100";when "1011" => Y(7 downto 0) <= "00001000";when "1100" => Y(7 downto 0) <= "00010000";when "1101" => Y(7 downto 0) <= "00100000";when "1110" => Y(7 downto 0) <= "01000000";when "1111" => Y(7 downto 0) <= "10000000";when others => Y(7 downto 0) <= "00000000";end case;end process;v <= t;process(v(3 downto 0))begincase v(3 downto 0) isWHEN "1000" => YM(7 downto 0) <= "01100000";WHEN "1001" => YM(7 downto 0) <= "11011010";WHEN "1010" => YM(7 downto 0) <= "11110010";WHEN "1011" => YM(7 downto 0) <= "01100110";WHEN "1100" => YM(7 downto 0) <= "10110110";WHEN "1101" => YM(7 downto 0) <= "10111110";WHEN "1110" => YM(7 downto 0) <= "11100000";WHEN "1111" => YM(7 downto 0) <= "11111110";when others => YM(7 downto 0) <= "00000000";end case;end process;end architecture a3y8;本代码是通过控制拨动开关来控制led灯,并且在数码管上显示发亮的是第几盏led。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程学系实验报告课程名称:EDA技术与实验
实验项目名称:实验二三八译码器设计实验时间:2011.9.5 班级:姓名:学号:
实验目的:
1.熟悉ALTERA公司EDA设计工具软件max+plusⅡ。
2.掌握max+plusⅡ文本设计及其仿真。
实验环境:
max+plusⅡ
实验内容及过程:
1.三八译码器的工作原理
由三个输入端A,B,C和八个输出端Y0,Y1,Y2,Y3,Y4,Y5 ,Y6,Y7组成,输入输出用二进制表示。
三八译码器真值表
A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
2.文本设计
打开File点击New选择文本文件,点击OK.进行编程,再保存
成绩:
指导教师(签名):
3.建立工程。
运行File,Project,Set Project to Current File,讲工程设置到当前文件。
4.编译工程。
在MAX+PLUS II 菜单内选择Compiler 项,选择Start即可开始编译。
5.选择菜单“File”→“New”,在出现的“New”对话框中选择“Waveform Editor File”,按“OK”后将出现波形编辑器子窗口。
选择菜单“Node ”→“Enter Nodes from SNF”,出现选择信号结点对话框。
按右上侧的“List”按钮,左边的列表框将立即列出所有可以选择的信号结点,然后按中间的“=>”按钮,将左边列表框的结点全部选中到右边的列表框。
按“OK”按钮,选中的信号将出现在波形编辑器中
7将波形图保存为.scf
8.选择主菜单“MAX+plus II”→“Simulator”,按下“Simulator”,出现仿真参数设置与仿真启动窗,这时按下该窗口中的“Start”按钮,即刻进行仿真运算。
再点击右边的OPEN SCF,就会出现仿真结果。
实验结果及分析:
实验心得:
通过实验学会了三八译码器的程序设计和原理图设计,对三八译码器有了更深的了解。