EDA课程设计报告8线-3线优先编码器

合集下载

8线-3线编码器

8线-3线编码器


输 出 I3 0 0 0 1 0 0 I2 0 0 0 1 1 0 0 1 0 0 1 0 0 Y 2 Y 1Y 0 0 0
说明:输入高电平有效,Y2为最高位(8421BCD码)
0
4 0
0
0 0
1
1
根据真值表写函数表达式(与-或式): Y2=I4+I5+I6+I7
Y1=I2+I3+I6+I7 Y0=I1+I3+I5+I7
直接实现 Y2=I4+I5+I6+I7 Y1=I2+I3+I6+I7 Y0=I1+I3+I5+I7
Y2 Y1 Y0
1
I0 I1 I2 I3 I4 I5 I6 I7
1
1
作业:思考设计二—十进制编码器(输入低电平有 效)

输 出 I3 0 0 I2 0 0 Y2 Y1 Y0 0 0
十进 制数 0 1 2 3 4 5 6
输 I7 0 0 1 I6 0 I5 I1 0
入0 0 1 1 2 0 3 0 0 0 0 0 0 0 1 0 0 0 0 0 输 I7 0 1 0 0 0 I6 0 I5 I1 0 入 I4 I0 0
【新授】
例:设计一个 三位二进制编码器。
--- 8 线-3线编码器
八个输入
I0 I1 I2
.
最多能对 几个信号编码?
编 码 器 Y0 Y1 Y2
三位输出
输入:用I0~I7表示0~7这 8个数字,高电平有效; 输出:用Y0、Y1、Y2表示, 高电平有效。
本节课的任务: 设计该编码器
I7
真 值

Verilog八线-三线优先编码器设计(74LS148)

Verilog八线-三线优先编码器设计(74LS148)

Verilog⼋线-三线优先编码器设计(74LS148)if语句法1//8线-3线优先编码器设计(74LS148)2//3//EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO4//0 | 0 x x x x x x x | 0 0 0 0 15//0 | 1 0 x x x x x x | 0 0 1 0 16//0 | 1 1 0 x x x x x | 0 1 0 0 17//0 | 1 1 1 0 x x x x | 0 1 1 0 18//0 | 1 1 1 1 0 x x x | 1 0 0 0 19//0 | 1 1 1 1 1 0 x x | 1 0 1 0 110//0 | 1 1 1 1 1 1 0 x | 1 1 0 0 111//0 | 1 1 1 1 1 1 1 0 | 1 1 1 0 112//0 | 1 1 1 1 1 1 1 1 | 1 1 1 1 013//1 | x x x x x x x x | 1 1 1 1 1141516module encoder_83 (din, EI, GS, EO, dout);17input [7:0] din; //编码输⼊端data_in,低电平有效18input EI; //使能输⼊端EI(选通输⼊端),EI为 0 时芯⽚⼯作,即允许编码19output [2:0] dout; //编码输出端data_out20output GS; //⽚优先编码输出端,优先编码器⼯作⼯作状态标志GS,低电平有效21output EO; //使能输出端EO(选通输出端)22reg [2:0] dout;23reg GS, EO;24always @(din or EI)25if(EI) begin dout <= 3'b111; GS <= 1; EO <= 1; end //所有输出端被锁存在⾼电平26else if (din[7] == 0) begin dout <= 3'b000; GS <= 0; EO <= 1; end27else if (din[6] == 0) begin dout <= 3'b001; GS <= 0; EO <= 1; end28else if (din[5] == 0) begin dout <= 3'b010; GS <= 0; EO <= 1; end29else if (din[4] == 0) begin dout <= 3'b011; GS <= 0; EO <= 1; end30else if (din[3] == 0) begin dout <= 3'b100; GS <= 0; EO <= 1; end31else if (din[2] == 0) begin dout <= 3'b101; GS <= 0; EO <= 1; end32else if (din[1] == 0) begin dout <= 3'b110; GS <= 0; EO <= 1; end33else if (din[0] == 0) begin dout <= 3'b111; GS <= 0; EO <= 1; end34else if (din == 8'b11111111) begin dout <= 3'b111; GS <= 1; EO <= 0; end//芯⽚⼯作,但⽆编码输⼊35else begin dout <= 3'b111; GS <= 1; EO <= 1; end //消除锁存器(latch)36endmodule3738//EI = 0 表⽰允许编码,否则所有输出端被封锁在⾼电平(控制芯⽚⼯作)39//EO = 0 表⽰电路⼯作,但⽆编码输⼊(⽤于级联)40//GS = 0 表⽰电路⼯作,且有编码输⼊(判断输⼊端是否有输⼊)testbench:1 `timescale 1 ps/ 1 ps2module encoder_83_vlg_tst();3reg EI;4reg [7:0] din;5wire EO;6wire GS;7wire [2:0] dout;8 encoder_83 i1 (.EI(EI), .EO(EO), .GS(GS), .din(din), .dout(dout));9initial10begin11 EI = 1;12 din = 8'b11111111;13 #10 EI = 0;14 #10 din = 8'b01010101;15 #10 din = 8'b10101010;16 #10 din = 8'b11010101;17 #10 din = 8'b11101010;18 #10 din = 8'b11110101;19 #10 din = 8'b11111010;20 #10 din = 8'b11111101;21 #10 din = 8'b11111110;22 #10 din = 8'b11111111;23end24endmoduleView Codecase语句法1//8线-3线优先编码器设计(74LS148)2//3//EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO4//0 | 0 x x x x x x x | 0 0 0 0 15//0 | 1 0 x x x x x x | 0 0 1 0 16//0 | 1 1 0 x x x x x | 0 1 0 0 17//0 | 1 1 1 0 x x x x | 0 1 1 0 18//0 | 1 1 1 1 0 x x x | 1 0 0 0 19//0 | 1 1 1 1 1 0 x x | 1 0 1 0 110//0 | 1 1 1 1 1 1 0 x | 1 1 0 0 111//0 | 1 1 1 1 1 1 1 0 | 1 1 1 0 112//0 | 1 1 1 1 1 1 1 1 | 1 1 1 1 013//1 | x x x x x x x x | 1 1 1 1 1141516module encoder_83_case (din, EI, GS, EO, dout);17input [7:0] din; //编码输⼊端data_in,低电平有效18input EI; //使能输⼊端EI(选通输⼊端),EI为 0 时芯⽚⼯作,即允许编码19output [2:0] dout; //编码输出端data_out20output GS; //⽚优先编码输出端,优先编码器⼯作⼯作状态标志GS,低电平有效21output EO; //使能输出端EO(选通输出端)22reg [2:0] dout;23reg GS, EO;24always @(din or EI)25if(EI)26begin dout <= 3'b111; GS <= 1; EO <= 1; end //所有输出端被锁存在⾼电平27else28casez (din) //建议⽤casez语句,casez把z/?匹配成任意。

EDA课程设计报告-8-3优先编码器EDA课程设计报告

EDA课程设计报告-8-3优先编码器EDA课程设计报告

Xxxx大学课程设计任务书课程硬件课程设计题目 8-3优先级编码器设计专业姓名学号主要内容、基本要求等一、主要内容:利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计8-3优先编码器。

可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。

最后在EL教学实验箱中实现。

二、基本要求:设计并实现一个8-3优先级编码器,要求I0优先级最高,I7优先级最低,编码输出为原码。

三、扩展要求:输入端加使能端,在使能端为有效的低电平时,进行编码;在使能端为无效的高电平时,输出高阻状态。

四、参考文献:[1] 杨刚,龙海燕.现代电子技术-VHDL与数据系统设计.北京:电子工业出版社,2004[2] 黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006[3] 潘松.VHDL实用教程[M].成都:电子科技大学出版社,2000[4] 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000[5] 宋振辉. EDA技术与VHDL.北京:北京大学出版社,2008完成期限18-19周指导教师张岩专业负责人富宇2011年6月28日目录第1章概述 (1)1.1 EDA的概念 (1)1.2 EDA技术及应用 (2)1.3 EDA技术发展趋势 (2)1.4 Quartus II特点介绍 (3)第2章硬件描述语言——VHDL (4)2.1 VHDL的简介 (4)2.2 VHDL语言的特点 (4)2.3 VHDL的设计流程 (5)第3章 8-3优先编码器的设计 (6)3.1 编码器的工作原理 (6)3.2 8-3优先编码器的设计 (6)3.3 8-3优先编码器仿真及分析 (7)3.4 在实验箱上实现8-3优先编码器 (8)结论 (11)参考文献 (12)第1章概述1.1EDA的概念EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

EDA实验3-8线译码器

EDA实验3-8线译码器

实验五 3-8线译码器一、实验目的1、熟悉常用译码器的功能逻辑。

2、掌握复杂译码器的设计方法。

二、实验原理1、总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。

2、3-8线译码器原理图如下图所示:三、实验程序实验参考代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DECODE ISPORT(DATA_IN :IN STD_LOGIC_VECTOR(2 DOWNTO 0);LEDOUT,DATA_OUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LEDW :OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END DECODE;ARCHITECTURE ADO OF DECODE ISSIGNAL OUTA,D_OUT : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINLEDW<="000";PROCESS (DATA_IN)VARIABLE DIN: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINDIN:=DATA_IN;LEDOUT<=OUTA;DATA_OUT<=D_OUT;CASE DIN ISwhen "000" => OUTA<="00111111" ; --"0"when "001" => outa<="00000110" ; --"1"when "010" => outa<="01011011"; --"2"when "011" => outa<="01001111"; --"3"when "100" => outa<="01100110"; --"4"when "101" => outa<="01101101"; --"5"when "110" => outa<="01111101"; --"6"when "111" => outa<="00000111"; --"7"WHEN OTHERS => OUTA<="XXXXXXXX";END CASE;CASE DIN ISWHEN "000" => D_OUT<="00000000";WHEN "001" => D_OUT<="00000001";WHEN "010" => D_OUT<="00000010";WHEN "011" => D_OUT<="00000100";WHEN "100" => D_OUT<="00001000";WHEN "101" => D_OUT<="00010000";WHEN "110" => D_OUT<="00100000";WHEN "111" => D_OUT<="01000000";WHEN OTHERS=> D_OUT<="XXXXXXXX";END CASE;END PROCESS;END ADO;四、实验步骤1、打开Quartus II,选择“File”菜单下的“New Project Wizard”,建立Project及顶层实体的名称为ADO,期间,选择的目标芯片为EP2C5Q208C8N;2、选择“File”菜单下的“New”命令,在“New”窗口中选择“VHDL Files”,输入程序,进行编译;3、选择“File”菜单中的“New”项,在“New”窗口中选择“Other Files”中的“VectorWaveform File”项,打开空白的波形编辑器,输入所有的信号节点,给输入随机赋值,保存,单击工具栏上的快捷方式,进行波形仿真;4、打开“Assignments”菜单下的“Pins”命令,打开引脚锁定窗口,进行引脚锁定,再次对VHDL Files进行编译;5、连接EDA实验箱,将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到 SOPC下载的一边,将JPLED1短路帽右插,JPLED的短路帽全部上插,请将JP103的短路帽全部插上。

实验二 8线-3线编码器设计

实验二 8线-3线编码器设计

实验名称 8线-3线编码器设计指导老师尚丽娜成绩专业电科班级 1102 姓名汪磊学号31102333一、实验目的1、学习QuartusII软件,学习使用硬件描述语言设计电路。

2、学习DE1平台基本构成,能够使用DE1平台进行简单设计。

二、实验要求使用QuartusII文本输入法设计8线-3线编码器。

使用QuartusII软件进行文本输入,并对设计电路进行仿真,并下载到硬件平台,自行定义硬件平台使用端口。

三、实验设备PC机、DE1硬件平台四、实验原理根据8线—3线编码器的真值表原理进行实验,下表为8线—3线编码器的真值表五、实验过程library ieee;use ieee.std_logic_1164.all;entity bm8_3 isport(a:in std_logic_vector(7 downto 0);b:out std_logic_vector(2 downto 0));end bm8_3;architecture zhang of bm8_3 isbeginprocess(a)begincase a iswhen"00000001"=>b<="000";when"00000010"=>b<="001";when"00000100"=>b<="010";when"00001000"=>b<="011";when"00010000"=>b<="100";when"00100000"=>b<="101";when"01000000"=>b<="110";when others=>b<="111";end case;end process;end zhang;六、实验结果该程序还存在一些不足,当出现10000000是和非正常输入的时候是一样的输出,所以我们进行了一些修改,修改程序与结果如下:library ieee;use ieee.std_logic_1164.all;entity e isport(a:in std_logic_vector(7 downto 0);b:out std_logic_vector(3 downto 0));end e;architecture zhang of e isbeginprocess(a)begincase a iswhen"00000001"=>b<="0000";when"00000010"=>b<="0001";when"00000100"=>b<="0010";when"00001000"=>b<="0011";when"00010000"=>b<="0100";when"00100000"=>b<="0101";when"01000000"=>b<="0110";when"10000000"=>b<="0111";when others=>b<="1111";end case;end process;end zhang;思考题一:思考题二:entity e isport(a:in bit_vector(7 downto 0);b:out bit_vector(3 downto 0)); end e;architecture zhang of e isbeginprocess(a)begincase a iswhen"00000001"=>b<="0000";when"00000010"=>b<="0001";when"00000100"=>b<="0010";when"00001000"=>b<="0011";when"00010000"=>b<="0100";when"00100000"=>b<="0101";when"01000000"=>b<="0110";when"10000000"=>b<="0111";when others=>b<="1111";end case;end process;end zhang;七、心得体会对操作更加熟练,加深对其的认识。

实验二 8线——3线优先编码器74LS148功能测试及应用

实验二  8线——3线优先编码器74LS148功能测试及应用

数字电子技术基础实验报告
实验二8线——3线优先编码器74LS148功能测试及应用
专业班级姓名学号成绩通信工程一班赵建倪201409110134
一、实验目的
了解8线——3线优先编码(74LS148)的基本功能;
掌握74LS148的使用方法;
二、实验内容
(1)了解芯片的工作原理
74LS148工作原理:该编码器有8个信号输入端,3个二进制码输出端。

此外,电路还设置了输入使能端EI,输出使能端EO和优先编码工作状态标志GS。

当EI=0时,编码器工作;而当EI=1时,则不论8个输入端为何种状态,3个输出端均为高电平,且优先标志端和输出使能端均为高电平,编码器处于非工作状态。

这种情况被称为输入低电平有效,输出也为低电来有效的情况。

当EI为0,且至少有一个输入端有编码请求信号(逻辑0)时,优先编码工作状态标志GS为0。

表明编码器处于工作状态,否则为1。

(2)了解芯片的结构,对照着具体的引脚接线
(3)验证优先编码器的真值表
真值表。

实验三83优先编码器和38线译码器

实验三83优先编码器和38线译码器

实验三8-3优先编码器和3-8线译码器一、实验目的1、熟悉常用编码器,译码器的功能逻辑。

2、熟悉VHDL的代码编写方法。

3、掌握复杂译码器的设计方法。

二、实验原理2、逻辑表达式:Y2=X4&X5&X6&X7Y1=~(~(X2)&X4&X5|~(X3)&X4&X5|~(X6)|~(X7));Y0=~(~(X1)&x2&X4&X6|~(X3)&X4&X6|~(X5)&X6|~(X7));2、3-8线码器总体思路以EP2C5中的三个拨位开关,SW3,SW2,SW1为三个输入信号,可以代表8种不同的状态,该译码器对这8种状态译码,并把所译码的结果在七段LED数码管上显示出来。

三、实验连线1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、请将JPLED1短路帽右插,JPLED的短路帽全部上插。

3、请将JP103的短路帽全部插上。

四、实验步骤及波形按照步骤三正确连线,参考实验二步骤,完成项目的建立,文件的命名,文件的编辑,语法检查,引脚分配,编译,下载。

8-3优先编码器参考代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY encode ISPORT(XINA :IN STD_LOGIC_VECTOR(7 DOWNTO 0);Y0,Y1,Y2: OUT STD_LOGIC;OUTA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LEDW: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END encode;ARCHITECTURE ADO OF encode ISSIGNAL LED: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL XIN: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINXIN<=XINA;LEDW<="000";PROCESS (XIN)BEGINCASE XIN ISWHEN x"00" => OUTA<=x"3F";WHEN x"01" => OUTA<=x"06";WHEN x"02" => OUTA<=x"5B";WHEN x"04" => OUTA<=x"4F";WHEN x"08" => OUTA<=x"66";WHEN x"10" => OUTA<=x"6D";WHEN x"20" => OUTA<=x"7D";WHEN x"40" => OUTA<=x"07";WHEN x"80" => OUTA<=x"3F";WHEN OTHERS => OUTA<=x"3F";END CASE;END PROCESS;PROCESS (XIN)BEGINCASE XIN ISWHEN x"01" => LED<="001";WHEN x"02" => LED<="010";WHEN x"04" => LED<="011";WHEN x"08" => LED<="100";WHEN x"10" => LED<="101";WHEN x"20" => LED<="110";WHEN x"40" => LED<="111";WHEN x"80" => LED<="000";WHEN OTHERS => LED<="000";END CASE;END PROCESS;Y2<=LED(2);Y1<=LED(1);Y0<=LED(0);END ADO;3-8译码器参考代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DECODE ISPORT(DATA_IN :IN STD_LOGIC_VECTOR(2 DOWNTO 0);LEDOUT,DATA_OUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LEDW :OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END DECODE;ARCHITECTURE ADO OF DECODE ISSIGNAL OUTA,D_OUT : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINLEDW<="000";PROCESS (DATA_IN)V ARIABLE DIN: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINDIN:=DA TA_IN;LEDOUT<=OUTA;DATA_OUT<=D_OUT;CASE DIN ISwhen "000" => OUTA<="00111111" ; --"0"when "001" => outa<="00000110" ; --"1"when "010" => outa<="01011011"; --"2"when "011" => outa<="01001111"; --"3"when "100" => outa<="01100110"; --"4"when "101" => outa<="01101101"; --"5"when "110" => outa<="01111101"; --"6"when "111" => outa<="00000111"; --"7"WHEN OTHERS => OUTA<="XXXXXXXX";END CASE;CASE DIN ISWHEN "000" => D_OUT<="00000000";WHEN "001" => D_OUT<="00000001";WHEN "010" => D_OUT<="00000010";WHEN "011" => D_OUT<="00000100";WHEN "100" => D_OUT<="00001000";WHEN "101" => D_OUT<="00010000";WHEN "110" => D_OUT<="00100000";WHEN "111" => D_OUT<="01000000";WHEN OTHERS=> D_OUT<="XXXXXXXX";END CASE;END PROCESS;END ADO;五、实验仿真8-3编码器引脚锁定如图:图5-1图5-2仿真波形如图:3-8译码器引脚锁定如图:图5-3波形如图:图5-4六、实验现象调试ok的EP2C5文件在文件夹decode中,可以直接调用。

EDA课程设计-3-8译码器

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)的二进制编码在一个对应的输出端以低电平译出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Xxxxx学院
《EDA技术》课程报告
设计题目:8线-3线优先编码器班级:应用电子1101班姓名:
学号:
指导老师:
日期:
目录
一、8-3优先编码器设计原理分析 (3)
二、8-3优先编码器模块的源程序 (3)
三、8-3优先编码器仿真结果 (4)
四、设计总结和心得体会 (5)
五、参考资料 (5)
一、8-3优先编码器设计原理分析
8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。

输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。

也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。

因为din0到din7共8中状态,可以用3位二进制编码来表示。

8-3优先编码器真值表如下表所示。

表1 8-3优先编码器真值表
二、8-3优先编码器模块的源程序
8-3优先编码器由VHDL程序来实现,VHDL语言描述如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY coder IS
PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic );
END coder;
ARCHITECTURE behav OF coder IS
SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
PROCESS (din)
BEGIN
IF (EANABLE='0') THEN
IF (din(0)='1') THEN output <= "000" ;
ELSIF (din(1)='1') THEN output <= "100" ;
ELSIF (din(2)='1') THEN output <= "010" ;
ELSIF (din(3)='1') THEN output <= "110" ;
ELSIF (din(4)='1') THEN output <= "001" ;
ELSIF (din(5)='1') THEN output <= "101" ;
ELSIF (din(6)='1') THEN output <= "011" ;
ELSE output <= "111" ;
END IF ;
ELSE output <="ZZZ";
END IF;
END PROCESS ;
END behav;
三、8-3优先编码器仿真结果
8-3优先编码器由VHDL程序实现后,其仿真图如图2-1所示。

图1 8-3优先编码器功能仿真图
对其仿真图进行仿真分析:din为输入信号组,它由din7-din0八个输入信号组成。

output为输出信号组,它由output2-output0三个二进制代码输出信号组成。

enable为使能端,当enable为0时编码器工作,当使能端为1时输出高阻状态。

当din0为1时,即输入为:1*******时,输出111,当din0为0时,输出由优先级仅次于din0的din1决定,即输入为:01******时,输出110,紧接着依次类推,分别得出输入为:001*****时,输出101,输入为:0001****时,输出100,输入为00001***时,输出为011。

到此为止由于使能段变为高电平,输出信号为高阻状态,但可以推断出当输入为000001**时,输出010,输入为0000001*时,输出001,输入为00000001时,输出为000。

四、设计总结和心得体会
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。

本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。

它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。

希望学校以后多安排一些类似的实践环节,让同学们学以致用。

在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事工作会有一定的帮助。

在应用VHDL的过程中让我真正领会到了其在电路设计上的优越性。

用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

五、参考资料
[1] 杨刚,龙海燕.现代电子技术-VHDL与数据系统设计.北京:电子工业出版
社,2004
[2] 黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006
[3] 潘松.VHDL实用教程[M].成都:电子科技大学出版社,2000
[4] 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000[5] 宋振辉. EDA技术与VHDL.北京:北京大学出版社,2008
[5] 宋振辉. EDA技术与VHDL.北京:北京大学出版社,2008
[6]王锁萍. 电子设计自动化(EDA)教程.成都:电子科技大学出版社,2001。

相关文档
最新文档