用VHDL设计三八译码器超赞版
3-8译码器设计
EDA实验报告
学院:专业:班级:
点击菜单项File->New Project Wizard 帮助新建工程。
参看图打开Wizard 之后,界面如2-3
5.选择设计所用器件。
由于本次实验没有使用开发板,故可先随意选择。
8.培养良好的文件布局。
Quartus II 默认把所有编译结果放在工程根目
2.2 使用VHDL完成硬件设计指定单独的编译结果文件目录
9.添加所需设计文件。
本次实验通过VHDL 来描述所设计的硬件,因此要添加VHDL 设计文件到工程文件中去。
74LS138 是常用的小规模集成电路芯片,用于译码。
它有
12.分析与综合。
点击菜单项Processing->start->Start Analysis &
13.全编译文件。
点击菜单项Processing->start compilation
15. Pins 菜单项执行之后,会出现一个引脚配置窗口。
参看图
为了将逻辑分配到 FPGA 外围引脚上,必须根据所用的 FPGA 型号配置输出引脚。
根据所提供的对应开发板指导手册,将 3-8 译码器的输入与输出分别配置到开发板的3 个选择开关(SW2,SW1,SW0)以及8 个LED (LEDR7-LEDR0)上。
16.全编译文件。
完成分配引脚后,点击菜单项Processing->start
18.之后的输出画面如图2-23 所示。
◆本实验指导结束Pins引脚配置窗口:。
用VHDL设计三八译码器。。超赞版
3-8译码器的设计1 设计目的与要求随着社会的进一步发展,我们的生活各个地方都需要计算机的参与,有了计算机,我们的生活有了很大的便利,很多事情都不需要我们人为的参与了,只需要通过计算机就可以实现自动控制。
由此,计算机对我们的社会对我们每个人都是很重要的。
所以我们要了解计算机得组成,内部各种硬件,只有了解了计算机基本器件已经相应的软件,才能促进社会的发展。
编码器和译码器的设计是计算机的一些很基础的知识,通过本次对于编码器和译码器的设计,可以让我知道究竟这种设计是如何实现的,这种设计对我们的生活有什么帮助,这种设计可以用到我们生活的哪些方面,对我们的各种生活有什么重大的意义。
1.1 设计的目的本次设计的目的是通过简单的译码器的设计掌握基本的计算机的一些有关的知识,通过查资料已经自己的动手设计去掌握EDA技术的基本原理已经设计方法,并掌握VHDL硬件描述语言的设计方法和思想。
以计算机组成原理为指导,通过将理论知识,各种原理方法与实际结合起来,切实的亲手设计,才能掌握这些非常有用的知识。
通过对编码器和译码器的设计,巩固和综合运用所学知识,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。
也能通过这种自主设计,增强自己的动手能力,将理论知识切实应用的能力,这对我们将来的发展是很有帮助的。
1.2 设计要求根据计算机组成原理中组合逻辑电路设计的原理,利用VHDL设计计算机电路中译码器的各个模块,并使用EDA 工具对各模块进行仿真验证和分析。
译码器由三-八译码器为实例代表。
关键词:输入、输出、译码2 VHDL的简单介绍2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期出现。
最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。
VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在我过的应用多数是用在FPGA/CPLD/EPLD的设计中。
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;。
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译码器VerilogHDL语言的简单实现
3_8译码器VerilogHDL语⾔的简单实现最近在学Verilog HDL语⾔,觉得learn in doing是⽐较好的学习⽅式,所以我们来直接分析分析代码好了。
先来⼀波代码:1module q_decode_38(data_in,data_out);23input[2:0] data_in; //端⼝声明4output[7:0] data_out;5reg[7:0] data_out;67always@(data_in)8begin9case(data_in)103'd0:data_out = 8'b0000_0001;113'd1:data_out = 8'b0000_0010;123'd2:data_out = 8'b0000_0100;133'd3:data_out = 8'b0000_1000;143'd4:data_out = 8'b0001_0000;153'd5:data_out = 8'b0010_0000;163'd6:data_out = 8'b0100_0000;173'd7:data_out = 8'b1000_0000;18endcase19end2021endmodule代码分析如下:知识点:(1)基本语句1)条件语句---case语句case语句很明显了,格式跟c语⾔中的类似,不解释。
值得注意的是上述代码中是不是少了defaule这种情况呢?此处省略是因为已列出所有的情况,不过⼀般不提倡省略,因为若出现了未知情况,则很容易⽣成不必要的锁存器。
2)顺序块语句---begin...end语句begin...end语句没什么特殊要求,就是在顺序块begin...end之间的语句是从上⾄下、从左往右逐句执⾏的。
3)过程语句---always语句always语句的格式是always@() 后加begin...end语句,括号中为触发条件,上述代码中表⽰,只要data_in的值发⽣变化,就执⾏always后的begin...end部分,否则不执⾏。
不带使能端的3线8线译码器VHDL程序
Y4<=NOT((A AND(NOT B)AND (NOT C))AND S);
Y5<=NOT((A AND (NOT B) AND C)AND S);
Y6<=NOT((A AND B AND (not C))AND S);
Y7<=NOT((A AND B AND C )AND S); end mux_behave;
BEGIN
CASE S IS
when "000"=>;Y;'0',OTHERS=>;'1'); when "001"=>;Y;'0',OTHERS=>;'1'); when "010"=>;Y;'0',OTHERS=>;'1'); when "011"=>;Y;'0',OTHERS=>;'1'); when "100"=>;Y;'0',OTHERS=>;'1'); when "101"=>;Y;'0',OTHERS=>;'1'); when "110"=>;Y;'0',OTHERS=>;'1'); when "111"=>;Y;'0',OTHERS=>;'1'); END CASE;
译码器的VHDL设计
实验名称:译码器的VHDL设计二、用WHEN_ELSE语句编写具有使能端的3-8译码器1.实体框图2.程序设计①编译前的程序Entity Dec38A isport(s1,s2,s3:in bit;A2,A1,A0:in bit;Y:out bit_vector(7 downto 0));End Dec38A;Architecture two of Dec38A isBeginY<="11111110" when s1s2s3="100" and A2A1A0="000"else"11111101" when s1s2s3="100" and A2A1A0="001"else"11111011" when s1s2s3="100" and A2A1A0="010"else"11110111" when s1s2s3="100" and A2A1A0="011"else"11101111" when s1s2s3="100" and A2A1A0="100"else"11011111" when s1s2s3="100" and A2A1A0="101"else"10111111" when s1s2s3="100" and A2A1A0="110"else"01111111" when s1s2s3="100" and A2A1A0="111"else"11111111" ;End architecture two;②程序编译错误情况错误1:Error (10482): VHDL error at Dec38A.vhd(15): object "s1s2s3"is used but not declared错误2:Error (10482): VHDL error at Dec38A.vhd(15): object "A2A1A0"is used but not declared③正确的程序Entity Dec38A isport(s1,s2,s3:in bit;A2,A1,A0:in bit;Y:out bit_vector(7 downto 0));End Dec38A;Architecture two of Dec38A issignal s:bit_vector(1 to 3);signal A:bit_vector(2 downto 0);Begins<=s1 & s2 & s3;A<=A2 & A1 & A0;Y<="11111110" when s="100" and A="000" else"11111101" when s="100" and A="001" else"11111011" when s="100" and A="010" else"11110111" when s="100" and A="011" else"11101111" when s="100" and A="100" else"11011111" when s="100" and A="101" else"10111111" when s="100" and A="110" else"01111111" when s="100" and A="111" else"11111111" ;End architecture two;3.仿真波形图4.仿真波形分析S1、S2、S3是使能端,A0、A1、A2是选通端,Y7~Y0是输出端当S1、S2、S3为100时,译码器工作A="000"时,Y="11111110"A="001"时,Y= "11111101"A="010"时,Y="11111011"A="011"时,Y="11110111"A="100"时,Y="11101111"A="101"时,Y= "11011111"A="110"时,Y="10111111"A="111"时,Y= "01111111" ;使能端无效时为"11111111" ;二、用WHEN_ELSE语句实现驱动共阳极数码管七段显示译码器1.实体框图2.程序设计①编译前的程序Library ieee;Use ieee.std_logic_1164.all;Entity DD isport(A: in std_logic_vector(3 downto 0);DOUT:out std_logic_vector(6 downto 0));End DD;Architecture three of DD isBeginDOUT<="1111110" when A="0000" else"0110000" when A="0001" else"1101101" when A="0010" else"1111001" when A="0011" else"0110011" when A="0100" else"1011011" when A="0101" else"1011111" when A="0110" else"1110000" when A="0111" else"1111111" when A="1000" else"1111011" when A="1001" else"0000000" ;End architecture three;②程序编译错误情况错误:无3.仿真波形图4.仿真波形分析A为输入端,DOUT为输出端A="0000" 时,DOUT="1111110",显示0A="0001" 时,DOUT= "0110000",显示1A="0010" 时,DOUT= "1101101",显示2A="0011" 时,DOUT= "1111001",显示3A="0100" 时,DOUT="0110011",显示4A="0101" 时,DOUT= "1011011",显示5A="0110"时,DOUT= "1011111",显示6A="0111" 时,DOUT= "1110000",显示7A="1000"时,DOUT= "1111111",显示8A="1001" 时,DOUT= "1111011",显示9否则不满足要求时,输出"0000000",不显示;。
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]同理。
项目3 3线-8线译码器设计
项目三3线-8线译码器电路设计
班级:09电信姓名:朱丽丝学号:41
1.实训目标
1)通过3线-8线译码器的设计,让学生掌握组合逻辑电路的设计方法。
2)掌握译码器的设计原理。
3)掌握Altera MAX+PLUS II原理图输入设计和VHDL语言输入设计的全过程。
2.实训原理
3线-8线译码器的真值表见表3-1。
表3-1
3.实训步骤
1)利用原理图编辑法,在Mf函数的maxplus2里面调用74138器件(3线-8线译码
器),加入输入和输出引脚。
编程器件型号选择ACE1k系列的EP1K30TC144-3。
完成项目编辑及功能仿真。
2)采用文本编辑法,即利用VHDL语言描述3线-8线译码器,代码如下。
然后对其进行编译,编程器件型号选择ACE1k系列的EP1K30TC144-3,完成程序仿真,记录仿真数据。
4.实训数据
1)原理图编辑法设的3线-8线译码器的电路。
2)原理图编辑法仿真结果。
简述仿真波形的意义。
3)采用VHDL语言设计的3线-8线译码器的仿真结果。
简述仿真波形的意义。
5.思考题
根据BCD-7段显示译码器的真值表,见表4-2,用VHDL语言描述BCD-7段显示译码器。
进行编辑和仿真,写出设计的VHDL程序,并记录仿真数据。
- 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 翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在我过的应用多数是用在FP GA/C PLD/E PL的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIG VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHD啲程序结构特点是将一项工程设计, 或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是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/F PGA厂家提供的开发工具。
7. 烧写器件3译码器的原理二进制译码器的输入是一组二进制代码, 输出是一组与输入代码对应的高、低电平信号。
对于三-八译码器来说,3 位二进制共有8 种状态,所以对应的输出有8 种状态。
例如:对于二进制代码111 来说,输出为10000000。
对于二- 四译码器来说,2 位二进制共有4 种状态,所以对应的输出有4 种状态。
例如:对于二进制代码11 来说,输出为1000。
4三- 八译码器的设计4ArA.A.Vt:LF;弘S.V IYxOND苣旦*-buy关于三-八译码器的工作框图如图所示YIMA 138INP[ 2..0]CS译码器内部电路:OUT P[ 7..0] 3-8译码器引脚排列图:A3-8译码器的功能表:有一个为低电平0,其余7个输出管脚全为高电平1。
如果出现两个 输出管脚在同一个时间为0的情况,说明该芯片已经损坏。
输 出出管脚,任何时刻要么全为高电平 1—芯片处于不工作状态,要么只 无论从逻辑图还是功能表我们都可以看到3-8译码器的八个输输 入当附加控制门的输出为高电平(S= 1)时,可由逻辑图写出吒=爲耳耳=% 爲恳州=冠 =均且吗=%吒-4144 -蚀£ =比理焉=恳X =^44 = ^37嘲黑澤帛閤由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。
3-8译码器有三个附加的控制端、和。
当、时,输出为高电平(S= 1),译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁在高电平,如表1所示。
这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。
带控制输入端的译码器又是一个完整的数据分配器。
电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端, 那么从送来的数据只能通过所指定的一根输出线送出去。
这就不难理解为什么把叫做地址输入了。
例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。
三-八译码器由VHDL程序来实现,下面是其中一段VHDL关键代码使用WHEN-ELS语句5三-八译码器仿真三-八译码器由VHDL程序: 使用WHEN-ELS语句LIBRARY IEEE;USE lEEE.STD LOGIC 1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yan gdan_DECODER ISP ORT(IN P:IN STD_LOGIC_VECTOR(2 DOWNTO 0); OUT P:OUT BIT_VECTOR (7 DOWNTO 0)); END yan gdan_DECODER;ARCHITECTURE ART3 OF yan gdan_DECODER IS BEGINOUT P(0 )v='1' WHEN INP="000" ELSE '0';OUT P(1)v='1' WHEN INP="001" ELSE '0';OUT P( 2)<='1' WHEN INP="010" ELSE '0';OUT P( 3)<='1' WHEN INP="011" ELSE '0';OUT P(4 )v='1' WHEN INP="100" ELSE '0';OUT P( 5)<='1' WHEN INP="101" ELSE '0';OUT P(6)v='1' WHEN INP="110" ELSE '0';OUT P(7)v='1' WHEN INP="111" ELSE '0';END ART3;其仿真图如图所示:6 结果分析对其仿真图进行仿真分析:OUTP译码输出标志,INP为输入信号组,它由INP[2]-INP[0]三个二进制代码输入信号组成。
OUTF为输出信号组,它由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等知识来达到本次设计的要求。