EDA实验一3-8译码器的设计
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译码器设计
《EDA技术》课程实验报告学生姓名:张叶所在班级:通信1301指导教师:黄科老师记分及评价:一、实验名称实验4:3-8译码器的设计二、任务及要求【基本部分】1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成3-8译码器的设计并进行时序仿真。
2、设计完成后生成一个元件,以供更高层次的设计调用。
3、实验箱上进行验证。
【发挥部分】设计4-8译码器,完成仿真并封装成一个元件;新建原理图,调用一片74161和所设计的4-8译码器,完成具有16种花样的循环LED灯控制器的设计,并在实验箱上进行验证。
三、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ky isport(A :in std_logic_vector(2 downto 0);Y :out std_logic_vector(7 downto 0));end entity ky;architecture ky_a of ky isbeginprocess(A)begincase A 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 others => Y<="01111111"; end case;end process;end architecture ky_a;四、仿真及结果分析仿真结果五、硬件验证1、引脚锁定情况表:引脚情况锁定表六、小结在本次实验中,老师教我们用QuartusII软件设计并仿真了3-8译码器。
《EDA技术及应用》实验指导书
实验一组合逻辑器件设计一、实验目的1、通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步了解QUARTUS II原理图输入设计的全过程。
二、实验主要仪器与设备1、输入:DIP拨码开关3位。
2、输出:LED灯。
3、主芯片:EP1K10TC100-3。
三、实验内容及原理三-八译码器即三输入,八输出。
输出与输入之间的对应关系如表1-1-1所示。
表1-1 三-八译码器真值表四、预习要求做实验前必须认真复习数字电路中组合逻辑电路设计的相关内容(编码器、译码器)。
五、实验步骤1、利用原理图设计输入法画图1-1-1。
2、选择芯片ACEX1K EP1K10TC100-3。
3、编译。
4、时序仿真。
5、管脚分配,并再次编译。
6、实验连线。
7、编程下载,观察实验结果。
图1-1 三-八译码器原理图六、实验连线用拨码开关的低三位代表译码器的输入(A,B,C),将之与EP1K10TC100-3的管脚相连;用LED灯来表示译码器的输出(D0~D7),将之与EP1K10TC100-3芯片的管脚相连。
拨动拨档开关,可以观察发光二极管与输入状态的对应关系同真值表中所描述的情况是一致的。
七、实验结果八、思考题在输入端加入使能端后应如何设计?附:用硬件描述语言完成译码器的设计::LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY T2 ISPORT(A: IN STD_LOGIC_VECTOR(2 DOWNTO 0);Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END T2;ARCHITECTURE A OF T2 ISBEGINWITH A SELECTY <= "00000001" WHEN "000","00000010" WHEN "001","00000100" WHEN "010","00001000" WHEN "011","00010000" WHEN "100","00100000" WHEN "101","01000000" WHEN "110","10000000" WHEN OTHERS;END A;实验二组合电路设计一、实验目的1、掌握组合逻辑电路的设计方法。
3-8译码器的设计
2)确定仿真时间,End Time 为“1”的整数倍。 注意:如果在添加激励信号的时未设置结束时间 的话,此时在仿真窗口中就不能修改End Time 参数。在该例程中,我们使用的是默认时间,单 击Start 开始仿真,如有出错报告,请查找原因, 一般是激励信号添加有误。本电路仿真结果报告 中无错误、无警告,如下图所示。
二、项目的编译与适配
1)选择芯片型号:选择当前项目文件欲设计实 现的实际芯片进行编译适配, 点击Assign\Device 菜单选择芯片
2)编译适配 启动MAX+plus II \ Compiler 编译器菜单,按 Start 开始编译,并显示编译结果,生成下载文 件。生成 .sof 文件,以备硬件下载编程时调用。 同时生成 .rpt 报告文件、.sym 符号文件等,可 详细查看编译结果。如有错误待修改后再进行编 译适配,如下图所示。注意,此时在主菜单栏里 的 Processing 菜单下有许多编译时的设置选项, 视实际情况选择设置。
10)保存激励信号编辑结果:使用File\Save 或 关闭当前波形编辑窗口时均出现下图对话筐,注 意此时的文件名称不要随意改动,单击OK 按钮 保存激励信号波形,自动存盘为test1.scf。
说明:以上编辑的激励信号都比较有规律,如仿 真需要,我们还可对上述周期信号进行再次编辑, 将鼠标置于欲编辑的波形处按住鼠标左键往右拖 选中将再次编辑的波形,如下图所示;
8)根据电路要求编辑另外两路输入端口的激励信 号波形,在本实验中,3-8译码器的A、B、C 三路信号的周期分别为1、2、4倍关系,其译 码输出顺序就符合我们的观察习惯。按上述方法 为B、C 两路端口添加波形后再单击左边全屏显 示图标“”,三路激励信号的编辑结果为下图所 示。
实验一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能很好的完成很多电路的仿真与工作。
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译码器
组合电路——3-8译码器的设计一、实验目的1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、熟悉原理图输入及仿真步骤。
3、掌握组合逻辑电路的静态测试方法。
4、初步了解可编程器件设计的全过程。
5、理解硬件描述语言和具体电路的映射关系。
二、硬件要求主芯片Altera EPM7128SLC84-15,时钟。
三、实验内容描述一个3线-8线译码器,使能端为g1、g2a、g2b,地址选择端为a、b、c,输出端为总线y。
四、实验原理三-八译码器三输入,八输出。
当输入信号按二进制方式的表示值为N时,输入端低电平有效输出端从零到八记,标号为N输出端输出低电平表示有信号产生,而其它则为高电平表示无信号产生。
三个输入端能产生的组合状态有八种。
电路符号:3-8译码器器工作原理框图。
如图1所示。
图1五、实验源程序:decoder3_8.vhdlibrary ieee;use ieee.std_logic_1164.all;entity decoder3_8 isport(a,b,c,g1,g2a,g2b:in std_logic;y:out std_logic_vector(7 downto 0));end ;architecture rtl of decoder3_8 issignal dz:std_logic_vector(2 downto 0);begindz<=c&b&a;process(dz,g1,g2a,g2b )beginif (g1='1' and g2a='0' and g2b='0') thencase dz 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";when others=>y<="XXXXXXXX"; end case;elsey<="11111111";end if;end process;end;六、波形仿真结果。
3-8译码器课程设计报告
EDA技术实验报告—3-8译码器的设计一.实验目的1.通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法。
2.掌握组合逻辑电路的静态测试方法。
3.初步了解QUARTUSⅡ软件的基本操作和应用。
4.初步了解可编程逻辑器件的设计全过程。
二.实验原理3-8译码器的三输入,八输出。
输入信号N用二进制表示,对应的输出信号N输出高电平时表示有信号产生,而其它则为低电平表示无信号产生。
其真值表如下图所示:当使能端指示输入信号无效或不用对当前的信号进行译码时,输出端全为高电平,表示任何信号无效。
三.实验内容用三个拨动开关来表示三八译码器的三个输入(A,B,C),用八个LED来表示三八译码器的八个输出(D0-D7)。
通过与实验箱的FPGA接口相连,来验证真值表中的内容。
表1-2拨动开关与FPGA管脚连接表表1-3LED 灯与FPGA管脚连接表(当FPGA与其对应的接口为高电平时,LED会发亮)四.实验歩骤1.建立工程文件2.建立图形设计软件(1)将要选择的器件符号放置在图形编辑器的工作区域,用正交节点工具将原件安装起来,然后定义端口的名称。
结果如下图:3.编译前设置(1)选择目标芯片(2)选择目标芯片的引脚状态4.对设计文件进行编译五.管脚的分配根据表1-2和1-3的数据进行管脚的设置1六.对文件进行仿真按下Report按钮观察仿真结果,如下:6.从设计文件到目标器件的加载七.实验现象以及结果文件加载到目标器件后,拨动拨动开关,LED灯会按照真值表对应的灯点亮。
八.实验心得通过本次实验,加深了自己对EDA技术的理解并提高了操作能力。
但是,在实验中仍然遇到了很多困难,还需提高。
(2011.5.1)实验一 3-8译码器
(2011.5.1)(3-8译码器)MAXPLUSII QUARTUSII入门实验一、实验目的通过一个简单的3—8译码器的设计,让学生初步了解CPLD设计的全过程和相关软件的使用。
二、实验设备ZYE1502C型实验箱三、内容要求三个输入接拨位开关,八个输出接发光二极管,设计部分采用VHDL语言完成。
3-8译四、实验步骤(以下各个实验步骤均相同,可省略)1、输入;2、编译;3、仿真;4、下载;5、连线。
(1)3个拨位开关连接A、B、C信号所对应的管脚,8个输出信号顺序连接8个LED灯;(2)依次变更A、B、C输入,观测输出LED的变化。
五、实验报告1、论述实验过程和步骤;2、填写正确的实验结果。
六、实验小结。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY demultiplexer ISPORT ( en, a, b, c: IN STD_LOGIC;y0, y1, y2, y3, y4, y5, y6, y7: OUT STD_LOGIC );END ENTITY demultiplexer;ARCHITECTURE fh1 OF demultiplexer ISSIGNAL X : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINX <= en & A & B & C ;--并置敏感信号PROCESS (X) BEGINCASE X ISWHEN "1000" => Y0<='1' ; Y1<='0' ; Y2<='0' ; Y3<='0' ; Y4<='0' ; Y5<='0' ; Y6<='0' ; Y7<='0' ;WHEN "1001" => Y0<='0' ; Y1<='1' ; Y2<='0' ; Y3<='0' ; Y4<='0' ; Y5<='0' ; Y6<='0' ; Y7<='0' ;WHEN "1010" => Y0<='0' ; Y1<='0' ; Y2<='1' ; Y3<='0' ; Y4<='0' ; Y5<='0' ; Y6<='0' ; Y7<='0' ;WHEN "1011" => Y0<='0' ; Y1<='0' ; Y2<='0' ; Y3<='1' ; Y4<='0' ; Y5<='0' ; Y6<='0' ; Y7<='0' ;WHEN "1100" => Y0<='0' ; Y1<='0' ; Y2<='0' ; Y3<='0' ; Y4<='1' ; Y5<='0' ; Y6<='0' ; Y7<='0' ;WHEN "1101" => Y0<='0' ; Y1<='0' ; Y2<='0' ; Y3<='0' ; Y4<='0' ; Y5<='1' ; Y6<='0' ; Y7<='0' ;WHEN "1110" => Y0<='0' ; Y1<='0' ; Y2<='0' ; Y3<='0' ; Y4<='0' ; Y5<='0' ; Y6<='1' ; Y7<='0' ;WHEN "1111" => Y0<='0' ; Y1<='0' ; Y2<='0' ; Y3<='0' ; Y4<='0' ; Y5<='0' ; Y6<='0' ; Y7<='1' ;WHEN OTHERS => Y0<='1' ; Y1<='1' ; Y2<='1' ; Y3<='1' ; Y4<='1' ; Y5<='1' ; Y6<='1' ; Y7<='1' ;END CASE;END PROCESS;END ARCHITECTURE fh1;。
EDA期末设计之VHDL的3-8译码器
VHDL语言程序设计报告实验名称:3--8译码器的VHDL程序设计指导老师:学生:时间:2012年6月23日三-八译码器三输入,八输出。
当输入信号按二进制方式的表示值为N时(输入端低电平有效),输出端从零到八记,标号为N输出端输出低电平表示有信号产生,而其它则为高电平表示无信号产生。
因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为低电平的情况下,能表示所有的输入组合,因此不需要像编码器实验那样再用一个输出端指示输出是否有效。
但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。
本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。
三-八译码器真值表输入输出A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y00 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 1 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 1 0 0 01 0 0 0 0 0 1 0 0 0 01 0 1 0 0 1 0 0 0 0 01 1 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0一、实验目的与要求:1、通过3:8译码器的设计,熟悉ALTERA公司EDA设计工具软件QuartusII 5.0。
2、熟悉原理图输入及仿真步骤。
3、掌握组合逻辑电路的静态测试方法4、初步了解可编程器件设计的全过程。
5、理解硬件描述语言和具体电路的映射关系。
二、实验步骤与内容:1、创建工程。
2、新建文件夹。
3、画出正确的原理图,保存,编译。
4、波形仿真,分配引脚,编译。
5、下载到实验板,进行功能验证。
三、实验源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SANBA ISPORT(D:IN STD_LOGIC_VECTOR(2 DOWNTO 0);G1,G2A,G2B:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ;ARCHITECTURE XIANI OF SANBA ISBEGINPROCESS(D,G1,G2A,G2B)BEGINIF (G1='0')THEN Y<="11111111";ELSIF(G1='1' AND G2A='0' AND G2B='0')THENIF (D(2)='0' AND D(1)='0' AND D(0)='0')THEN Y<="01111111";ELSIF (D(2)='0' AND D(1)='0' AND D(0)='1')THEN Y<="10111111";ELSIF (D(2)='0' AND D(1)='1' AND D(0)='0')THEN Y<="11011111";ELSIF (D(2)='0' AND D(1)='1' AND D(0)='1')THEN Y<="11101111";ELSIF (D(2)='1' AND D(1)='0' AND D(0)='0')THEN Y<="11110111";ELSIF (D(2)='1' AND D(1)='0' AND D(0)='1')THEN Y<="11111011";ELSIF (D(2)='1' AND D(1)='1' AND D(0)='0')THEN Y<="11111101";ELSIF (D(2)='1' AND D(1)='1' AND D(0)='1')THEN Y<="11111110";ELSE Y<="ZZZZZZZZ";END IF;ELSE Y<="ZZZZZZZZ";END IF;END PROCESS;END;四、实验仿真波形截图实验原理图:仿真波形图:。
EDA实验报告
EDA实验报告班级:学号:姓名:实验一组合逻辑设计一、实验目的:通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
二、实验的硬件要求:1、输入:DIP拨码开关3位2、输出:LED灯3、主芯片:EP2C8Q208C8三、实验原理:三八译码器三输入,八输出。
当输入信号按二进制方式的表示为N时,输出端从零标记到八。
因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位有效的情况下,能表示所有的输入组合。
3-8译码器真值表四、实验程序图:建立工程后,新建Block diagram/schematic file程序,在编辑窗口中选择相应原件用鼠标拖入文件中编辑,绘制完成后保存原理图,对程序进行编译,编译无误后,进行管脚配置,下图为程序图。
文本程序:library ieee;use ieee.std_logic_1164.all;entity program1 isport (A,B,C:in std_logic;D0,D1,D2,D3,D4,D5,D6,D7:out std_logic); end entity program1;architecture one of program1 issignal abc :std_logic_vector(2 downto 0); signal D :std_logic_vector(7 downto 0); beginabc <= A&B&C;process(abc)begincase abc iswhen "000"=>D<="10000000";when "100"=>D<="01000000";when "010"=>D<="00100000";when "110"=>D<="00010000";when "001"=>D<="00001000";when "101"=>D<="00000100";when "011"=>D<="00000010";when "111"=>D<="00000001";when others => null;end case;end process;D0<=D(7);D1<=D(6);D2<=D(5);D3<=D(4);D4<=D(3);D5<=D(2);D6<=D(1);D7<=D(0);end architecture one;五、实验仿真结果:仿真波形图如下:进行波形仿真完成后,用拨码开关的低三位代表译码器输入,将之与配置好的管脚相连;用led灯代表译码器的输出,将之与配置好的管脚相连。
eda数字电路实验引脚分配
实验一组合逻辑3-8译码器设计引脚分配
实验二半加器引脚分配
实验三全加器引脚分配
实验四全减器引脚分配
实验五数据比较器引脚分配
实验六多路数据选择器引脚分配
实验七编码器引脚分配
实验八译码器引脚分配
实验九组合逻辑电路的设计(1)引脚分配
实验九组合逻辑电路的设计(2)引脚分配
实验九组合逻辑电路的设计(3)引脚分配
实验十奇偶校验引脚分配
实验十一计数器引脚分配(1)
实验十一计数器引脚分配(2)
实验十二数字钟引脚分配
实验十三秒表设计实验引脚分配
实验十四交通灯实验引脚分配。
EDA设计38译码器
3线-8线译码器
1.实验原理
译码是编码的逆过程,它的功能是将具有特定含义的二进制进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。
如果有3个二进制选择线,则最多可译码转换成2的立方(8)个数据,这便是3线-8线译码器的原理。
2.程序设计
3线-8线译码器的电路符号如下
输入信号:3位二进制输入端a[2…0];3个使能端g1、g2、g3。
输出信号:编码输出端y[7…0]。
3线-8线译码器真值表
3.仿真实验
Verilog HDL代码如下:
module decoder3_8(y,a,g1,g2,g3);
output[7:0] y;
input[2:0] a;
input g1,g2,g3;
reg[7:0] y;
always@(a or g1 or g2 or g3)
begin
if(g1==0)y=8'b11111111;
else if(g2==1)y=8'b11111111;
else if(g3==1)y=8'b11111111;
else
begin
y=8'b00000001<<a;
y=~y;
end
end
endmodule
建立波形编辑文件进行功能仿真,仿真结果如下图所示
生成的RTL电路如下
实验总结。
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译码器
第一章绪论1.1 EDA技术介绍EDA(Electronic Design Automation)技术是现代电子工程领域的一门新技术。
基于可编程逻辑器件的数字系统EDA技术可以简单概括为以大规模可编程逻辑器件为设计载体,通过硬件描述语言输入给相应开发软件,经过编译和仿真,最终下载到设计载体中,从而实现系统电路。
在数字系统中,能将二进制代码翻译成所表示信息的电路称为译码器。
译码器是一个多输入、多输出的组合逻辑电路。
它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。
译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。
不同的功能可选用不同种类的译码器。
而常用的译码器有二进制译码器,二—十进制译码器和显示译码器。
译码器可分为通用译码器和显示译码器两大类。
前者又分为变量译码器和代码变换译码器。
变量译码器(又称二进制译码器),用以表示输入变量的状态,如2线-4线、3线-8线和4线-16线译码器。
若有n个输入变量,则有2n个不同的组合状态,就有2n 个输出端供其使用。
而每一个输出所代表的函数对应于n个输入变量的最小项。
本次课程设计的题目为3-8译码器。
要求用掌握3-8译码器的构成、原理与设计方法;熟悉quartus60软件的使用方法;能用VHDL语言设计3-8译码器电路;并仿真出3—8译码器的功能。
第二章 3—8译码器2.1 3—8译码器介绍译码器属于组合逻辑电路,它的逻辑功能是将二进制代码按其编码时的原意译成对应的输出高、底电平信号,又叫解码器。
在数字电子技术中,它具有非常重要的地位,应用也很广泛。
它除了常为其它集成电路产生片选信号之外,还可以作为数据分配器、函数发生器用,而且在组合逻辑电路设计中它可替代繁多的逻辑门,简化设计电路。
这次我们运用的3 线-8 线译码器就是一个典型例子。
38译码器为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其主要电特性的典型值如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
组合逻辑3-8译码器
M :out std_logic_vector(3 downto 0));——加入4位功能选择位);
END decoder_3_8;
ARCHITECTURErtfOFdecoder_3_8IS
signal input:STD_LOGIC_VECTOR(2 downto 0);
选择下载文件,点击“Start”开始下载,并可以看到下载进度
三、实验接线及说明
A、B、C、G1、G2AN、G2BN分别对应实验箱底板SW1-SW6
Y0N—Y7N分别对应实验箱底板IO9—IO16
实验接线:用导线将IO9—IO16与8位LED L1—L8相连,LED为高电平点亮
控制拨码开关SW1—SW6,观察L1—L8显示状态是否与预期输出结果一置。
图1 74LS138译码器逻辑图
表1 74LS138译码器的真值表
G1
G2A
G2B
C
B
A
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
X
1
X
XXΒιβλιοθήκη X111
1
1
1
1
1
X
X
1
X
X
X
1
1
1
1
1
1
1
1
0
X
X
X
X
X
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子设计自动化》实验报告实验一实验名称: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. 将文件保存为,编译通过。
12. 点击Tools->Options->General->EDA Tool Options,在ModelSim-Altera下,选择你安装ModelSim-Altera的文件夹下的win32aloem文件夹,如图2-11所示。
点ok退出对话框。
)图2-11 选项对话框13. 点击Tools->Run Simulation Tools-> RTL Simulation,调出ModelSim- Altera软件,如图2-12所示。
图2-12 ModelSim-Altera界面14.在ModelSim-Altera界面下, 选择File->New->Project,出现如图2-13所示的对话框:图2-13 新建项目对话框`输入项目名称,如decoder,点击ok出现如图2-14所示的界面。
图2-14 添加到项目界面15.选择Add Existing File,将源代码和测试文件一同加入项目。
添加文件类型选择VHDL,添加界面如图2-15所示:图2-15 添加文件界面16.点击Compile->Compile All。
17.在Library标签栏下,展开work下的decoder38_tb,如图2-16所示。
双击behavior,将自动进入仿真界面,如图2-17所示。
#图2-16 library界面图2-17 ModelSim-Altera仿真界面18.点击Simulate->Runtime Options,弹出对话框如图2-18所示。
在Default Run 文本框中,输入100ms。
图2-18 Runtime Options对话框】19. 在屏幕中间object标签栏中选择所有要观察的信号,右键,Add->To Wave->Selected Signals,点击工具栏中的Run图标,可以观测到仿真结果,如图2-19所示。
可以通过工具栏中的Zoom In,Zoom Out对仿真窗口进行调节。
图2-19 三八译码器仿真结果20. 分配管脚:在Quartus II界面下,点击Processing->Start->Start Analysis & Elaboration,在弹出的对话框中点击ok。
21. 点击Assignments->Pin Planner,打开Pin Planner对话框,如图2-20所示。
图2-20 Pin Planner 对话框22. 分别用SW0、SW1、SW2三个拨码开关对应A、B、C三个输入信号,SW3、SW4、SW5对应G1、G2A、G2B三个输入信号,LEDR0~LEDR7分别对应Y0~Y78个输出信号,查表1和表3,分配好引脚号,如图2-21所示。
;图2-21 引脚分配界面23. 将提供的USB电缆线一端接到DE2-115开发板的USB Blaster端口,一端连接计算机的USB接口,连接12V电源,然后开启DE2-115电源开关。
24. 点击Tools->Programmer,打开Programmer界面,如图2-22所示。
图2-22 Programmer界面25. 点击Hardware Setup,弹出如图2-23所示对话框。
在Currently selected hardware 下拉菜单中选择USB-Blaster[USB-0]。
点击Close关闭对话框#图2-23 Hardware Setup对话框26. 如果Programmer对话框中没有,点击Add File按钮,在项目路径下选择。
27. 点击start,将sof文件载入到FPGA芯片中。
从而完成整个设计过程。
如图2-24所示。
图2-24 将程序载入FPGA成功界面28.在DE2-115开发板上通过拨码开关和LED灯验证整个设计的有效性。
要注意的是,闲置的管脚一定要置输入三态(As input tri-stated)。
因为必须确保该开发板当前没用到的Flash芯片与FPGA之间以高阻态相隔,否则会发生损坏芯片的危险!如果一开始开发板上所有LED灯都是亮的话,可按以下步骤进行处理:a. 点击Assignments->Device,在弹出的对话框中点击Device and Pin Options;b. 选择Unused Pins,在Reserve all unused pins下拉菜单中选择As input tri-stated。
点击ok两次关闭对话框。
c. 重新编译,下载。
三、实验中发现的问题:1、程序代码输入后,但是编译有错误,经检查后发现在该语句Y: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0))中最后有两个括号,但是因为马虎,少输入一个括号导致编译错误;2、修改上面的错误后编译,仍然出现错误,多次检查后未发现错误,询问老师后得知需要改一个文本文件中的代码,修改完毕编译,错误得以解决,程序正常运行;3、没有采用实验报告册的测试程序,而是经老师帮助直接运用了工具栏中的仿真软件进行仿真的,但是仿真过程不大熟悉,先是没有找到run键,然后对于输入信号的赋值操作容易出错,所以还需要多次做实验室操作该软件才行;4、上机之前由于对实验没有仔细研究,因此编入程序时没有多大感悟,所以以后应该提前预习。