EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)
EDA课程设计报告--四位加法器设计

《EDA》课程设计题目:四位加法器设计学号: 200906024245姓名:梁晓群班级:机自094指导老师:韩晓燕2011年12月28日—2011年12月30日目录摘要----------------------------------3EDA简介---------------------------3概述----------------------------------4 1.1目的与要求-------------------4 1.2实验前预习-------------------41.3设计环境----------------------5四位全加器的设计过程----------52.1 半加器的设计-----------------62.2一位全加器的设计-----------92.3四位全加器的设计----------11收获与心得体会----------------13摘要本文主要介绍了关于EDA技术的基本概念及应用,EDA设计使用的软件Quartus7.2的基本操作及使用方法,以及半加器、1位全加器和四位全加器的设计及仿真过程。
EDA简介EDA的概念EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。
EDA实验报告

一、实验内容使用封装的标准74LS 器件基本电路设计一个四选一数据选择器。
二、实验设计S A B OUT 1 / / 1 0 0 0 C0 0 0 1 C1 0 1 0 C2 011C3三、实验内容按照分析的结果表格,计算出四选一数据选择器的逻辑函数 OUT=]''''['3210ABC C AB BC A C B A S ++++ 按照上述逻辑函数,连接下图逻辑图,即可达到功能。
1、使用文本设计方式完成一个四位二进制比较器2、使用文本设计方式完成一个四位二进制加法器三、四位二进制比较器的设计实验1、四位二进制比较器的功能要求四位二进制比较器的基本输入输出模式如右图其中,输入为两个四位二进制数字a,b,3为高位,0为低位。
要求当a>b时,bt代表的灯亮(值为1),a<b时,st代表的灯亮,a=b时,eq代表的灯亮。
a b bt eq st1 0 1 0 00 0 0 1 00 1 0 0 13、代码设计library ieee;use ieee.std_logic_1164.all; /*程序头文件*/entity Exp_2 is /*定义此项目的输入与输出及其格式*/ port(a:in std_logic_vector(3 downto 0); /*定义了两个包含4个变量的变量组*/ b:in std_logic_vector(3 downto 0);bt,st,eq:out std_logic);end Exp_2;architecture behave of Exp_2 isbeginp1:process(a,b) /*程序正文*/begin /*分别指定三种情况下对输出的不同赋值*/ if (a>b)then bt<='1';eq<='0';st<='0';elsif (a<b)then bt<='0';eq<='0';st<='1';elsif (a=b)then bt<='0';eq<='1';st<='0';end if;end process p1;end behave;5、功能仿真首先我们设计需要使用的仿真波形,下图即为我设计的输入波形。
计数器eda实验报告

计数器eda实验报告计数器EDA实验报告引言:计数器是数字电路中常见的基本模块之一,用于计算和记录输入脉冲信号的数量。
在本次实验中,我们将使用EDA工具对计数器进行设计和分析。
通过对计数器的EDA实验,我们旨在深入了解计数器的工作原理和性能特点。
一、实验目的本次实验的目的是通过EDA工具对计数器进行设计和分析,具体包括以下几个方面:1. 了解计数器的基本原理和工作方式;2. 学习使用EDA工具进行电路设计和仿真;3. 分析计数器的性能指标,如最大计数值、计数速度等。
二、实验步骤1. 设计计数器的电路原理图;2. 使用EDA工具进行电路仿真;3. 分析仿真结果,包括计数器的计数规律、计数速度等;4. 调整计数器的参数,观察对计数结果的影响;5. 总结实验结果并提出改进意见。
三、计数器的设计原理计数器是由触发器和逻辑门组成的电路,可以实现对输入脉冲信号的计数功能。
常见的计数器包括二进制计数器、十进制计数器等。
在本次实验中,我们将设计一个4位二进制计数器。
四、EDA工具的使用我们选择使用Xilinx ISE Design Suite进行电路设计和仿真。
该工具具有强大的功能和易于使用的界面,方便我们进行计数器的设计和分析。
五、仿真结果分析通过对计数器的仿真结果进行分析,我们可以得到以下结论:1. 计数器的计数规律:根据计数器的设计原理,我们可以观察到计数器的计数规律为二进制递增。
2. 计数器的计数速度:计数器的计数速度取决于输入脉冲信号的频率和计数器的时钟频率。
通过适当调整时钟频率,我们可以实现不同速度的计数。
六、参数调整与性能改进在实验过程中,我们可以通过调整计数器的参数来改进其性能。
例如,我们可以增加计数器的位数,以提高其计数范围;或者调整计数器的时钟频率,以改变其计数速度。
通过不断优化和改进,我们可以得到更加高效和灵活的计数器设计。
七、实验总结通过本次计数器EDA实验,我们深入了解了计数器的工作原理和性能特点,并学会了使用EDA工具进行电路设计和仿真。
EDA实验报告

实验一:QUARTUS II 软件使用及组合电路设计仿真实验目得:学习QUARTUS II 软件得使用,掌握软件工程得建立,VHDL源文件得设计与波形仿真等基本内容。
实验内容:1.四选一多路选择器得设计基本功能及原理:选择器常用于信号得切换,四选一选择器常用于信号得切换,四选一选择器可以用于4路信号得切换。
四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)与s(1)及一个信号输出端y。
当s输入不同得选择信号时,就可以使a,b,c,d中某一个相应得输入信号与输出y端接通。
逻辑符号如下:程序设计:软件编译:在编辑器中输入并保存了以上四选一选择器得VHDL源程序后就可以对它进行编译了,编译得最终目得就是为了生成可以进行仿真、定时分析及下载到可编程器件得相关文件。
仿真分析:仿真结果如下图所示分析:由仿真图可以得到以下结论:当s=0(00)时y=a;当s=1(01)时y=b;当 s=2(10)时y=c;当s=3(11)时y=d。
符合我们最开始设想得功能设计,这说明源程序正确。
2.七段译码器程序设计基本功能及原理:七段译码器就是用来显示数字得,7段数码就是纯组合电路,通常得小规模专用IC,如74或4000系列得器件只能作十进制BCD码译码,然而数字系统中得数据处理与运算都就是2进制得,所以输出表达都就是16进制得,为了满足16进制数得译码显示,最方便得方法就就是利用VHDL译码程序在FPGA或CPLD中实现。
本项实验很容易实现这一目得。
输出信号得7位分别接到数码管得7个段,本实验中用得数码管为共阳极得,接有低电平得段发亮。
数码管得图形如下七段译码器得逻辑符号:程序设计:软件编译:在编辑器中输入并保存了以上七段译码器得VHDL源程序后就可以对它进行编译了,编译得最终目得就是为了生成可以进行仿真、定时分析及下载到可编程器件得相关文件。
仿真分析:仿真结果如下图所示:分析:由仿真得结果可以得到以下结论:当a=0(0000)时led7=1000000 此时数码管显示0;当a=1(0001)时led7=1111001 此时数码管显示1;当a=2(0010)时led7=0100100此时数码管显示2;当a=3(0011)时led7=0110000此时数码管显示3;当a=4(0100)时led7=0011001此时数码管显示4; 当a=5(0101)时led7=0010010此时数码管显示5; 当a=6(0110)时led7=0000010此时数码管显示6;当a=7(0111)时led7=1111000 此时数码管显示7; 当a=8(1000)时led7=0000000 此时数码管显示8; 当a=9(1001)时led7=0010000 此时数码管显示9;当a=10(1010)时led7=0001000 此时数码管显示A;当a=11(1011)时led7=0000011 此时数码管显示B;当a=12(1100)时led7=1000110 此时数码管显示C;当a=13(1101)时led7=0100001此时数码管显示D;当a=14(1110)时led7=0000110此时数码管显示E;当a=15(1111)时led7=0001110 此时数码管显示F;这完全符合我们最开始得功能设计,所以可以说明源VHDL程序就是正确得。
EDA实验报告

实验一:QUARTUS II 软件使用及组合电路设计仿真页脚内容1实验目的:学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。
实验内容:1.四选一多路选择器的设计基本功能及原理:选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。
四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。
当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。
逻辑符号如下:页脚内容2程序设计:软件编译:在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示页脚内容3分析:由仿真图可以得到以下结论:当s=0(00)时y=a;当s=1(01)时y=b;当s=2(10)时y=c;当s=3(11)时y=d。
符合我们最开始设想的功能设计,这说明源程序正确。
2.七段译码器程序设计基本功能及原理:七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD 中实现。
本项实验很容易实现这一目的。
输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。
数码管的图形如下页脚内容4七段译码器的逻辑符号:程序设计:页脚内容5软件编译:在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示:页脚内容6分析:由仿真的结果可以得到以下结论:当a=0(0000)时led7=1000000 此时数码管显示0;当a=1(0001)时led7=1111001 此时数码管显示1;当a=2(0010)时led7=0100100 此时数码管显示2;当a=3(0011)时led7=0110000 此时数码管显示3;当a=4(0100)时led7=0011001 此时数码管显示4;当a=5(0101)时led7=0010010 此时数码管显示5;当a=6(0110)时led7=0000010 此时数码管显示6;当a=7(0111)时led7=1111000 此时数码管显示7;当a=8(1000)时led7=0000000 此时数码管显示8;页脚内容7当a=9(1001)时led7=0010000 此时数码管显示9;当a=10(1010)时led7=0001000 此时数码管显示A;当a=11(1011)时led7=0000011 此时数码管显示B;当a=12(1100)时led7=1000110 此时数码管显示C;当a=13(1101)时led7=0100001 此时数码管显示D;当a=14(1110)时led7=0000110 此时数码管显示E;当a=15(1111)时led7=0001110 此时数码管显示F;这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。
EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)EDA实验报告实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。
2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。
4.学习实验开发系统的使用方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。
实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。
例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。
学会管脚锁定以及编程下载的方法等。
四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。
五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M(A=B ),G (A>B )和L (A<B )(如图所示)。
用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
eda计数器的实验报告

eda计数器的实验报告EDA计数器的实验报告引言:计数器是数字电路中常用的组合逻辑电路,用于实现对输入信号的计数功能。
EDA计数器是一种基于EDA(Electronic Design Automation,电子设计自动化)技术的计数器,利用EDA工具进行设计和仿真,能够更加高效地完成计数任务。
本实验旨在通过设计和实现EDA计数器,探索其原理和应用。
一、实验目的本实验的目的是通过设计和实现EDA计数器,深入理解计数器的工作原理,并掌握EDA技术在数字电路设计中的应用。
通过实验,我们将学习以下内容:1. 计数器的基本原理和分类;2. EDA工具的使用方法;3. 数字电路的设计与仿真。
二、实验步骤1. 确定计数器的功能要求:根据实验要求,我们需要设计一个4位二进制计数器,能够实现从0000到1111的计数功能。
2. 使用EDA工具进行设计:选择合适的EDA工具(如Verilog、VHDL等),根据计数器的功能要求,编写相应的代码。
3. 进行仿真:利用EDA工具提供的仿真功能,对设计的计数器进行仿真,验证其正确性和稳定性。
4. 进行综合和布局布线:将设计的计数器进行综合和布局布线,生成对应的逻辑网表和物理布局。
5. 进行时序分析和时序优化:对设计的计数器进行时序分析,优化其时序性能,确保其能够满足实际应用需求。
6. 进行静态和动态功耗分析:对设计的计数器进行静态和动态功耗分析,评估其功耗性能,并进行相应的优化。
三、实验结果与分析经过以上步骤的设计和优化,我们成功实现了一个4位二进制计数器。
通过EDA工具的仿真功能,我们验证了计数器的正确性和稳定性。
在时序分析和时序优化过程中,我们发现了一些潜在的时序问题,并进行了相应的优化,确保了计数器的正常工作。
在静态和动态功耗分析中,我们评估了计数器的功耗性能,并进行了一些优化措施,减少了功耗。
四、实验总结通过本次实验,我们深入学习了计数器的原理和分类,并掌握了EDA技术在数字电路设计中的应用。
eda仿真实验报告

eda仿真实验报告EDA仿真实验报告一、引言EDA(Electronic Design Automation)是电子设计自动化的缩写,是指利用计算机技术对电子设计进行辅助、自动化的过程。
在现代电子设计中,EDA仿真是不可或缺的一环,它可以帮助工程师验证电路设计的正确性、性能和可靠性。
本篇报告将介绍我在EDA仿真实验中的经验和收获。
二、实验背景本次实验的目标是对一个数字电路进行仿真,该电路是一个4位加法器,用于将两个4位二进制数相加。
通过仿真,我们可以验证电路设计的正确性,并观察其在不同输入情况下的输出结果。
三、实验步骤1. 电路设计:首先,我们根据给定的要求和电路原理图进行电路设计。
在设计过程中,我们需要考虑电路的逻辑关系、时序要求以及输入输出端口的定义等。
2. 仿真环境搭建:接下来,我们需要选择合适的EDA仿真工具,并搭建仿真环境。
在本次实验中,我选择了Xilinx ISE Design Suite作为仿真工具,并创建了一个仿真项目。
3. 仿真测试向量生成:为了对电路进行全面的测试,我们需要生成一组合适的仿真测试向量。
这些测试向量应该覆盖了电路的所有可能输入情况,以验证电路的正确性。
4. 仿真运行:在仿真环境搭建完成后,我们可以开始进行仿真运行了。
通过加载测试向量,并观察仿真结果,我们可以判断电路在不同输入情况下的输出是否符合预期。
5. 仿真结果分析:仿真运行结束后,我们需要对仿真结果进行分析。
通过对比仿真输出和预期结果,可以判断电路设计的正确性。
如果有不符合预期的情况,我们还可以通过仿真波形分析,找出问题所在。
四、实验结果与讨论在本次实验中,我成功完成了4位加法器的仿真。
通过对比仿真输出和预期结果,我发现电路设计的正确性得到了验证。
无论是正常情况下的加法运算,还是特殊情况下的进位和溢出,电路都能够正确地输出结果。
在实验过程中,我还发现了一些有趣的现象。
例如,在输入两个相同的4位二进制数时,电路的输出结果与输入完全一致。
EDA实验报告含结果图

EDA电子课程实验报告专业:班级:姓名:学号:实验一四人表决器一实验目的1、熟悉Quartus II软件的使用。
2、熟悉EDA-IV实验箱。
3、熟悉EDA开发的基本流程。
二硬件需求1、RC-EDA-IV型实验箱一台;2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;3、PC机一台。
三实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。
实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
四实验内容VHDL程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity EXP3 isport(k1,K2,K3,K4 : in std_logic;ledag : out std_logic_vector(3 downto 0);m_Result : out std_logic);end EXP3;--------------------------------------------------------------------architecture behave of EXP3 issignal K_Num : std_logic_vector(2 downto 0); signal K1_Num,K2_Num: std_logic_vector(2 downto 0); signal K3_Num,K4_Num: std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4)beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num;end process;process(K_Num) beginif(K_Num>2) thenm_Result<='1';elsem_Result<='0';end if;end process;end behave;实验电路实验二格雷码转换一实验目的1、了解格雷码变换的原理。
EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器实验一、实验目的本实验旨在通过EDA(Electronic Design Automation)技术,利用4选1多路选择器实现数据选择功能,加深对数字电路设计基础知识的理解,掌握EDA技术的实际应用。
二、实验原理4选1多路选择器是一种数字逻辑电路,它有4个数据输入端,1个数据输出端和2个选择端。
通过控制选择端的状态,可以选择其中一个数据输入端的数据输出到输出端。
三、实验步骤1.实验准备在实验前,需要准备以下设备和软件:•数字逻辑实验箱•EDA软件(如Quartus II)•连接线若干•万用表•实验电路板•4选1多路选择器芯片(如74LS153)•发光二极管及限流电阻(用于显示输出结果)2.实验操作(1)将4选1多路选择器芯片连接到实验电路板上,并按照要求连接发光二极管及限流电阻。
(2)使用EDA软件创建新项目,并选择合适的FPGA芯片型号。
(3)在新项目中添加4选1多路选择器模块,并将其与FPGA芯片连接。
(4)根据实验要求,编写控制逻辑的VHDL或Verilog代码。
(5)将控制逻辑代码编译并下载到FPGA芯片中。
(6)使用万用表检查连接是否正确,发光二极管是否亮起。
(7)通过改变选择端的输入状态,观察发光二极管亮灭情况,验证4选1多路选择器的数据选择功能。
四、实验结果与分析通过本次实验,我们成功地利用4选1多路选择器实现了数据选择功能。
在EDA软件中,我们设计了合适的控制逻辑,将选择的输入数据传送到输出端,并通过发光二极管显示输出结果。
当改变选择端的输入状态时,观察到发光二极管的亮灭情况随之改变,证明了4选1多路选择器的数据选择功能。
通过本次实验,我们深入了解了数字电路设计的基本知识,掌握了EDA技术在实践中的应用。
通过使用EDA软件进行设计、编译和下载程序,我们能够更加便捷地进行数字电路实验。
此外,通过实际操作,我们学会了使用数字逻辑实验箱、万用表等实验设备,提高了实践操作能力。
EDA技术4选1多路选择器实验报告

EDA技术4选1多路选择器实验报告实验报告:EDA技术4选1多路选择器1.引言多路选择器是一种常见的组合电路,用于从多个输入信号中选择出一个输出信号。
在数字电路设计中,采用EDA(Electronic Design Automation)技术可以方便地进行多路选择器的设计、模拟和验证。
本实验旨在使用EDA技术设计、模拟和验证一个4选1多路选择器。
2.设计本实验采用Verilog HDL语言进行设计。
首先,我们定义一个4位的输入端口sel,用于选择4个输入信号in0、in1、in2和in3中的一个。
然后,我们定义一个输出端口out,用于输出被选择的信号。
接下来是设计的核心部分,根据4位选择信号sel的不同取值,选择相应的输入信号作为输出信号。
我们使用一个case语句来实现多路选择器的选择功能。
3.仿真为了验证设计的正确性,我们使用EDA技术对多路选择器进行了仿真。
在仿真中,我们可以输入不同的选择信号和输入信号组合,观察输出结果是否符合预期。
通过仿真,我们可以验证多路选择器在不同输入和选择信号组合下的正确性和稳定性。
如果输出结果与预期一致,那么我们可以得出结论:设计的多路选择器是正确的。
4.验证验证是设计过程中非常重要的一步,通过验证可以判断设计是否达到了预期的功能和性能要求。
我们使用EDA技术对多路选择器进行了验证。
在验证过程中,我们更加注重多路选择器的性能指标,如延迟和功耗等。
我们可以通过模拟分析和优化来改进多路选择器的性能。
5.总结本实验通过使用EDA技术设计、模拟和验证了一个4选1多路选择器。
通过实验我们学习了EDA技术在数字电路设计中的作用和应用。
同时,我们了解了多路选择器的基本原理和设计方法,掌握了Verilog HDL语言的设计和仿真技巧。
通过本实验,我们发现EDA技术能够极大地提高数字电路设计的效率和准确性。
通过合理应用EDA技术,我们可以设计出更加可靠、高效的数字电路,并且可以方便地对其进行仿真和验证。
EDA实验报告(四位全加器的实现)

实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。
2、用VHDL语言实现4位全加器,必须使用元件例化。
3、仿真并通过。
3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。
图1-1(2)将设计好的一位全加器进行例化,操作为file→Create/Update→Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。
(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。
编辑好后保存文件,在文件列表里找到该文件,右键→Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。
图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。
若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。
2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;n3:=Ci AND n2;Co<=n3 OR n1;S<=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder 一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0);S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0));u2:adder port map(A(1),B(1),c1,c2,S(1));u3:adder port map(A(2),B(2),c2,c3,S(2));u4:adder port map(A(3),B(3),c3,Co,S(3));end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。
EDA总结报告

桂林航天工业学院实验报告课程名称开课学期实验室班级姓名实验名称EDA总结报告经过半个学期的学习,我们队EDA这门课早已经有了一定的了解,后半个学期我们主要是在老师的指导下做EDA课程的实验。
在一个个实验中我们不断对实验内容加深了解,也对从书本上学到的理论知识有了更深的认识。
下面我来对这半个学期来所做过的实验做一个总结。
我们做一个实验首先要了解清楚我们要做什么东西,然后我们要在纸张中设计出来,最后才能上机做这个实验。
比如说我们做一个半加器或者一个全加器,首先我们要在纸张上画出大概的原理,a,b输入,y输出应该如何连接,最后我们才上机去画出这个半加器,上机画出原理图后保存后。
而全加器要用到半加器的,我们要完成半加器,把它导出一个元件,作为全加器的一个部件,我们又应该如何连接全加器,我们也应该在纸上大概画出轮廓才再上机去完成。
回想起我们做过的EDA实验有,一些电路仿真,半加器,全加器,计数器,多路选择器,分频器,动态扫描,六、十位进制程序等,下面我来大概说说EDA上机时候的操作流程。
首先我们要先新建一个工程,如图一。
这个工程的目录必须要是英文的或者是开头是英文后面数字,可以有下横杠,但是不能有中文,毕竟我们用的是英文的软件,如果我们用中文的话会造成编译不出来等问题。
除了来目录,我们建立工程的名也必须是英文的。
输入工程名后我们就可以选择芯片的型号了,这是老师给出的,这个我们使用的开发板有关,你用的是什么开发板,就应该选着合适的芯片,如图二。
主要的就是这两个地方选择,再两个下一步后我们完成了一个工程的创建。
像半加器,全加器这样不用编程的实验,我们就直接在新建中新建一个画原理图的文件,图的半加器画出来,保存文件在对应的工程目录下,设置保存的原理图为底层。
这些都准备好之后我们就可以编译了,看看有没有那个地方错误的,如果有错误的话软件会报错,我们可以根据错误报告来修改我们存在的错误。
等到所有问题,错误都找到,编译成功,如图四所示。
EDA技术4选1多路选择器实验报告

0
0
A
0
1
B
1
0
C
1
1
D
(三)实验仪器及器材
PC机一台;Quartus II软件一套;KHF-5型实验开发系统一套
(四)实验方法及步骤
实验方法及步骤与实验一各个步骤一致,按照实验一进行就行。
1,打开Quartus II开发环境;
2,新建项目;
注意:文件夹名不能用中文,也最好不要用数字;不要将文件夹设在计算机已有的安装目录中,更不要将工程文件直接放在安装目录中。
3、完成软件仿真,管脚配置后下载进行硬件测试。3、完成简单与非门电路的VHDL设计或原理图设计,仿真后下载到实验箱上进行硬件测试。
(二)实验原理:
4选1数据选择器有两个地址输入端:S1、S0;4个数据输入端:D、C、B、A;1个输出端Y。其真值表如表1示。
表14选1数据选择器真值表
地址输入
输出
S0
S1
(五)实验数据及分析处理
源程序
4选1数据选择器--用IF-THEN语句
波形仿真结果
RTL电路图
(六)实验结果体会
实验前熟悉数据选择器的工作原理,实验过程中结合理论进行分析;并且初步掌握了QuartusⅡ环境下4选1数据选择器的VHDL设计或原理图设计。波形仿真时仍遇到问题,通过老师指导解决了那个问题,其他方面基本没问题,达到了实验目的。
实验报告
学院:电子信息工程学院专业:dianzi
电子信息工程技术2014年12月20日星期六
姓名
康杰
学号
2013030341079
班级
2013电技二班
指导师
余华
课程名称
EDA技术与VHDL
EDA实验报告

EDA实验报告一、实验目的本次 EDA 实验的主要目的是熟悉电子设计自动化(EDA)软件的使用,掌握数字电路的设计、仿真和实现流程,提高对数字逻辑电路的理解和设计能力。
二、实验设备与环境1、计算机一台2、 EDA 软件(如 Quartus II 等)三、实验原理1、数字逻辑基础数字电路中的基本逻辑门包括与门、或门、非门、与非门、或非门等。
通过这些基本逻辑门的组合,可以实现各种复杂的数字逻辑功能。
2、组合逻辑电路组合逻辑电路的输出仅取决于当前的输入,不存在存储单元。
常见的组合逻辑电路有加法器、编码器、译码器等。
3、时序逻辑电路时序逻辑电路的输出不仅取决于当前的输入,还与电路的过去状态有关。
常见的时序逻辑电路有计数器、寄存器等。
四、实验内容1、设计一个简单的加法器使用基本逻辑门设计一个两位加法器,输入为两个两位的二进制数A 和 B,输出为它们的和 S 以及进位 C。
2、设计一个 4 位计数器实现一个 4 位的计数器,能够在时钟信号的上升沿进行计数,计数范围为 0 到 15。
3、设计一个数码管显示译码器将输入的 4 位二进制数转换为数码管的 7 段显示编码,实现数字 0 到 9 的显示。
五、实验步骤1、加法器设计(1)打开 EDA 软件,创建一个新的项目。
(2)使用原理图输入方式,绘制出加法器的逻辑电路图,包括两个半加器和一个或门。
(3)对设计进行编译,检查是否存在语法错误。
(4)创建仿真文件,设置输入信号的激励,进行功能仿真,观察输出结果是否符合预期。
2、计数器设计(1)在项目中新建一个模块,使用 Verilog HDL 语言描述计数器的功能。
(2)编写测试代码,对计数器进行仿真验证。
(3)将计数器下载到硬件开发板上,通过观察实际的输出结果验证其功能。
3、数码管显示译码器设计(1)同样使用原理图输入方式,设计数码管显示译码器的逻辑电路。
(2)进行编译和仿真,确保译码器的功能正确。
(3)将译码器与计数器连接起来,实现数码管的动态显示。
eda实验报告(四位全加器的实现)

eda实验报告(四位全加器的实现)一、概述本实验是基于EDA软件对四位全加器电路进行实现的过程。
在EDA软件中,通过电路图的设计和仿真,可以有效地判断电路的正确性,从而进一步改进设计方案。
二、实验过程本实验的目的是实现四位全加器的电路。
在四位全加器的电路中,需要实现三个输入端口A、B和CIN,以及两个输出端口SUM和COUT。
其中,SUM输出端口表示输入端口A和B相加的结果,COUT输出端口则表示两个输入端口相加后的进位。
首先,在EDA软件中,使用电路图工具设计了四位全加器的电路。
在电路图中,输入端口和输出端口均使用标准连接器进行连接。
在电路图中,使用四个完整加法器电路连接起来,从而实现四位全加器电路的功能。
接着,对设计出的电路进行了仿真。
仿真的过程中,需要给输入端口设置相应的电信号,以模拟实际应用中的电路电信号。
通过观察仿真结果,可以判断输入端口和输出端口的功能是否正确,从而判断电路图的设计是否正确。
最后,将完成的电路图经过PCB工具进行绘制。
绘制完成后,将其导入到模拟工具中,进行实际电路的模拟测试。
在测试过程中,需要将输入端口和输出端口分别连接到接口测试架,并按照正常的电路连接方式进行测试。
通过测试结果,可以判断电路图中所设计的电路是否正确。
同时,测试结果还能验证电路的可靠性和稳定性,从而进行后续改进。
三、实验结果根据以上实验过程,在EDA软件中,成功设计了四位全加器电路,并进行了仿真和实际测试。
在测试结果中,电路功能正常,而输出端口的结果也与预期结果一致。
经过多次测试,电路的稳定性和可靠性也得到了验证。
四、结论通过以上实验,得出如下结论:1. EDA软件在电路设计和仿真方面具有很大的优势,能够极大地提高电路设计的效率和可靠性。
2. 在设计电路时,需要充分考虑各个输入端口之间的电路连接方式,以确保电路的准确性和稳定性。
3. 在完成电路设计之后,需要进行仿真和测试,以验证电路的正常功能和性能表现,从而进一步改进和优化电路设计方案。
EDA技术实验报告

EDA技术实验报告实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII 的层次化设计方法。
通过一个4位全加器的设计,熟悉用EDA 软件进行电路设计的详细流程。
二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的低位进位输入信号cin 相接。
1位全加器f-adder 由2个半加器h-adder 和一个或门按照下列电路来实现。
半加器h-adder 由与门、同或门和非门构成。
四位加法器由4个全加器构成三、实验内容:1. 熟悉QuartusII 软件界面,掌握利用原理图进行电路模块设计的方法。
QuartusII 设计流程见教材第五章:QuartusII 应用向导。
2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor )(2)按照给定的原理图输入逻辑门(symbol ->enter symbol) COCO 1S 2S 3S 4(4)为管脚和节点命名:在管脚上的PIN_NAME处双击鼠标左键,然后输入名字;选中需命名的线,然后输入名字。
(5)创建缺省(Default)符号:在File菜单中选择Create Symbol Files for Current File项,即可创建一个设计的符号,该符号可被高层设计调用。
3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形文件(file->new->Other Files->Vector Waveform File),保存后进行仿真(Processing ->Start Simulation),对4位全加器进行时序仿真。
eda实验报告计数器

eda实验报告计数器EDA实验报告-计数器引言:计数器是数字电路中常用的基本模块之一,它在各个领域都有着广泛的应用。
本实验旨在通过EDA(电子设计自动化)软件进行计数器的设计与仿真,探索计数器的原理和功能。
一、计数器的基本原理计数器是一种能够按照规定的顺序改变其输出状态的电子电路。
它通过内部的触发器和逻辑门实现数字信号的计数功能。
常见的计数器有二进制计数器、十进制计数器等。
二、实验设计与仿真1. 实验目标本次实验的目标是设计一个4位二进制计数器,并通过EDA软件进行仿真验证。
计数器的功能是在每个时钟脉冲到来时,输出的二进制数加1。
2. 设计思路计数器的设计需要考虑以下几个方面:- 选择适当的触发器:本实验选择了D触发器作为计数器的基本单元,因为D触发器具有简单、易于控制的特点。
- 确定计数器的位数:本实验设计了一个4位计数器,即可以表示0~15的二进制数。
- 连接逻辑门:通过逻辑门将各个触发器连接起来,实现计数器的功能。
3. 电路设计根据设计思路,我们使用EDA软件进行电路设计。
首先,将4个D触发器连接起来,形成4位计数器。
然后,根据计数器的功能要求,将时钟信号连接到每个触发器的时钟输入端。
最后,将各个触发器的输出通过逻辑门进行连接,得到计数器的输出。
4. 仿真验证完成电路设计后,我们使用EDA软件进行仿真验证。
通过输入不同的时钟信号,观察计数器的输出是否符合预期。
在仿真过程中,我们可以调整时钟信号的频率,观察计数器的计数速度。
三、实验结果与分析通过EDA软件的仿真,我们得到了计数器的输出结果。
在时钟信号的作用下,计数器按照预期进行了计数,并输出了相应的二进制数。
通过观察输出结果,我们可以得出以下几点结论:- 计数器的输出与时钟信号的频率有关,频率越高,计数速度越快。
- 计数器的输出按照二进制的顺序进行计数,当达到最大值时,会从0重新开始计数。
四、实验总结本次实验通过EDA软件进行了计数器的设计与仿真。
EDA电子设计自动化实验报告山东大学信息学院

实验任务:四选一数据选择器设计【连接电路图】:【仿真波形】【引脚配置】【设计思路】A、B是两个输入的二进制数,G代表大于(Greater)M代表等于(middle)L代表低于(low)【实验代码】library ieee;use ieee.std_logic_1164.all;entity comp4 isport ( A : in std_logic_vector(3 downto 0);B : in std_logic_vector(3 downto 0);G,L,M :out std_logic);end comp4;architecture behave of comp4 isbeginp1 : process (A,B)beginif (A>B) then G<='1';M<='0';L<='0';elsif (A<B) then G<='0';M<='0';L<='1';else G<='0';M<='1';L<='0';end if;end process p1;end behave;注:建立的工程名必须与代码中主体名comp4一致,才能正常工作【仿真波形】【引脚配置】【设计思路】数a,b是两个四位二进制数,和放在sum里,溢出位是cout 【实验代码】library ieee;use ieee.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity add isport(a:in std_logic_vector(3 downto 0);b:in std_logic_vector(3 downto 0)cin:in std_logic;sum:out std_logic_vector(3 downto 0);cout:out std_logic);end add;architecture behav of add issignal aa,bb,s:std_logic_vector(4 downto 0);beginaa<='0'&a;bb<='0'&b;s<=aa+bb+cin;sum<=s(3 downto 0);cout<=s(4);end behav;注:建立的工程名必须与代码中主体名add一致,才能正常工作作出仿真波形如下:引脚配置如下:实验任务:七人表决器设计【设计思路】定义a是七位二进制数,表示七个人的表决结果,0是否定,1是肯定如果有4个或以上的1,那么结果y就是1遍历a的每一个数,每遇见一个1,i=i+1,当i≥4时,y=1【实验代码】library ieee;use ieee.std_logic_1164.all;entity vote isport(a:in std_logic_vector(6 downto 0);y:out std_logic);end vote;architecture behav of vote isbegin process(a)variable i:integer;begin i:=0;if(a(0)='1') then i:=i+1;end if;if(a(1)='1') then i:=i+1;,end if;if(a(2)='1') then i:=i+1;end if;if(a(3)='1') then i:=i+1;end if;if(a(4)='1') then i:=i+1;end if;if(a(5)='1') then i:=i+1;end if;if(a(6)='1') then i:=i+1;end if;if(i>3)then y<='1';else y<='0';end if;end process;end behav;注:建立的工程名必须与代码中主体名vote一致,才能正常工作【仿真波形】【引脚配置】实验任务:七段译码器(共阳极)源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity qiduanyima isport(a:in std_logic_vector(3 downto 0);rst:std_logic;dataout:out std_logic_vector(6 downto 0));end qiduanyima;architecture one of qiduanyima isbeginprocess(a)begincase a iswhen"0000"=>dataout<="1000000";when"0001"=>dataout<="1111001";when"0010"=>dataout<="0100100";when"0011"=>dataout<="0110000";when"0100"=>dataout<="0011001";when"0101"=>dataout<="0010010";when"0110"=>dataout<="0000010";when"0111"=>dataout<="1111000";when"1000"=>dataout<="0000000";when"1001"=>dataout<="0010000";when others=>dataout<="1111111";end case;end process;end one;注:建立的工程名必须与代码中主体名qiduanyima一致,才能正常工作实验任务:分频器设计【实验代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;Entity my_clk isport(in_clk:in std_logic;out_clk:out std_logic);end my_clk;Architecture toe of my_clk isBegincounter:process(in_clk)Variable c1 :integer :=0;beginif(in_clk'event and in_clk='1' and c1<24999999)then c1:=c1+1;out_clk<='1';elsif(in_clk'event and in_clk='1' and c1<49999999)then c1:=c1+1;out_clk<='0';elsif(in_clk'event and in_clk='1' and c1=49999999)then c1:=0;out_clk<='1';end if;end process counter;end toe;注:建立的工程名必须与代码中主体名my_clk一致,才能正常工作【引脚配置】实验任务:十进制计数器设计【源代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishuqi10 isport(en: in std_logic;to0: in std_logic;clock:in std_logic;out10:out std_logic_vector(3 downto 0);co:out std_logic);end;architecture one of jishuqi10 issignal num:integer range 0 to 10;beginprocess(clock)beginif en='1' thenif clock'event and clock= '1' thenif num=9 thennum<=0;elsenum<=num+1;end if;end if;end if;if to0='0' thennum<=0;end if;if num=9 thenco<='1';elseco<='0';end if;case num iswhen 1=>out10<="0001";when 2=>out10<="0010";when 3=>out10<="0011";when 4=>out10<="0100";when 5=>out10<="0101";when 6=>out10<="0110";when 7=>out10<="0111";when 8=>out10<="1000";when 9=>out10<="1001";when 0=>out10<="0000";when others=>out10<="0000";end case;end process;end;注:建立的工程名必须与代码中主体名jishuqi10一致,才能正常工作作出仿真波形如下:保存并封装后,重新建立一个工程,把十进制译码器和七段译码管联合使用:引脚配置如下:实验任务:百进制计数器设计十进制封装后,保存并重新建立一个工程,连接成为100进制的计数器:引脚配置如下:实验任务:巴克码发生器源代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bakema isport(clk:in std_logic;bakema:out std_logic;jp:out std_logic);end;architecture one of bakema issignal count:integer range 0 to 6;beginprocess(clk)beginjp<=clk;if clk'event and clk= '1' thenif count=6 thencount<=0;elsecount<=count+1;end if;end if;case count iswhen 0=>bakema<='1';when 1=>bakema<='1';when 2=>bakema<='1';when 3=>bakema<='0';when 4=>bakema<='0';when 5=>bakema<='1';when 6=>bakema<='0';when others=>bakema<='0';end case;end process;end;注:建立的工程名必须与代码中主体名bakema一致,才能正常工作作出仿真波形如下:引脚配置如下:实验任务:红绿灯设计【设计思路】东西方向和南北方向的代码大致相近都是配置了50个状态(num)红色(red)是状态26-50绿色(gre)是状态6-25黄色(yel)是状态1-5当复位键按下(to0=1)时,南北方向会置状态50(红),东西置25(绿)然后状态参数(num)每秒减一,不断循环【实验代码】南北方向芯片的代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity nanbei isport(en: in std_logic;to0: in std_logic;clock:in std_logic;out10:out std_logic_vector(3 downto 0);out20:out std_logic_vector(3 downto 0);red: out std_logic;gre: out std_logic;yel: out std_logic);end;architecture one of nanbei issignal num:integer range 1 to 50;beginprocess(clock)beginif en='1' thenif clock'event and clock= '1' thenif num=1 thennum<=50;elsenum<=num-1;end if;end if;end if;if to0='0' thennum<=50;end if;if num>25 thenred<='1';gre<='0';yel<='0';elsif num>5 thenred<='0';gre<='1';yel<='0'; elsered<='0';gre<='0';yel<='1'; end if;if 44<num thenout20<="0010";elsif 34<num thenout20<="0001";elsif 25<num thenout20<="0000";elsif 25=num thenout20<="0010";elsif 14<num thenout20<="0001";elsif 5<num thenout20<="0000";elsif 0<num thenout20<="0000";end if;case num iswhen 1=>out10<="0001";when 2=>out10<="0010";when 3=>out10<="0011";when 4=>out10<="0100";when 5=>out10<="0101";when 6=>out10<="0001";when 7=>out10<="0010";when 8=>out10<="0011";when 9=>out10<="0100";when 10=>out10<="0101";when 11=>out10<="0110";when 12=>out10<="0111";when 13=>out10<="1000";when 14=>out10<="1001";when 15=>out10<="0000";when 16=>out10<="0001";when 17=>out10<="0010";when 18=>out10<="0011";when 19=>out10<="0100";when 20=>out10<="0101";when 21=>out10<="0110";when 22=>out10<="0111";when 23=>out10<="1000";when 24=>out10<="1001";when 25=>out10<="0000";when 26=>out10<="0001";when 27=>out10<="0010";when 28=>out10<="0011";when 29=>out10<="0100";when 30=>out10<="0101";when 31=>out10<="0110";when 32=>out10<="0111";when 33=>out10<="1000";when 34=>out10<="1001";when 35=>out10<="0000";when 36=>out10<="0001";when 37=>out10<="0010";when 38=>out10<="0011";when 39=>out10<="0100";when 40=>out10<="0101";when 41=>out10<="0110";when 42=>out10<="0111";when 43=>out10<="1000";when 44=>out10<="1001";when 45=>out10<="0000";when 46=>out10<="0001";when 47=>out10<="0010";when 48=>out10<="0011";when 49=>out10<="0100";when 50=>out10<="0101";when others=>out10<="0000";end case;end process;end;end;注:建立的工程名必须与代码中主体名nanbei一致,才能正常工作东西方向芯片的代码如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dongxi isport(en: in std_logic;to0: in std_logic;clock:in std_logic;out10:out std_logic_vector(3 downto 0);out20:out std_logic_vector(3 downto 0);red: out std_logic;gre: out std_logic;yel: out std_logic);architecture one of dongxi issignal num:integer range 1 to 50;beginprocess(clock)beginif en='1' thenif clock'event and clock= '1' thenif num=1 thennum<=50;elsenum<=num-1;end if;end if;end if;if to0='0' thennum<=25;end if;if num>25 thenred<='1';gre<='0';yel<='0';elsif num>5 thenred<='0';gre<='1';yel<='0';elsered<='0';gre<='0';yel<='1';end if;if 44<num thenout20<="0010";elsif 34<num thenout20<="0001";elsif 25<num thenout20<="0000";elsif 25=num thenout20<="0010";elsif 14<num thenout20<="0001";elsif 5<num thenout20<="0000";elsif 0<num thenout20<="0000";end if;case num iswhen 1=>out10<="0001";when 2=>out10<="0010";when 3=>out10<="0011";when 4=>out10<="0100";when 5=>out10<="0101";when 6=>out10<="0001";when 7=>out10<="0010";when 8=>out10<="0011";when 9=>out10<="0100";when 10=>out10<="0101";when 11=>out10<="0110";when 12=>out10<="0111";when 13=>out10<="1000";when 14=>out10<="1001";when 15=>out10<="0000";when 16=>out10<="0001";when 17=>out10<="0010";when 18=>out10<="0011";when 19=>out10<="0100";when 20=>out10<="0101";when 21=>out10<="0110";when 22=>out10<="0111";when 23=>out10<="1000";when 24=>out10<="1001";when 25=>out10<="0000";when 26=>out10<="0001";when 27=>out10<="0010";when 28=>out10<="0011";when 29=>out10<="0100";when 30=>out10<="0101";when 31=>out10<="0110";when 32=>out10<="0111";when 33=>out10<="1000";when 34=>out10<="1001";when 35=>out10<="0000";when 36=>out10<="0001";when 37=>out10<="0010";when 38=>out10<="0011";when 39=>out10<="0100";when 40=>out10<="0101";when 41=>out10<="0110";when 42=>out10<="0111";when 43=>out10<="1000";when 44=>out10<="1001";when 45=>out10<="0000";when 46=>out10<="0001";when 47=>out10<="0010";when 48=>out10<="0011";when 49=>out10<="0100";when 50=>out10<="0101";when others=>out10<="0000";end case;end process;end;注:建立的工程名必须与代码中主体名dongxi一致,才能正常工作【电路连接】东西南北连接同一个时钟,输出各自接两个显示译码管(qiduanyima),时钟信号用分频器(my_clk)提供引脚配置如下:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实验报告实验14选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。
2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。
4.学习实验开发系统的使用方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。
实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。
例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。
学会管脚锁定以及编程下载的方法等。
四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。
五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M (A=B ),G (A>B )和L (A<B )(如图所示)。
用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
四、实验要求1.用硬件描述语言编写四位二进制码 比较器的源文件; 2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行 硬件验证。
四位比较器功能框图 五、实验结果四位比较器VHDL 源文件:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity comp4 is port (A:in std_logic_vector(3 downto 0); B:in std_logic_vector(3 downto 0); M,G ,L:out std_logic); end comp4;architecture behave of comp4 is begin p1: process(A,B) begin3A 2A 1A 0A B B Bif (A>B) then G<='1';M<='0';L<='0';elsif (A<B) then G<='0';M<='0';L<='1';elsif (A=B) then G<='0';M<='1';L<='0';else G<='1';M<='1';L<='1';end if;end process p1;end behave;仿真波形图:管脚分配:试验3 并行加法器设计一、试验目的1.设计一个4位加法器。
2.体会用VHDL 进行逻辑描述的优点。
3,熟悉层次化设计方法。
二、试验仪器与器材1.EDA 开发软件 一套2.微机 一台3.试验开发系统 一台4.打印机 一台5.其他器材和材料 若干 三、试验说明本试验实现一个4位二进制数加法器,其功能框图如图所示。
试验时用高低电平开关作为输入,用数码管作为输出(或用发光二极管),管脚锁定可根据试验系统自行安排。
四、实验要求1.用硬件描述语言编写4位二进制数全加器的源文件; 2.对设计文件进行编译; 3.仿真设计文件;4.编程下载并进行试验验证。
五、试验结果4位二进制全加器的源文件: library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity add4 is port (a:in std_logic_vector(3 downto 0);co全加器功能框图b:in std_logic_vector(3 downto 0);ci:in std_logic;s:out std_logic_vector(3 downto 0);co:out std_logic);end add4;architecture behave of add4 issignal aa,bb,sum: std_logic_vector(4 downto 0); beginaa<='0'& a;bb<='0'& b;sum<=aa+bb+ci;s<=sum(3 downto 0);co<=sum(4);end behave;仿真波形图:管脚分配:实验4 计数器设计一、实验目的计数器是实际中最为常用的时序电路模块之一,本实验的主要目的是掌握使用HDL描述计数器类型模块的基本方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台5.其他器材与材料若干三、实验说明计数器是数字电路系统中最重要的功能模块之一,设计时可以采用原理图或HDL语言完成。
下载验证时的计数时钟可选连续或单脉冲,并用数码管显示计数值。
四、实验要求1.设计一个带有计数允许输入端、复位输入端和进位输入端的十进制计数器。
2.编制仿真测试文件,并进行功能仿真。
3.下载并验证计数器功能。
4.为上述设计建立元件符号。
5.在上述基础上分别设计按8421BCD码和二进制计数的100进制同步计数器。
五、实验结果十进制计数器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter10 isport(reset,clk,en: in bit;co : out bit;q : out std_logic_vector(0 to 3));end entity counter10;architecture ar_counter10 of counter10 issignal cq: std_logic_vector(0 to 3);beginp1: process (clk,en,reset)variablet: integer range 0 to 10 :=0 ;beginif (reset='0') thenif (clk'event and clk='1') thenif ( en='1' ) thent:=cnt+1;cq <=cq+1;if (cnt=10) thenco<='1';cnt:=0;cq<="0000";elseco<='0';end if;end if;end if;elsecnt:=0;co<='0';cq<="0000";end if;q<=cq;end process p1;end architecture ar_counter10;仿真波形图:管脚分配:4_7译码器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity BCD isport (a:in std_logic_vector(3 downto 0);b:out std_logic_vector(6 downto 0)); end BCD;architecture rt of BCD issignal indata:std_logic_vector(3 downto 0); beginindata<=a;process(indata)begincase indata iswhen "0000"=> b <="1000000";when "0001"=> b <="1111001";when "0010"=> b <="0100100";when "0011"=> b <="0110000";when "0100"=> b <="0011001";when "0101"=> b <="0010010";when "0110"=> b <="0000010";when "0111"=> b <="1111000";when "1000"=> b <="0000000";when "1001"=> b <="0010000";when others=> b <="1111111";end case;end process;end rt;BCD引脚分配BCD仿真波形分频器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi isport(clk : in bit;oclk : out bit);end entity fenpinqi;architecture ar_fpq of fenpinqi issignal inclk: bit;signal number: integer range 0 to 30000000 :=0; beginp0: process (clk)beginif (clk'event and clk='1') thenif (number=24999999) thennumber<=0;inclk<=not inclk;elsenumber<=number+1;inclk<=inclk;end if;end if;oclk<=inclk;end process p0;end architecture ar_fpq;10进制计数器原理图100进制计数器原理图:仿真波形图:管脚分配:100进制计数器的另一种做法:100进制计数器程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter100 isport(reset,clk,en: in bit;co : buffer bit;coo : out bit;qb : out std_logic_vector(0 to 3);qa : out std_logic_vector(0 to 3));end entity counter100;architecture ar_counter of counter100 is signal bq: std_logic_vector(0 to 3);signal cq: std_logic_vector(0 to 3);beginp1: process (clk,en,reset)variablet: integer range 0 to 10 :=0 ;beginif (reset='0') thenif (clk'event and clk='1') thenif ( en='1' ) thent:=cnt+1;cq <=cq+1;if (cnt=10) thenco<='1';cnt:=0;cq<="0000";elseco<='0';end if;end if;end if;elsecnt:=0;co<='0';cq<="0000";end if;qa<=cq;end process p1;p3:process(co)variablet1: integer range 0 to 10 :=0 ;beginif (reset='0') thenif (co='1') thent1:=cnt1+1;bq <=bq+1;if (cnt1=10) thencoo<='1';cnt1:=0;bq<="0000";elsecoo<='0';end if;end if;elsecnt1:=0;coo<='0';bq<="0000";end if;qb<=bq;end process p3;end architecture ar_counter;100进制计数器原理图实验5 巴克码发生器一、实验目的1.实现一个在通信领域中经常使用的巴克码发生器。