EDA设计38译码器
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。
EDA实验一38译码器设计
《电子设计自动化》实验报告实验一实验名称:3-8译码器的设计专业及班级:姓名:学号:一、实验目的:1.掌握组合逻辑电路的设计方法。
2.掌握 VHDL 语言的基本构造及设计的输入方法。
3.掌握 VHDL 语言的基本描绘语句的使用方法。
二、实验步骤(附源代码及仿真结果图):1.成立工程, Quartus II -- project wizard (注意工程目录中不可以出现中文字符,不可以成立在桌面上);弹出窗口如图 2-3 所示。
图 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-6 EDA 工具设置对话框5.点击 next,出现如图 2-7 所示的对话框:图 2-7 新建项目汇总对话框6. 点击 Finish 后,出现如图2-8 所示的界面:图 2-8 decoder38 项目界面7.点击 File->New->VHDL File ,如图 2-9 所示。
点击 ok 封闭对话框。
图 2-9 新建 VHDL 文件窗口8.在文本编写框内键入以下程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY 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<="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 Behavior;9. 将文件保留为decoder38.vhd 后,开始编译,点击Processing->Start Compilation ,编译成功后,出现如图2-10 所示界面:图 2-10 编译成功界面10.再次新建一个 vhdl 文件,键入以下的 modelsim 测试程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY 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.将文件保留为 decoder38_tb.vhd ,编译经过。
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的短路帽全部插上。
三八译码器设计
电子信息工程学系实验报告课程名称:EDA 技术与实验实验项目名称:三八译码器设计 实验时间:2012、9、19班级: 姓名: 学号:实 验 目 的:1,熟悉ALTERA 公司EDA 设计工具软件max+plus2. 2,掌握max+plus2文本设计与其仿真。
实 验 环 境:Windows xp 、max+plus Ⅱ10等。
实 验 内 容 及 过 程:内容:1.应用max+plus Ⅱ软件,通过三八译码器设计仿真软件进行实验,熟练掌握max+plus Ⅱ软件设计流程。
过程: 1.了解和熟悉max+plus Ⅱ软件的菜单界面和命令功能。
2.设计一个三八译码器,按照流程做完从新建文件,编译,仿真,分配引脚等软件操作部分的全过程。
实 验 结 果 及 分 析:1. 新建文本型的文件并且命名如图1.1所示图1.12. 新建该文件,在该编辑窗口输入verilogHDL 语言,其编辑情况如图1.2所示。
图1.2成 绩:指导教师(签名):3. .编译工程。
运行菜单命令MAX+pulsⅡ下的Compiler,单击Start进行编译,运行如下图1.3所示图1.34.仿真节点插入。
运行MAX—plusⅡ下的Waveform Editor进入波形编辑窗口,再运行Node下的Enter Nodes form SNF,打开插入节点的对话框,点击List,在点击界面中间的“=>”,即可完成仿真如图1.4。
图1.45. 输入波形设置和波形仿真。
运行菜单命令下的Options下的Grid Size进行栅格尺寸设置。
对设置不同的时钟。
运行菜单命令下的MAX+pulsⅡ下的Simulator,打开仿真窗口,点击单击Start进行仿真,仿真器窗口如图1.5所示。
图1.56. 在MAX+puls:的界面上新建一个图形文件,输入如图1.6。
图1.67. 对图形进行保存。
8. 保存之后对其进行仿真,出现如下图一样的图形,如图1.7所示。
EDA 3-8译码器的设计
《EDA技术》课程实验报告学生姓名:**所在班级:**指导教师:** 老师记分及评价:报告满分3分得分一、实验名称实验4:3-8译码器的设计二、任务及要求【基本部分】1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成3-8译码器的设计并进行时序仿真。
2、设计完成后生成一个元件,以供更高层次的设计调用。
3、实验箱上进行验证。
【发挥部分】设计4-16译码器,完成仿真并封装成一个元件;新建原理图,调用一片74161和所设计的4-16译码器,完成具有16种花样的循环LED灯控制器的设计,并在实验箱上进行验证。
三、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decode38 isport(abc:in std_logic_vector(2 downto 0);y:out std_logic_vector(7 downto 0));end;architecture one of decode38 isbeginprocess(abc)begincase abc 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;四、仿真及结果分析五、硬件验证1、引脚锁定情况表:六、小结通过本次实验,提高了自己独立思考问题、自己动手操作的能力,让我们对QuartusII 软件的操作更加了解。
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译码器的实现(综合实验)
广东海洋大学学生实验报告书(学生用表)实验名称3-8译码器的实现(综合实验)课程名称EDA 课程号学院(系) 信息学院专业电子信息工程班级1083学生姓名蒙传剑学号200811611323 实验地点钟海楼04017 实验日期2011年4月实验八、3-8译码器的实现(综合实验)一、实验目的:学会用VHDL去实现3-8译码器的实现(综合实验)。
二、实验设备:友晶公司的DE2板。
FPGA核心芯片为EP2C35F672C6。
三、实验内容:实现功能:在DE2板上面用三个开关作为地址的输入,一个开关作为选通使能端,用LEDR中的8位作为输出(低电平有效)四. 实验程序library ieee;use ieee.std_logic_1164.all;entity xie8 isport( en:in std_logic;a: in std_logic_vector(2 downto 0);y:out std_logic_vector(7 downto 0));end xie8;architecture behavioral of xie8 isbeginprocess(en,a)beginif (en='1') thencase a iswhen "000"=> y<="11111110";when "001"=> y<="11111101";when "010"=> y<="11111011";when "011"=> y<="11110110";when "100"=> y<="11101110";when "101"=> y<="11011110";when "110"=> y<="10111110";when "111"=> y<="01111110";when others =>null;end case;GDOU-B-11-112end if;end process;end behavioral;五..实验结果:1、仿真后的RTL图如下:2、仿真的波形图如下:六、心得体会在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了解将要做的实验的有关质料,如:实验要求,实验内容,实验步骤,最重要的是要记录什么数据和怎样做数据处理,等等。
实验三 3-8译码器的设计
实验三3-8译码器的设计
一.实验目的:
1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、初步掌握VHDL语言的常用语句。
3、掌握VHDL语言的基本语句及文本输入的EDA设计方法。
二、设计要求
设计一个3—8译码器使其满足如下真值表:
1.采用原理图输入法利用门电路进行设计并实现仿真、下载。
2.利用VHDL语言输入进行设计并进行仿真。
三、预习要求:
1.熟悉3-8译码器原理
2.根据原理绘制原理图。
3.初步写出VHDL语言程序。
四、实验记录
1.原理图及源程序。
2.仿真波形。
(两种方法)
3.延时分析。
(两种方法)。
初识EDA--3三八译码器(上)
双击OK按钮,完成设置,回到图5-25所示的Insert Node or Bus对话框,双击OK按钮,所有的输入、输出端口将会在端口名 列表区内显示出来,如图5-27所示。
5-27 在波形编辑器中加入端口
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在如图
5-11 保存设计文件对话框
3、对设计文件进行编译 QUARTUSII编译器窗口包含了对设计文件处理的全过程。在
QUARTUSII软件中选择Tool>Compiler Tool菜单项,则出现 QUARTUSII的编译器窗口,如图5-12所示,图中标明了全编译过 程各个模块的功能。
5-12 QUARTUSII编译器窗口
实验步骤
下面将通过这个实验,向读者介绍QUARTUSII的项目文件的生 成、编译、管脚分配以及时序仿真等的操作过程。
1、建立工程文件
1)选择开始>程序>Altera>QuartusII5.1,运行QUARTUSII软 件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件, 出现如图5-1所示,如果是第一次打开QUARTUSII软件可能会有 其它的提示信息,使用者可以根据自己的实际情况进行设定后进入 图5-1所示界面。
5-13 全编译成功界面
4、对设计文件进行仿真
1)创建一个仿真波形文件,选择QUARTUSII软件File>New,进行新建文件 对话框。如图5-23所示。选取对话框的Other File标签页,从中选取Vector Waveform File,点击OK按钮,则打开了一个空的波形编辑器窗口,如图5-24 所示,并对该文件进行保存,保存方式参见图5-11。
5-9 Symbol对话框
3-8译码器设计
致谢
经过了不长但是非常有意义的时间,本次课程设计划下了完美的句号。在这些天有老师谆谆的教导,有同学的帮助,有自己的辛苦等等掺杂其中,而在最终结束之后不禁感慨万分。在此首先要深深的感谢老师在百忙之中对我们不厌其烦的指导和传授,没有您的辛勤劳动便没有我们最终的成果。其次要感谢互相帮助还有互相鼓励的同学,没有你们便没有这些天美好的回忆。最后对支持我们进行本次设计并提供场地的学校表示感谢。
这些天的努力对我的感触极大,相信我会把这些收获化为自己可以用到的知识和能力,应用到以后的学习生活中。
参考文献
[1].陈利永.数字电路与逻辑设计.中国铁道出版社,2011.6:
[2]. 潘松,《EDA实用教程》,科学出版社,2004年
[3].刘江海.《EDA技术课程设计》.华中科技大学出版社,2009.5
之后,可以在这个波形的基础上,进行改动。比如可以将低电平改成高电平,并观察波形图的变化,如图所示。
图2-16 改动
图2-17 改动
3-8译码器设计,基本形成,还可以进行其他的调试。
图2-17
第三章总结
通过理论与实践的结合,进一步深入的体会到一种学习的方法,特别是对与电子设计方面。首先要明确总体的设计方案与方法;其次是对各个部分进行设计与改进;最后将各个部分整合在一起进行比较、观察。
Use of EDA tools, electronic designers from concept, algorithms, protocols, etc. began to design electronic systems, a lot of work can be completed by computer and electronic products can be from the circuit design, performance analysis to the entire process of IC layout design or layout of the PCB automatic processing is completed on the computer. In various fields including machinery, electronics, communications, aerospace, chemical, mineral, biological, medical, military, etc., have EDA applications.
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三八译码器(下)
5-14
进入引脚分配界面
首先将要分配管脚的信号放置在To下方。双击To下方的 《New》,如图5-14所示则会出现如图5-15所示界面。
5-15
信号选择对话框
选择Node Finder…进入如图5-16所示的Node Finder对话框界面。 按图5-16中样例设置参数。在Filter窗口选择Pins:all,在Named窗 口中输入“*”,点击List在Nodes Found窗口出现所有信号的名称, 点击中间的 按钮则Selected Nodes窗口下方出现被选择的端口 名称。
5)如果软件已运行一个工程,则在打开编程器的时候,编程器 窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加 载其它文件可以从其它地方进行添加更改。选好加载文件后,再点 选Progam/Configure,编程模式选取JTAG模式,点击STRAT进 行文件加载,直到加载进度变为100%,文件成功加载完成。 6)手动控制实验箱上的K1、K2、K3即可观察到实验结果
步骤一:在Assignment Name栏内双击后,在下拉菜单中选中Location (Accepts wildcards/groups)选项
步骤二:在Value栏下填入实验箱管脚121,注意各实验箱对应的管脚也不同, 也可选择该实验箱上其他任意不同的管脚
步骤三:管脚填写完毕后,字体颜色自动变黑,则填写正确 5-18 给A端口进行管脚分配
器件EP1C6Q240C8进行加载的方法。
在程序加载之前,注意,一定要先完成管脚的分配和 定义,然后将管脚分配的文件保存,让 图标上方的*消失后,再进行编译,编译正确无误之后, 才可以进行程序下载!
1)将实验箱插上电源插头。 2)使用USB下载电缆插入USB-Blaster端口中,用手轻轻握住 USB-Blaster 连接盒,注意在没有下载完成前不要轻易放下,以免 连接盒磕碰后造成USB指示灯熄灭。观察连接盒上中间的USB指示 灯点亮后,则可进入到下一步设置。若不亮则需要重新拔出下载电 缆,再重新操作,直至USB指示灯点亮。 3)选择QUARTUSII软件的Tool>Programmer命令,弹出编 程器窗口,无论图中的No Hardware项,是否曾经设置,都需要 对其进行重新设置,如图5-32所示。
EDA三八译码器程序
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clk_div isport(clk:in std_logic;clk_div:out std_logic);end clk_div;architecture rt1 of clk_div issignal q_temp:integer range 0 to 5999999;beginprocess(clk)beginif(clk'event and clk='1') thenif(q_temp=5999999) thenq_temp<=0;elseq_temp<=q_temp+1;end if;end if;end process;process(clk)beginif(clk'event and clk='1') thenif(q_temp=5999999) thenclk_div<='1';elseclk_div<='0';end if;end if;end process;end rt1;library ieee;use ieee.std_logic_1164.all;entity seg7 isport(q: in std_logic_vector(3 downto 0);segment: out std_logic_vector(0 to 7));end seg7;architecture rt1 of seg7 isbeginprocess(q)begincase q iswhen "0000"=> segment <="11000000";when "0001"=> segment <="11111001";when "0010"=> segment <="10100100";when "0011"=> segment <="10110000";when "0100"=> segment <="10011001";when "0101"=> segment <="10010010";when "0110"=> segment <="10000010";when "0111"=> segment <="11011000";when "1000"=> segment <="10000000";when "1001"=> segment <="10010000";when others=> segment <="XXXXXXXX";end case;end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count3081 isport(enable:in std_logic;clk0:in std_logic;q1:out std_logic_vector(3 downto 0);q2:out std_logic_vector(3 downto 0);q3:out std_logic_vector(3 downto 0);q4:out std_logic_vector(3 downto 0));end count3081;architecture rt1 of count3081 issignal q1_temp,q2_temp,q3_temp,q4_temp:std_logic_vector(3 downto 0);beginprocess(clk0)beginif(clk0'event and clk0='1')thenif(enable='1')thenif(q4_temp="0011" and q3_temp="0000" and q2_temp="1000" and q1_temp="0001") thenq1_temp<="0000";q2_temp<="0000";q3_temp<="0000";q4_temp<="0000";elseif(q1_temp="1001")thenq1_temp<="0000";q2_temp<=q2_temp+1;elseq1_temp<=q1_temp+1;if(q2_temp="1001")thenq2_temp<="0000";q3_temp<=q3_temp+1;elseq2_temp<=q2_temp+1;if(q3_temp="1001")thenq3_temp<="0000";q4_temp<=q4_temp+1;elseq3_temp<=q3_temp+1;if(q4_temp="0011")thenq4_temp<="0000";end if;end if;end if;end if;end if;end if;end if;q1<=q1_temp;q2<=q2_temp;q3<=q3_temp;q4<=q4_temp;end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ch30 isport(clk:in std_logic;enable:in std_logic;segment1:out std_logic_vector(0 to 7);segment2:out std_logic_vector(0 to 7);segment3:out std_logic_vector(0 to 7);segment4:out std_logic_vector(0 to 7));end ch30;architecture rt1 of ch30 iscomponent clk_divport(clk:in std_logic;clk_div:out std_logic);end component;component count3081port(enable:in std_logic;clk0:in std_logic;q1:out std_logic_vector(3 downto 0);q2:out std_logic_vector(3 downto 0);q3:out std_logic_vector(3 downto 0);q4:out std_logic_vector(3 downto 0));end component;component seg7port(q: in std_logic_vector(3 downto 0); segment: out std_logic_vector(0 to 7));end component;signal x:std_logic;signal q1:std_logic_vector(3 downto 0);signal q2:std_logic_vector(3 downto 0);signal q3:std_logic_vector(3 downto 0);signal q4:std_logic_vector(3 downto 0);beginU0:clk_div port map(clk,x);U1:count3081 port map(enable,x,q1,q2,q3,q4);U2:seg7 port map(q1,segment1);U3:seg7 port map(q2,segment2);U4:seg7 port map(q3,segment3);U5:seg7 port map(q4,segment4);end;。
EDA三八译码器程序
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clk_div isport(clk:in std_logic;clk_div:out std_logic);end clk_div;architecture rt1 of clk_div issignal q_temp:integer range 0 to 5999999;beginprocess(clk)beginif(clk'event and clk='1') thenif(q_temp=5999999) thenq_temp<=0;elseq_temp<=q_temp+1;end if;end if;end process;process(clk)beginif(clk'event and clk='1') thenif(q_temp=5999999) thenclk_div<='1';elseclk_div<='0';end if;end if;end process;end rt1;library ieee;use ieee.std_logic_1164.all;entity seg7 isport(q: in std_logic_vector(3 downto 0);segment: out std_logic_vector(0 to 7));end seg7;architecture rt1 of seg7 isbeginprocess(q)begincase q iswhen "0000"=> segment <="11000000";when "0001"=> segment <="11111001";when "0010"=> segment <="10100100";when "0011"=> segment <="10110000";when "0100"=> segment <="10011001";when "0101"=> segment <="10010010";when "0110"=> segment <="10000010";when "0111"=> segment <="11011000";when "1000"=> segment <="10000000";when "1001"=> segment <="10010000";when others=> segment <="XXXXXXXX";end case;end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count3081 isport(enable:in std_logic;clk0:in std_logic;q1:out std_logic_vector(3 downto 0);q2:out std_logic_vector(3 downto 0);q3:out std_logic_vector(3 downto 0);q4:out std_logic_vector(3 downto 0));end count3081;architecture rt1 of count3081 issignal q1_temp,q2_temp,q3_temp,q4_temp:std_logic_vector(3 downto 0);beginprocess(clk0)beginif(clk0'event and clk0='1')thenif(enable='1')thenif(q4_temp="0011" and q3_temp="0000" and q2_temp="1000" and q1_temp="0001") thenq1_temp<="0000";q2_temp<="0000";q3_temp<="0000";q4_temp<="0000";elseif(q1_temp="1001")thenq1_temp<="0000";q2_temp<=q2_temp+1;elseq1_temp<=q1_temp+1;if(q2_temp="1001")thenq2_temp<="0000";q3_temp<=q3_temp+1;elseq2_temp<=q2_temp+1;if(q3_temp="1001")thenq3_temp<="0000";q4_temp<=q4_temp+1;elseq3_temp<=q3_temp+1;if(q4_temp="0011")thenq4_temp<="0000";end if;end if;end if;end if;end if;end if;end if;q1<=q1_temp;q2<=q2_temp;q3<=q3_temp;q4<=q4_temp;end process;end rt1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ch30 isport(clk:in std_logic;enable:in std_logic;segment1:out std_logic_vector(0 to 7);segment2:out std_logic_vector(0 to 7);segment3:out std_logic_vector(0 to 7);segment4:out std_logic_vector(0 to 7));end ch30;architecture rt1 of ch30 iscomponent clk_divport(clk:in std_logic;clk_div:out std_logic);end component;component count3081port(enable:in std_logic;clk0:in std_logic;q1:out std_logic_vector(3 downto 0);q2:out std_logic_vector(3 downto 0);q3:out std_logic_vector(3 downto 0);q4:out std_logic_vector(3 downto 0));end component;component seg7port(q: in std_logic_vector(3 downto 0); segment: out std_logic_vector(0 to 7));end component;signal x:std_logic;signal q1:std_logic_vector(3 downto 0);signal q2:std_logic_vector(3 downto 0);signal q3:std_logic_vector(3 downto 0);signal q4:std_logic_vector(3 downto 0);beginU0:clk_div port map(clk,x);U1:count3081 port map(enable,x,q1,q2,q3,q4);U2:seg7 port map(q1,segment1);U3:seg7 port map(q2,segment2);U4:seg7 port map(q3,segment3);U5:seg7 port map(q4,segment4);end;。
EDA设计38译码器
班级:通信13-3班姓名:王亚飞学号:1306030318 指导教师:成绩:电子与信息工程学院信息与通信工程系摘要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实验背景2.1 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实验报告3-8译码器
3-8译码器实验报告实验题目:EDA软件QuartusII 5.1的使用。
一、实验目的与要求: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;四、实验仿真波形截图实验原理图:仿真波形图:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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语言的特点
VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。
除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。
VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(VHDL)的基本特征。
VHDL的主要特点如下:
1.与其他的硬件描述语言先比,VHDL语言描述能力更强,从而决定了它成为系统设计领域最佳的硬件描述语言。
2. VHDL语言技术完备,具有丰富的仿真语句和库函数,而且还支持同步电路。
异步电路和其他电路的设计
3. VHDL语言方法灵活,对设计的秒东湖具有相对独立性
4. VHDL语言支持广泛。
3 3-8译码器简介
3-8译码器
3线-8线译码器是能实现译码功能的电路,常用的二进制集成译码器,二进制译码器是将输入的二进制代码转换成相对应的输入信号,它也是全译码器。
3-8译码器属于通用译码器,多用于计算机中的变量译码、地址译码及代码变换等
3-8译码器工作原理
对于3线-8线译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。
例如:对于二进制代码111来说,输出为。
由于3线-8线译码器只需要输入3根线即可输出8种不同的状态,对信息的译码有很大的好处,所以在硬件电路中占有较重要的地位,实验中也经常用到。
图3-2 逻辑图
无论从逻辑图还是功能表我们都可以看到3-8译码器的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。
如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。
3-8译码器的作用
当附加控制门的输出为高电平(S=1)时,可由逻辑图写出:
由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。
3-8译码器有三个附加的控制端、和。
当、时,输出为高电平(S=1),译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁在高电平,如表1所示。
这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。
带控制输入端的译码器又是一个完整的数据分配器。
电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。
这就不难理解为什么把叫做地址输入了。
例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。
4设计思路与程序
根据查找的关于3-8译码器的资料了解到3-8译码器的工作原理与真值表,来编写程序,3-8译码器有3个输入和8个输出,所以可以指定当输入为:111时,译码后为指定的状态,即输出00000001,紧接着依次类推,当输入为:110时,输出01111111,当输入为101时,输出,当输入为100时,输出,输入011时,输出为,输入为010时,输出,输入为001时,输出,输入为000时,输出为。
调用库函数,定义实体,定义端口,不难设计出程序:
LIBRARY IEEE;
USE SA IS
PORT(
D:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
S0,S1,S2:IN STD_LOGIC;
Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ;
ARCHITECTURE XIANI OF SA IS
BEGIN
PROCESS(D,S0,S1,S2)
BEGIN
IF (S0='0')THEN Y<="";
ELSIF(S0='1' AND S1='0' AND S2='0')THEN
IF (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<="";
ELSIF (D(2)='0' AND D(1)='1' AND D(0)='0')THEN Y<="";
ELSIF (D(2)='0' AND D(1)='1' AND D(0)='1')THEN Y<=""; ELSIF (D(2)='1' AND D(1)='0' AND D(0)='0')THEN Y<=""; ELSIF (D(2)='1' AND D(1)='0' AND D(0)='1')THEN Y<=""; ELSIF (D(2)='1' AND D(1)='1' AND D(0)='0')THEN Y<=""; ELSIF (D(2)='1' AND D(1)='1' AND D(0)='1')THEN Y<="";
ELSE Y<="ZZZZZZZZ";
END IF;
ELSE Y<="ZZZZZZZZ";
END IF;
END PROCESS;
END;
5系统仿真
通过仿真得到仿真波形图如下
图5-1 仿真波形
图5-2 仿真波形
图5-3 实验结果
图5-3 实验结果
6总结与体会
在这个课程设计中,使我又了解到了一种语言,使我对本来很陌生的EDA 有了进一步的了解。
课设刚开始的两天里,我们在图书馆及相关网站上查阅了大量关于3-8译码器资料,之后我们就开始编程及仿真。
在这两周我顺利完成了3-8译码器的设计,通过本次设计使我对使用VHDL语言进行编程及Quarter II的使用有了更深一步的了解。
使用与非门设计电路对应延时比使用程序对应延时时间短,原因是程序的每步执行都需要一定的时间,其时间比调用库中的与非门所需时间长。
使用VHDL语言,设计描述与硬件无关,具有强大的硬件描述能力,设计方式多种多样。