基于VHDL语言38译码器
EDA设计38译码器
E D A设计38译码器-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN班级:通信13-3班姓名:王亚飞学号: 18 指导教师:成绩:电子与信息工程学院信息与通信工程系摘要EDA技术是以微电子技术为物理层面,现代电子设计技术为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC为目的的一门新兴技术。
而VHDL语言是硬件描述语言之一,其广泛应用性和结构的完整性使其成为硬件描述语言的代表。
随着社会经济和科技的发展,越来越多的电子产品涌如我们的日常生活当中,在日常生活中译码器起着不可忽视的作用。
本设计就是运用VHDL语言设计的3-8译码器。
3-8译码器电路的输入变量有三个即D0,D1,D2,输出变量有八个Y0-Y7,对输入变量D0,D1,D2译码,就能确定输出端Y0-Y7的输出端变为有效(低电平),从而达到译码目的。
关键词:EDA;3-8译码器1实验目的1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、初步掌握VHDL语言的常用语句。
3、掌握VHDL语言的基本语句及文本输入的EDA设计方法。
2实验背景VHDL的简介VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。
1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。
目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。
VHDL 的英文全写是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。
基于VHDL语言38译码器
3-8译码器的设计1 设计目的与要求随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。
由此,计算机对我们的社会对我们每个人都是很重要的。
所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。
编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。
1.1 设计的目的本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。
以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。
通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。
1.2 设计要求根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL 设计计算机电路中译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。
译码器由三-八译码器为实例代表。
关键词:输入、输出、译码2 VHDL的简单介绍2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在我过的应用多数是用在FPGA/CPLD/EPLD的设计中。
3-8译码器的VHDL设计
3-8译码器的VHDL设计1.实体框图2.程序设计正确的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODER38A ISPORT(A2,A1,A0,S1,S2,S3:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY DECODER38A;ARCHITECTURE ONE OF DECODER38A ISSIGNAL S: STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINS<=A2&A1&A0&S1&S2&S3;WITH S SELECTY<="11111110" WHEN "000100","11111101" WHEN "001100","11111011" WHEN "010100","11110111" WHEN "011100","11101111" WHEN "100100","11011111" WHEN "101100","10111111" WHEN "110100","01111111" WHEN "111100","11111111" WHEN OTHERS;END ARCHITECTURE ONE;3.仿真波形图4.仿真波形分析当S1 S2 S3=100时,只有当A2 A1 A0=111时,Y[7]才输出低电平,否则为高电平,当A2 A1 A0=110时,Y[6]才输出低电平,否则为高电平,当A2 A1 A0=101时,Y[5]才输出低电平,否则为高电平,Y[4]到Y[0]同理。
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.学习设计一个3/8译码器,并在实验板上验证;2.学习使用VHDL语言进行逻辑设计输入;3.学习设计仿真工具的使用方法;[实验说明]通过实验一的学习同学已基本掌握了软件设计、下载测试的过程,接下来我们将采用VHDL语言设计方法实现3/8译码器的设计和下载验证。
真值表该3/8译码器除了译码输入:A、B、C以外,另加一个输入信号:ENA;ENA输入信号正常时为高电平,当ENA为低电平时,无论A、B、C输入信号为何值,输出Y0…Y7均为高电平“1”。
电路逻辑功能实现后,可将该逻辑功能下载到FPGA中。
注意选择:输入信号线4根(接拨码开关)、输出线8根(接发光二极管指示灯);测试时根据输入信号的变化观察输出信号的改变。
[实验要求]1用VHDL语言实现3/8译码器2设计仿真文件,进行软件验证3通过下载线下载到实验板上进行验证[实验报告要求]1写出VHDL编程语言源文件2给出软件仿真和硬件测试结果3通过下载线下载到实验板上进行验证4写出学习总结library IEEE;use IEEE.std_logic_1164.all;entity seg38 isport (data_in : in std_logic_vector (2 downto 0);ENA : in std_logic;data_out : out std_logic_vector (7 downto 0) );end entity;architecture seg38_arch of seg38 isbeginprocess(data_in, ENA)beginif ENA='1' thencase data_in iswhen "000" => data_out <= "11111110"; -- 0when "001" => data_out <= "11111101"; -- 1when "010" => data_out <= "11111011"; -- 2when "011" => data_out <= "11110111"; -- 3when "100" => data_out <= "11101111"; -- 4when "101" => data_out <= "11011111"; -- 5when "110" => data_out <= "10111111"; -- 6when "111" => data_out <= "01111111"; -- 7when others => NULL;end case;end if;end process;end architecture;管脚说明:ABC 分别对应data_2,1,0,锁定为:29,30,31 输出Y0-Y7非别对应data_out0-7,锁定为:灯1到8实验五BCD/七段显示译码器实验(文本输入方式)[实验目的]1.学习设计一个BCD/七段显示译码器,并在实验板上验证;2.掌握使用VHDL语言进行逻辑设计输入;3.掌握设计仿真工具的使用方法;[实验说明],C,D、ENA共5根,信号ENA的功能与3/8译码器功能相同,7段译码器的逻辑表同学自行设计,要求实现功能为:输入“0…15 ”(二进制),输出“0…9…F ”(显示数码),输出结果应在数码管上显示出来。
38译码器Verilog仿真与实现
思考题解答
思考题:Verilog HDL语言设计一个3线8线译码器。
要求:首先定义一个3 输入与门;然后以3 输入与门为基础设计一个3线8线译码器。
解答
步骤一
建立Quartus工程,作业中选择了与Altera公司提供的DE1开发板相对应的FPGA器件型号,如下图:
步骤二
使用V erilog HDL完成硬件设计,设计代码如下:
调试结果如下图所示:
步骤三
引脚分配情况如下图:
步骤四
RTL视图如下所示:
步骤五
构建波形文件,testbench如下图所示:
步骤六
modelsim仿真波形如下图所示:
收获与心得体会
现代电子技术的核心是EDA技术。
它依靠功能强大的电子计算机,在自己的工具软件平台上,对以硬件描述语言(HDL)为系统逻辑描述手段完成设计的文件,自动地完成编辑、化简、分割、综合、优化、仿真,直至下载到可编辑逻辑器件CPDL/FPGA或者专用集成电路ASIC芯片中,实现既定的电子电路设计功能。
该项技术极大地提高了电子电路设计效率,缩短了设计周期,节省了设计成本。
本次思考题运用V erilog HDL的文本输入语言和设计功能,完成V erilog HDL 语言设计的3线-8线译码器设计。
在实现的过程中,通过对Quartus11.0软件的运用,对相关知识有了更深的认识。
相信在以后的不时练习后,我能充分的掌握该软件的使用方法和技巧。
VHDL实验_3×8译码器的设计
实验一3-8译码器设计实验目的:掌握3-8译码器的设计方法;掌握if else语句和case语句的使用方法;掌握VHDL电路的设计,仿真和硬件测试方法设计描述:端口描述:输入变量为A,B,C,输出变量有8个,即Y0-Y7.G1,G2A,G2B为选通输入,仅当G1=1,G2A=0,G2B=0时,译码器能正确工作,否则,译码器输出无效,即Y0-Y7均为高电平。
真值表:编译的程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shiyan1 ISPORT(A : IN STD_LOGIC_vector(2 downto 0);G1,G2A,G2B:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END shiyan1;ARCHITECTURE yimaqi OF shiyan1 ISSIGNAL S : STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINS<=G1&G2A&G2B;PROCESS(A,S)BEGINIF(S="100")THENCASE 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 "111"=>Y<="01111111";WHEN OTHERS=>Y<="11111111";END CASE;END IF;END PROCESS;END ARCHITECTURE yimaqi;时序仿真图RTL电路图分析:3-8译码器有3个使能端,3个地址输入端,8个输出端,则在实体中定义三个地址输入端口A2、A1、A0;三个使能输入端口G1、G2A、G2B及八个输出端口Y7~Y0。
三八译码器=============
实验2 3/8译码器实验一、实验目的1.设计一个3/8译码器;2.学习用VHDL进行逻辑描述;3.学习设计仿真工具的使用方法。
二、实验说明本实验实现一个3/8译码器。
其逻辑功能如表7.1所示。
表7.1 3/8译码器的逻辑功能表实验仍利用拨动开关和发光二极管进行信号输入和显示。
实验板上的开关和发光二极管的管脚分布见实验板说明。
本实验练习用VHDL语言描述并仿真译码器。
要求编写3/8译码器的VHDL设计文件。
注意VHDL文件的结构和语法,并掌握MAX+plusⅡ平台中文本编辑器的使用方法。
三、实验要求1.要求用VHDL编写3/8译码器;2.设计输入波形文件,并进行模块的功能仿真;3.编程并实验验证;四、总结报告要求1.写出VHDL文件;2.写出测试向量文件;3.写出仿真和测试结果。
附3:实现3/8译码器LIBRARY IEEE;--库使用说明USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yima38 isPORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);--输入端口Y:OUT STD_LOGIC_VECTOR(7 downto 0));--输出端口END;ARCHITECTURE BEHA VIOR OF yima38 ISBEGINWITH A SELECT --译码:并行语句实现Y<=“11111110”WHEN“000”,“11111101”WHEN“001”,“11111011”WHEN“010”,“11110111”WHEN“011”,“11101111”WHEN“100”,“11011111”WHEN“101”,“10111111”WHEN“110”,“01111111”WHEN“111”,“00000000”WHEN OTHERS;END BEHA VIOR;。
基于Verilog HDL程序设计的38译码器源程序
reg[7:0] out;
always @(key_in)
begin
case(key_in)
3'd0: out=8'b11111110; //LED作为状态显示,低电平有效
3'd1: out=8'b11111101;
www21edacom学习3译码器的原理拨码开关的作为输入本实验采用拨码开关来作为输入led作为状态显示当然如果你的学习板没有拨码开关可以用key1key2key3作为数据输入
//深圳市21EDA电子.
//
//学习3 8译码器的原理,
//拨码开关的1 2 3作为输入
//本实验采用拨码开关来作为输入,LED作为状态显示
//当然如果你的学习板没有拨码开关,可以用key1 key2 key3作为数据输入。
//视频教程适合我们21EDA电子的所有学习板
module decoder_38(out,key_in);
output[7:0] out; //3 8译码器输出有8钟状态,所以要8个LED灯。
//如果没有8个LED灯也没有关系,只是有的状态就看不到了
3'd2: out=8'b11111011;
3'd3: out=8'b11110111;
3'd4: out=8'b11101111;
3'd5: out=8'b11011111;
3'd6: out=8'b10111111;
3'd7: out=8'b01111111;
endcase
end
endmodule
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译码器VHDL设计实验 实验报告
3-8译码器VHDL设计实验报告一、设计原理:先判断使能端口EN状态,当其满足高电平时,判断三个输入端口A2,A1,A0的状态来决定输出。
若使能端口为低电平则固定输出不受逻辑输出A2,A1,A0的影响。
使能有效时按照三个输入状态决定八个输出的状态。
真值表: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 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0二、实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY demo ISPORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);EN:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END demo;ARCHITECTURE DEC_BEHAVE OF demo ISSIGNAL SEL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSEL(0)<=EN;SEL(1)<=A(0);SEL(2)<=A(1);SEL(3)<=A(2);WITH SEL SELECTY<= "00000001" WHEN "0001","00000010" WHEN "0011","00000100" WHEN "0101","00001000" WHEN "0111","00010000" WHEN "1001","00100000" WHEN "1011","01000000" WHEN "1101","10000000" WHEN "1111","11111111" WHEN OTHERS;END DEC_BEHAVE;三、实验步骤(一)、设计输入1 、创建新工程(1) 打开QuartusII软件,在主界面中执行FILE—>New project Wizard(2) 在向导的第一页设置工程文件夹,工程名称及顶层实体名称。
基于VHDL语言38译码器的设计
《EDA技术》课程实验报告学生姓名:黄红玉所在班级:电信100227指导教师:高金定老师记分及评价:一、实验名称实验4:3-8译码器的设计二、任务及要求【基本部分】4分1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成3-8译码器的设计并进行时序仿真。
2、设计完成后生成一个元件,以供更高层次的设计调用。
3、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。
【发挥部分】1分修改设计,完成3-6译码器的设计,并进行时序仿真。
三、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decoder isport(en:in std_logic;a,b,c:in std_logic;y:out bit_vector(7 downto 0));end entity decoder;architecture art4 of decoder issignal sr:std_logic_vector(2 downto 0);beginsr<=c&b&a;process(sr)isbegincase sr iswhen"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=>y<="00000000";end case;end process;end architecture art4;enABCY[7..0]en138inst四、仿真及结果分析用三位拨码开关代表译码器的输入端a、b、c,将之分别与EP1K30TC144-3芯片的相应管脚相连;用LED灯来表示译码器的输出,将D0...D7对应的管脚分别与8只LED灯相连。
数电实验丨异或门-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、时序仿真或功能仿真。
38译码器的设计实验报告
EDA实验报告书姓名XXX学号xxxxxxxﻩ实验时间1根据74138的功能,当S0=1 ,S仁0, S2=0时译码器处于工作状态。
否则译码设器被禁止,所有输出端被封锁在高电平。
由真值表画出卡诺图,再写出对应表达计式,再画出电路。
思冒2、使用VHDL语言时,应注意头文件以及各种输入的格式,使用IF语句,CASE语句设计电路,最后再用END语句结束程序。
USEIEEE.STD LOGIC 1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SA ISPORT(D:IN STD_LOGIC_VECTOR(2DOWNTO 0); S0,S1,S2:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7DOWNTO 0));END ;ARCHITECTURE XIANI OF SA ISBEGINPROCESS。
,SO,S1,S2)BEGINIF (SO如THEN Yv="11111111";ELSIF(SO="AND S1 =。
AND S2=,0,)THENIF (D(2)='O* AND D(1 )=0 AND D(0)=O)THEN Yv=”01111111”;ELSIF (D(2)=V ANDD(1)=0' AND D(0)=1 *)THEN Yv=”10111111H;ELSIF (D(2)=,0,AND D(1 )=1* AND D(O)=O,)THENYv=”11011111“;ELSIF (D(2)=V AND D(1)='1*AND D(0)='1')THEN Yv=”11101111”;ELSIF (D(2)=*1 *AND D(1 )=0' AND D(O)=O,)THEN Yv=”11110111“;ELSIF (D(2)=T AND D(1)=0' AND D(0)=1*)THEN Yv=”11111011”;ELSIF (D(2)=,1,AND D(1)=1* AND D(0)=0,)THENYv="11111101”; ELSIF (D(2)=T ANDD(1 )=T AND D(0)=T)THEN Y<=H11111110”;ELSE Y<= ZZZZZZZZ ;END IF;ELSE Y<="ZZZZZZZZ:END IF;END PROCESS;END;l¥T77T仿直/、波•■MB血潮偷珈血先WBGC^>OIB i LfflOOngi11910ﻩ930抽MO T IB MD^1蚁加耳e阮削饥;斯rs2 aa1Hi i 1 12T r r(1s2 f 1). $ K5KT;-I 、I3 WDF KTFVBf H CFilEFfFT/ra K fD ] \FE2潢【DF'EFK FT1 RA(FO K FEK?F K KDDelayMatrixDelay MatrixYO Y1 Y2¥3丫4Y6Y7 DID 5.0rts5L0hs 5.0m 5. Ohs 5.003 5.0ns 5.0ns 5.0hsD1 S.Ont5LDH& 5.0FB5.0nt 5.0<K5. Ohs 5.0ns5i0m D2 S.Om 5 0ht&0nEOit E.Qrd 5iOhf 5.Cktt 5i0mSO BOhMJSns 5?0n5/U6n5 B&is/Utni 5,0n?/13&i¥50nA nl6ni-5()n¥/136n? £0h5/i36n? 5Qn¥/13&1?515.0n&/13.6nE 5.0ns/13.&w &Ois/13.6ns 5.0ns/l3.6ns5.0hs/H3.6rft5.0n?/13 6ri?5.0h&/13.6ns5.0>?/13.5n&S25-Ons.d3.6ns&Dhs/13l6ns5.0ns/13.6n$5.0h&/13.6rw 5.Qns/13?Ens 5.0h&/13.6rB5.0ns/13lEns美捡结果DesinfllimabDsis&Orw7iS.Ohs 50ns- S.ftis5唏S.Ohs 50ns- 弓加50ns* 6.0ns伽S.Ohg5i Ohs 5心g 5.0ns5.0ns5i0r»S.OhE&0h$ 5.0ns50hs E.Qn? &0rw 5.0ns5&w50ht5.0m5.0ns5%&0m自阮SiOnaﻫ5.0ns5.QngﻫS.Oki?5Ohs伽5.0ns5.0nHOn盘5.0ns5.0ns5.QHttub• limp12naMrai|.2Pnaft#im比较此实验中两种输入法哪种要好一些,好在哪里?答:使用与非门设计电路对应延时比使用程序对应延时时间短,原因是程序的每步执行都需要一定的时间,其时间比调用库中的与非门所需时间长。
3_8译码器的VHDL设计
3-8译码器的VHDL设计1.实体框图2.程序设计正确的程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODER38A ISPORT(A2,A1,A0,S1,S2,S3:IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY DECODER38A;ARCHITECTURE ONE OF DECODER38A ISSIGNAL S: STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINS<=A2&A1&A0&S1&S2&S3;WITH S SELECTY<="11111110" WHEN "000100","11111101" WHEN "001100","11111011" WHEN "010100","11110111" WHEN "011100","11101111" WHEN "100100","11011111" WHEN "101100","10111111" WHEN "110100","01111111" WHEN "111100","11111111" WHEN OTHERS;END ARCHITECTURE ONE;3.仿真波形图4.仿真波形分析当S1 S2 S3=100时,只有当A2 A1 A0=111时,Y[7]才输出低电平,否则为高电平,当A2 A1 A0=110时,Y[6]才输出低电平,否则为高电平,当A2 A1 A0=101时,Y[5]才输出低电平,否则为高电平,Y[4]到Y[0]同理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3-8译码器的设计1 设计目的与要求随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。
由此,计算机对我们的社会对我们每个人都是很重要的。
所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。
编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。
1.1 设计的目的本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。
以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。
通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。
1.2 设计要求根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。
译码器由三-八译码器为实例代表。
关键词:输入、输出、译码2 VHDL的简单介绍2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在我过的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
2.2 VHDL的特点1,功能强大,设计灵活:VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。
VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
2,,支持广泛,易于修改:由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。
在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。
3,强大的硬件系统描述能力:VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。
而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。
另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。
VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。
4,独立于器件的设计,与工艺无关:设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。
当设计描述完成后,可以用多种不同的器件结构来实现其功能。
5.,很强的移植能力:VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。
6,易于共享和复用:VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。
这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。
2.3 VHDL的设计步骤1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。
通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件。
2.使用编译工具编译源文件。
3.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)4.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。
逻辑综合软件会生成.edf或.edif 的EDA工业标准文件。
5.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放PLD/FPGA内。
6.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。
(也叫后仿真)通常以上过程可以都在PLD/FPGA厂家提供的开发工具。
7.烧写器件3 译码器的原理二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应的高、低电平信号。
对于三-八译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。
例如:对于二进制代码111来说,输出为10000000。
对于二-四译码器来说,2位二进制共有4种状态,所以对应的输出有4种状态。
例如:对于二进制代码11来说,输出为1000。
4 三-八译码器的设计关于三-八译码器的工作框图如图所示译码器内部电路:3-8译码器引脚排列图:3-8译码器的功能表:无论从逻辑图还是功能表我们都可以看到3-8译码器的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。
如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。
当附加控制门的输出为高电平(S=1)时,可由逻辑图写出由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。
3-8译码器有三个附加的控制端、和。
当、时,输出为高电平(S=1),译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁在高电平,如表1所示。
这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。
带控制输入端的译码器又是一个完整的数据分配器。
电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。
这就不难理解为什么把叫做地址输入了。
例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。
三-八译码器由VHDL程序来实现,下面是其中一段VHDL关键代码使用WHEN-ELSE语句5 三-八译码器仿真三-八译码器由VHDL程序:使用WHEN-ELSE语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yangdan_DECODER ISPORT(INP:IN STD_LOGIC_VECTOR(2 DOWNTO 0);OUTP:OUT BIT_VECTOR (7 DOWNTO 0)); END yangdan_DECODER;ARCHITECTURE ART3 OF yangdan_DECODER ISBEGINOUTP(0)<='1' WHEN INP="000" ELSE '0';OUTP(1)<='1' WHEN INP="001" ELSE '0';OUTP(2)<='1' WHEN INP="010" ELSE '0';OUTP(3)<='1' WHEN INP="011" ELSE '0';OUTP(4)<='1' WHEN INP="100" ELSE '0';OUTP(5)<='1' WHEN INP="101" ELSE '0';OUTP(6)<='1' WHEN INP="110" ELSE '0';OUTP(7)<='1' WHEN INP="111" ELSE '0';END ART3;其仿真图如图所示:三-八译码器功能时序仿真图6 结果分析对其仿真图进行仿真分析:OUTP译码输出标志,INP为输入信号组,它由INP[2]-INP[0]三个二进制代码输入信号组成。
OUTP为输出信号组,它由OUTP[7]-OUTP[0]八个输出信号组成。
OUTP为1时候表示输出。
当输入为:111时,译码后为指定的状态,即输出10000000,紧接着依次类推,当输入为:110时,输出输出01000000,当输入为101时,输出00100000,当输入为100时,输出00010000,输入011时,输出为00001000,输入为010时,输出00000100,输入为001时,输出00000010,输入为000时,输出为00000001。
7 心得体会我所选择的题目是译码器的设计,这些题目在以前基础强化训练的时候做过类似的题目,所以心里至少还是有点思路,不过本次课设我们所要用的是EDA以及VHDL等知识来达到本次设计的要求。
经过好几天努力的琢磨钻研,我终于知道了该做什么,心里有个大概的思路了,知道了究竟本次设计的目的与原理等等的,以及设计的大致步骤。
最后完成了我的设计任务——基于VHDL译码器的设计。
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。