实验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。
实验2 三八译码器设计
电子信息工程学系实验报告课程名称: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 Y70 0 0 0 1 1 1 1 1 1 10 0 1 1 0 1 1 1 1 1 10 1 0 1 1 0 1 1 1 1 10 1 1 1 1 1 0 1 1 1 11 0 0 1 1 1 1 0 1 1 11 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 02.原理图设计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将波形图保存为.scf8.选择主菜单“MAX+plus II”→“Simulator”,按下“Simulator”,出现仿真参数设置与仿真启动窗,这时按下该窗口中的“Start”按钮,即刻进行仿真运算。
EDA实验:3-8译码器的设计
组合逻辑3-8译码器的设计一、实验目的:1、掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步掌握Max+PlusII软件的基本操作与应用。
4、初步了解可编程器件的设计全过程。
二、实验步骤:(一)设计输入:1、软件的启动:单击“开始”进入“程序”选中“Max+PlusII 10.1 BASELINE”,打开“”MaxplusII软件,如图4.1-1所示。
图4.1-12、启动File\New菜单,弹出设计输入选择窗口,如图4.1-2所示:图4.1-23、选择Graphic Editor File ,单击OK ,打开原理图编辑器,进入原理图设计输入电路编辑状态,如图4.1-3所示:4、设计输入1)放置一个器件在原理图上a 、在原理图的空白处双击鼠标右键,出现图4.1-4:图4.1-3图4.1-4b 、在光标处输入元件名称(如:input ,output ,and2,and3,nand2,or2,not ,xor ,dff 等)或用鼠标点击库元件,按下OK 即可。
c 、如果安放相同的元件,只要按住Ctrl 键,同时用鼠标按左键拖动该元件复制即可。
d 、一个完整的电路包括:输入端口input 、电路元件集合、输出端口output 。
e 、图4.1-5为3-8译码器元件安放结果。
2)添加连线到器件的引脚上:把鼠标移到元件引脚附近,则鼠标自动由箭头变为十字,按住鼠标左键拖动,即可画出连线。
3-8译码器原理图连线后如图4.1-6所示。
图4.1-5图4.1-63)标记输入/输出端口属性分别双击输入端口的“PINNAME ”,当变成黑色时,即可输入标记符并回车确认;输出端口标记方法类似。
本译码器的三输入端分别标记为:A 、B 、C ;其八输出端分别为:D0、D1、D2、D3、D4、D5、D6、D7。
如图4.1-7所示。
4)保存原理图单击保存按钮图表,对于新建文件,出现类似文件管理器图框,请选择保存路径/文件名称保存原理图,原理图的扩展名为.gdf ,本实验中取名为test1.gdf 。
EDA实验一3-8译码器的设计
图 2-3 New Project Wizard 窗口 2. 点击 next,在出现的对话框中输入如下项目信息:
a. 项目路径,如:D:\EDA experiment\decoder38; b.项目名称,如:decoder38。如图 2-4 所示:
图 2-4 项目路径和项目名称对话框 3. 点击 2 次 next 后,出现如图 2-5 所示的对话框:
a.Device family 中选择 Cyclone IV E; b.Available devices 中选择 EP4CE115F29C7.
图 2-5 器件选择窗口 4. 点击 next 后,出现 EDA 工具设置对话框。在 Simulation 一行中,Tool Name 选择
ModelSim-Altera,Fomat(s)选择 VHDL,如图 2-6 所示。
图 2-9 新建 VHDL 文件窗口 8. 在文本编辑框内键入如下程序:
LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY decoder38 IS
PORT( A, B,C,G1,G2A,G2B: IN STD_LOGIC; Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
图 2-6 EDA 工具设置对话框 5. 点击 next,出现如图 2-7 所示的对话框:
图 2-7 新建项目汇总对话框 6. 点击 Finish 后,出现如图 2-8 所示的界面:
图 2-8 decoder38 项目界面 7. 点击 File->New->VHDL File,如图 2-9 所示。点击 ok 关闭对话框。
到 run 键,然后对于输入信号的赋值操作容易出错,所以还需要多次 做实验室操作该软件才行; 4、上机之前由于对实验没有仔细研究,因此编入程序时没有多大感 悟,所以以后应该提前预习。
eda
实验项目一一、实验目的1、通过3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步了解可编程器件设计的全过程。
二、实验内容使用MAXPLUSII软件,设计一个3-8译码器,得出正确的仿真验证结果。
三、实验原理、方法和手段3-8译码器三输入,八输出。
当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。
因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平情况下,能表示所有的输入组合。
3-8译码器采用原理图输入的方式将三个输入端与其的非以八种与的方式进行连接进而得出输出。
四、设计输入五、仿真输出六、实验总结(被加数)Ai(被加数)Bi(半加和)Hi(本位进位)Ci实验二 半加器设计实验类型:综合 一、实验目的设计并实现一个一位半加器。
二、实验内容使用MAXPLUSII 软件,设计一个一位半加器,得出正确的仿真验证结果。
三、实验原理、方法和手段半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路,是实现两个一位二进制数的加法运算电路。
计算机中数的操作都是以二进制进位的,最基本的运算就是加法运算。
按照进位是否加入,加法器分为半加器和全加器电路两种。
计算机中的异或指令的功能就是求两个操作数的和。
一位半加器有两个输入、输出。
一位半加器示意图Bi Ai Bi Ai Hi ∙+∙= Bi Ai Ci ∙=采用原理图输入的方式将两个输入端同或输出是,与输出co四、设计输入五、仿真输出六、实验总结实验项目 五一、实验目的设计并实现一个带进位的通用加法器设计。
二、实验内容使用MAXPLUSII 软件设计一个带进位的通用加法器,得出正确的仿真验证结果。
三、实验原理、方法和手段加法器,是产生数的和的装置。
常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。
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)技术是现代电子工程领域的一门新技术。
3—8译码器的设计
实验二组合逻辑电路设计(一)姓名:王举升班级:自动化102班学号:1002100550 一、实验目的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)生成设计项目文件。
(2)启动FILE/NEW菜单命令。
如图2.1.9图2.1.9(3)选择TEXT EDITOR FILE,点击OK。
(4)键入程序如下:library ieee;use ieee.std_logic_1164.all;entity wjs02 isport(a,b,c,d:in std_logic;l: out std_logic);end wjs02;architecture behave of wjs02 issignal s:std_logic_vecto(3 downto 0);begins<=a&b&c&d;process(s,a,b,c,d)begincase s iswhen "0000"=>l<='0';when "0001"=>l<='0';when "0010"=>l<='0';when "0011"=>l<='0';when "0100"=>l<='0';when "0101"=>l<='1';when "0110"=>l<='1';when "0111"=>l<='1';when "1000"=>l<='1';when others=>l<='0';end case;end process;end behave;;(5)存成.VHD文件,然后进行编译即可。
3-8译码器实验报告
姓名: 桑贤超班级: 文自112-2班学号:201190519234 试验: 3-8译码器实验报告日期:2012.11.01 指导老师: 徐洪霞
一、实验报告的名称: 3-8译码器
二、本次实验的目的:
1.掌握译码器的测试方法。
2.掌握用译码器构成组合电路的方法。
3.了解中规模集成译码器的管脚分布,掌握其逻辑功能
三、设计过程:
1.工程编译源:功能编译和实际编译。
2.功能仿真:将功能编译后的结果进行仿真。
3.后仿真过程:将实际编译及我国仿真。
4.引脚锁定:将个信号按要求分配到相应引脚.
5.物理实现:将结果下载到所悬着的器件中
四、画出实验原理图,标明引脚连线,画出防真波形图,注明引脚.
五、实验总结,主要包括实验中所犯错误,怎样改正等
1.在文件名必须与VHDL文件中的设计实体名保持一致。
2.在设置引脚时,一定要看电路板,以及电路图,找对各个输入输出接口对应的芯片引脚。
3-8译码器设计
实验二3-8译码器设计一、实验目的1.掌握3-8译码器的设计方法;2.掌握if else语句和case语句的使用方法;3.掌握VHDL电路的设计、仿真和硬件测试方法二、设计描述及方法1.设计电路的接口描述输入变量为三个A,B,C,输出变量有8个,即Y0~Y7。
G1,G2A,G2B为选通输入,仅当G1=1, G2A=0, G2B=0时,译码器能够正确输出,否则,译码器输出无效,Y0~Y7均为高电平“11111111”。
2.电路设计基本方法译码器输出连接8个二极管,低电平显示输出端有效。
三、程序代码library ieee;use ieee.std_logic_1164.all;entity decode3_8 isport ( g1, g2a, g2b : in std_logic;abc:in std_logic_vector(2 downto 0);y : out std_logic_vector(7 downto 0) );end decode3_8;architecture decode of decode3_8 isbeginprocess(abc)beginif (g1='1' and g2a='0' and g2b='0') then case abc iswhen "000" => y <= "11111110";when "001" => y <= "11111101";when "010" => y <= "11111011";when "011" => y <= "11110111";when "100" => y <= "11101111";when "101" => y <= "11011111";when "110" => y <= "10111111";when "111" => y <= "01111111";end case;else y <= "11111111";end if;end process;end ;四、功能仿真五、RTL级电路。
数字逻辑实验报告
《数字逻辑实验报告》学号:139074131姓名:吴桂春班级:计134班指导老师:申元霞日期:2018.6.10实验一名称: 3-8译码设计一、实验任务设计一个3-8译码器。
二、实验原理1、列出真值表、写出逻辑函数三、实验原理图:三八译码器由三个输入端编码,输出有八个输出端。
用与门以及非门通过“导线”连接而成。
四、实验步骤:1)打开软件max+plus2,建立新目标文件开始画图。
并保存原图,设置工程指向。
2)选择芯片类型本实验选择EPF10K10LC84-3芯片3)编译配置4)时序仿真:由仿真结果可以看出,本实验仿真成功。
五、实验结果六、实验分析1、结合本次实验,简述原理图输入法设计组合电路的步骤。
设计输入原理图→电路的编译与适配→电路仿真与时序分析→管脚的重新分配与定位→器件的下载编程与硬件实现2、时序仿真波形中,输出波形与输入波形是否同步变化?如何解释输出波形中存在的毛刺?不完全同步变化,存在延迟。
3、连线时,线条不能连接到器件内部,否则会出现编译错误。
同时,添加激励脉冲时a,b,c分别为2倍的关系。
加错激励信号结果也将不正确。
b5E2RGbCAP实验二名称:全加全减器设计一、实验任务设计并实现一个一位全加全减器。
二、实验原理图1.列出真值表、写出逻辑函数。
a,b,c为三个输入端,分别输入0或者1,m为控制端当m=1是全减器,m=0时是全加器,输出端s表示结果,y代表进位或借位。
p1EanqFDPw三、实验步骤:1)打开软件max+plus2,建立新目标文件开始画图。
并保存原图,设置工程指向。
2)选择芯片类型本实验选择EPF10K10LC84-3芯片3)编译配置4)时序仿真:由仿真结果可以看出,全加全减器仿真成功。
实验三名称:七段显示译码器一、实验任务设计并实现一个七段显示译码器。
二、实验原理图1. 列出真值表、写出逻辑函数8421BCD输入代码数字A3A2A1A0a b c d e f g 000000000010 000110011111 001000100102 001100001103 010********* 010*********011011000006011100011117 100000000008 1001000010092、数字显示是由0—9共有十个数字所以有四个输入端,输出端分别编码为a—g,每一个字母代表一个笔画。
- 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,就会出现仿真结果。
实验结果及分析:
实验心得:
通过实验学会了三八译码器的程序设计和原理图设计,对三八译码器有了更深的了解。