EDA技术及应用实验报告

实验一 组合逻辑3-8译码器设计

一、实验目的

1、通过3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。

2、掌握组合逻辑电路的静态测试方法。

3、初步了解可编程器件设计的全过程。

二、实验内容

1、打开Quartus II软件。

2、选择路径。选择File/New Project Wizard,指定工作目录(默认路径,不要修改),指定工程和顶层设计实体名称;注意:工作目录名不能有中文,实体名称起英文字母组合,不要简单起成123之类,不要以数字开头命名。工程名,实体名,文件名,三个名称保持一致!

3、添加设计文件。将设计文件加入工程中。如果有已经建立好的VHDL或者原理图等文件可以在File name中选择路径然后添加,或者选择Add All添加所有可以添加的设计文件(.VHDL ,.Verilog原理图等)。如果没有直接点击“Next”,等建立好工程后再添加也可。这里暂不添加,点击“Next”。

4、选择FPGA器件。Family选择ACEX1K,Available devices选EP1K30TC144-3;确定无误后再点击“Next”。(可选其它)

5、选择外部综合器、仿真器和时序分析器。Quartus II支持外部工具,可通过选中来指定工具的路径。这里不做选择,默认使用Quartus II自带的工具。

6、结束设置。单击“Next”,弹出“工程设置统计”窗口,上面列出了工程的相关设置情况。最后单击“Finish”,结束工程设置。

7、建立原理图文件。File/ New/Block Diagram/Schematic File。

8、添加文件到工程中。点击“OK”,并选择File/Save,选择和工程相同的文件名!点击“保存”,文件就被添加进工程当中。

9、原理图建立完毕。这时,可以开始在原理图上进行设计了。

提示:用户可以在打开Quartus II后直接建立原理图或者VHDL文件,选择Save As,系统会提示是否要保存为工程文件,选择建立工程文件,也可进入工程文件建立流程。

10、添加器件。按照3-8译码器的电路图添加器件并连线。添加方法:原理图空白处双击鼠标左键进入Symbol界面,在Name中输入器件名称点击OK找到合适位置放置器件。连线时不能出现结点,连线方法:鼠标放到器件上变成十字形后按住鼠标左键拖到需要连接的结点上。修改端口名称:将pin_name全部改为A,B,C和Y0-Y7。

11、预编译。选择Processing/Start/Start Analysis&Synthesis,快捷键:

进行综合。如果有错误,可以双击红色错误行进行错误定位,进行纠错。

12、添加管脚信息。当综合完成后,网表信息才会生成。选择Assignments/Pin Planner,快捷键: 。将引脚列表拉上来。

13、为每个节点分配引脚。双击Location的空白处出现下拉列表选择对应的引脚。

14、全局编译。Processing/Start Compilation,快捷键:

15、从菜单File/New/Other Files中选择创建Vector Waveform File。在新的波形文件中选入需要验证的引脚,通过在左边窗栏里点击鼠标右键,选Insert Node or Bus .. , 在打开的对话框中点击Node Finder,在打开的对话框中点击List, 点击中间第二个快捷键,将所有的信号选到右侧,点击两次OK。此时信号被添加进波形文件左侧。选择所要观察的信号引脚,设置引脚的信号值,单击信号使其变成浅蓝色,选择左侧带时钟的波形按钮: ,给A,B,C添加输入值,修改周期: A周期2.5ns,B周期5ns,C周期10ns。 点击保存Save,注意:一般情况下文件名默认和工程名师一致的,不需要修改,如果重复建立了多个波形图,一定点击file:save as另存为,将波形图名称修改为和工程名称一致,否则无法出现象。Assignments中选择Settings,快捷键: ,列表左侧选中Simulator Settings选择页,设置Function类型仿真,并将新创建的波形文件当作仿真输入,设置完毕之后,点击Processing ->Generate Functional Simulator Netlist, 生产网表文件之后,点击Start Simulator,快捷键: 进行功能仿真,然后验证逻辑功能是否正确。

三、实验过程

在此处填写实验过程并黏贴截图。

四、实验结果与分析

        在本次组合逻辑3-8译码器设计实验中,我深入了解了译码器的基本原理、设计方法和实现步骤。通过亲手搭建电路、编写代码和进行仿真测试,我不仅掌握了理论知识,还获得了宝贵的实践经验。

        通过这次实验,我深刻体会到了理论与实践相结合的重要性。在实验过程中,我不仅学会了如何设计数字电路,还学会了如何运用EDA软件来进行电路仿真和测试。这些技能对于我未来的学习和工作都具有重要的意义。实验中的故障排除和问题解决过程锻炼了我的分析和批判性思维能力。每当遇到错误或不符合预期的结果时,我都需要仔细检查代码,分析可能的原因,并进行相应的调整。这个过程虽然具有挑战性,但它帮助我建立了解决复杂问题的自信。

        此外,我还认识到了团队合作的重要性。在实验过程中,我与同学们进行了深入的交流和讨论,共同解决了许多问题。这种合作不仅提高了我的学习效率,还让我学会了如何与他人进行有效的沟通和协作。

        总的来说,这次组合逻辑3-8译码器设计实验让我受益匪浅。我不仅掌握了数字电路设计的基本技能,还学会了如何运用EDA软件来进行电路仿真和测试。同时,我也深刻体会到了理论与实践相结合的重要性以及团队合作的力量。我相信这些经验和技能将对我未来的学习和工作产生积极的影响。

五、思考题

思考:为什么在功能仿真时输入设置的周期为2倍的关系?

答:1.组合逻辑38译码器在功能仿真时输入设置的周期为2倍的关系,这主要是由于38译码器的输入输出的特性所决定的。

2.在功能仿真时,为了测试38译码器的所有可能的输入组合和对应的输出,通常需要将输入设置为遍历所有可能的组合。

3.由于38译码器有3个输入线,共有8个可能的组合(从000到111),因此设置输入周期为2倍的关系(即每个输入组合持续两个周期)可以确保每个组合都得到充分的测试和验证。

4.这种设置方式有助于确保在仿真过程中,每个输入组合都能被完整地处理并产生相应的输出,从而验证38译码器的功能和性能。综上所述,组合逻辑38译码器在功能仿真时输入设置的周期为2倍的关系,是为了确保每个输入组合都能得到充分的测试和验证,从而全面评估38译码器的功能和性能。

实验二 多路数据选择器

一、实验目的

设计并实现一个16选1多路数据选择器。

二、实验原理

在VHDL语言中描述一个2选1的多路数据选择器的方法有多种,例如:在一个进程中使用if-when-else语句:在一个进程中case语句:使用with select 构造或使用结构VHDL。推荐的使用方法是使用when else构造,这样在VHDL代码中只用1行就可以描述2选1多路选择器。例如:

Library ieee;

Use ieee.std_logic_1164.all;

Entity mux2 is

      Port(a,b,sel:  in  std_logic;

          q:      out  std_logic);

end;

architecture a of mux2 is

begin

q<=a when sel=’0’ else b;

end;

但我们在描述一个16选1的多路数据选择器时,若采用同样的方法,则就需要许多行VHDL代码,此时我们可以在进程中使用case语句会很清晰,但无论使用哪一种描述方法,综合得到的结果是相同的。16选1多路选择器结构图2-1所示。

图2-1 16选1多路选择器

三、实验步骤

1、参考实验一的实验步骤1-6建立工程,注意:建立的工程名称,下一步建立的VHDL文件名称,VHDL中设计的多路选择器的实体名称保持一致

2、建立VHDL文件。File/ New/VHDL File。在VHDL文件中使用VHDL语言设计多路选择器。保存。注意:上一步建立的工程名称,此时保存的VHDL文件名称,VHDL中设计的多路选择器的实体名称保持一致。

3、预编译。选择Processing/Start/Start Analysis&Synthesis,快捷键:,进行综合。如果有错误,双击错误定位到错误附近,改错,再综合,直到没有错误为止。

4、添加管脚信息。当综合完成后,网表信息才会生成。选择Assignments/Pin Planner。快捷键: ,将引脚列表拉上来。注意引脚的分配自行分配可使用的引脚,并记录引脚分配情况。后续连线时使用。

5、为每个节点分配引脚。双击Location的空白处出现下拉列表选择对应的引脚。

6、全局编译。Processing/Start Compilation,快捷键:

7、运用RTL图观察器观察综合完的RTL级电路图,根据RTL级图,可以看出VHDL程序综合成的电路模块,电路结构是否有错误,并观察生成的电路是否为组合电路或时序电路。方法:选择Tools/Netlist Viewer,在出现的下拉菜单中选择RTL Viewer。如果想查看图形中有关模块的电路结构,可以双击有关模块,逐层了解各层次的电路结构。

8、参考实验一的实验步骤15-16进行硬件仿真。

四、实验过程

五、实验结果与分析

实验三 全加器

一、实验目的

设计并实现一个一位全加器。

二、实验原理

计算机中的加法器一般就是全加器,它实现多位带进位加法。下面以一位全加器介绍。

一位全加器有三个输入、两个输出,见图3-1。

图3-1  一位全加器示意图

图中的“进位入”Ci-1指的是低位的进位输出,“进位出”Ci即是本位的进位输出。一位全加器的真值表见表3-1。

表3-1:

输入

输出

Ci-1

Bi

Ai

Si

Ci

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

根据表3-1可写出逻辑函数表达式:

全加功能的硬件实现方法有多种,例如:可以把全加和看作是Ai与Bi的半加和Hi与进位输入Ci-1的半加和来实现。多位全加器就是在一位的原理上扩展而成的。集成电路全加器有7480、7481、7483等。

三、实验步骤

参考实验二建立工程,建立VHDL文件设计一位全加器,全加器的三个输入所对应的管脚同三位拨码开关相连,三个输入端子是a、b、cin,分别代表 Ai、Bi、Ci-1;;两个输出所对应的管脚同两位发光二极管相连,两个输出端子是co、sum,分别代表Ci 、Si。

接线:将CPU的17脚接D1,18脚接D2,19脚接D3,20脚接L1,21脚接L2。
引脚分配如下:(可以不按照此图进行分配)

四、实验过程

1. 在全英文路径下先创建两个文件夹,一个为半加器h_adder,另一个为全加器f_adder。

先在半加器文件夹路径下创建半加器工程文件

半加器程序如下所示。

2. 编译通过后调出hadder.vhd文件界面,对该文件创建symbol。如下图所示。

编译通过如图

  1. 然后把 和其symbol文件 拷贝到f_adder文件夹中。

在全加器文件夹路径下创建全加器工程文件f_adder。创建全加器时把半加器文件添加到全加器工程里面。然后新建图表文件,调用h_adder和or2a创建下列电路图。

保存.bdf文件,若创建工程时没有把半加器文件加入全加器工程,可通过下图操作加入。

  1. 运行原理图

  1. 创建仿真波形界面

五、实验结果与分析:

1. 实验结果

2. 真值表

输入

输出

实验结果

Ci-1

Bi

Ai

Si

Ci

Si

Ci

0

0

0

0

0

0

0

0

0

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

1

1

1

0

0

1

0

1

1

1

1

1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FutureLight_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值