首页 > 精品范文库 > 15号文库
EDA实验报告(四位全加器的实现)
编辑:雪域冰心 识别码:24-1139652 15号文库 发布时间: 2024-09-15 03:26:40 来源:网络

第一篇:EDA实验报告(四位全加器的实现)

计算机09-3班

郑秀枫

09081311 实验一

四位全加器的实现

一、实验目的

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,将其设置为顶层文件,点击编译按钮就行编译。

计算机09-3班

郑秀枫

09081311

图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。

2、用VHDL语言设计4位加法器

(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL实现一位全加器,其VHDL代码如下:

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

ENTITY adde1r IS PORT(A,B,Ci:IN STD_LOGIC;

S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 IS BEGIN PROCESS(A,B,Ci)

VARIABLE n1,n2,n3:STD_LOGIC;BEGIN

n1:=A AND B;

n2:=A XOR B;

计算机09-3班

郑秀枫

09081311

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 is port(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 is component adder port(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;begin u1: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作为输出的进位。当SW4~1闭合 SW8~5和SW0断开时,只有LEDG3~0这四个灯亮;当SW8~0全闭合时,LEDG4~0灯全亮。

计算机09-3班

郑秀枫

09081311

中国石油大学(华东)

课题名称

实验项目名称 专业

姓名

EDA设计

实验一四位全加器的设计

计算机科学与技术

孙文吉

第二篇:全加器实验报告

4位全加器的设计实验报告

班级:通信12-2班 学号:12090216 姓名:韦建萍

一、实验目的

熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计,掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二、实验原理

一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出 cout 与相邻的高位加法器的最低进位输入信号 cin 相接。

加法器举例说明:设M = 1101,N = 1110,CIN=0,则

1、半加器(设其名为h_adder)的电路:

2、全加器(设其名为f_adder)的电路:

三、实验内容和步骤

1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真; 半加器电路原理设计图如图:

半加器电路仿真图如图:

全加器电路原理设计图如图:

全加器电路仿真图如图:

2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真。4位全加器电路原理图如图:

4位全加器仿真图如图:

四、仿真分析及心得体会 仿真分析:

四位全加器S0为和位,C0为进位,当a0=1,b0=1时,S0=0,C0=1,就是和位为零,进位进1。以此类推,当a1=1,b1=0,C0=1时,和位S0=0,进位C0=1。

实验体会:

通过这次实验让我学会了如何掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程,利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法。

第三篇: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程序是正确的。

实验心得:

通过这次实验,我基本掌握了QUARTUS II软件的使用,也掌握了软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。在实验中,我发现EDA这门课十分有趣,从一个器件的功能设计到程序设计,再到编译成功,最后得到仿真的结果,这其中的每一步都需要认真分析,一遍又一遍的编译,修改。当然,中间出现过错误,但我依然不放弃,一点一点的修改,验证,最终终于出现了正确的仿真结果,虽然有一些毛刺,但是总的来说,不影响整体的结果。

实验二:计数器设计与显示

实验目的:

(1)熟悉利用QUARTUS II中的原理图输入法设计组合电路,掌握层次化的设计方法;

(2)学习计数器设计,多层次设计方法和总线数据输入方式的

仿真,并进行电路板下载演示验证。实验内容:

1.完成计数器设计

基本功能及原理:

本实验要设计一个含有异步清零和计数使能的4位二进制加减可控计数器,即有一个清零端和使能端,当清零端为1时异步清零,即所有输出值都为0,当使能端为0时,计数器停止工作,当使能端为1时,正常工作,由时钟控制。另外,还应该有一个控制端,当控制端为0时,进行减法运算,当控制端为1时,进行加法运算。输出端有输出值和进位端,当进行加法运算时,输出值递增,当减法运算时,输出值递减,同时进位端进行相应的变化。

4位二进制加减计数器的逻辑符号:

程序设计:

软件编译:

在编辑器中输入并保存了以上4位二进制加减计数器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 仿真结果如下:

分析:

由仿真图可以得到以下结论:

当enable端为0时,所有数值都为0,当enable端为1时,计数器正常工作;当reset端为1时,异步清零,所有输出数值为0,当reset端为0时,正常工作;当updown端为0时,进行减法运算,当updown为1时,进行加法运算;另外,当程序进行减法运算时,出现借位时,co为1,其余为0,当进行加法运算时,出现进位时,co为1,其余为0。图中所有的功能与我们设计的完全一样,所以说明源程序正确。2.50M分频器的设计

基本功能及原理:

50M分频器的作用主要是控制后面的数码管显示的快慢。即一个模为50M的计数器,由时钟控制,分频器所有的端口基本和上述4位二进制加减计数器的端口一样,原理也基本相同。分频器的进位端(co)用来控制加减计数器的时钟,将两个器件连接起来。50M分频器的逻辑符号如下:

程序设计:

软件编译:

在编辑器中输入并保存了以上50M分频器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 结果如下:

上图为仿真图的一部分,由于整个图太大,所以显示一部分即可,其余部分如图以上图规律一直递增,直到50M为止,然后再重复,如此循环。

上图是部分输出的显示,由于整个图太大,所以只显示部分,其余部分如图递增。

分析:

由仿真图可以看出,当reset为0,enable为1时(因为本实验中计数器的模值太大,为了尽可能多的观察出图形,可让reset一直为0,enable一直为1,即一直正常工作),输出值由0一直递增到50M,构成一个加法计数器,与我们设计的功能一致。3.七段译码器程序设计

基本功能及原理:

七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。

七段译码器的逻辑符号:

程序设计:

软件编译:

在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析:

仿真结果如下图所示:

分析:具体分析与实验一中七段译码器的分析相同,在此不再赘述。计数器和译码器连接电路的顶层文件原理图:

原理图连接好之后就可以进行引脚的锁定,然后将整个程序下载到已经安装好的电路板上,即可进行仿真演示。

实验心得:

经过本次试验,我学到了很多。首先,我加强了对QUARTUS II软件的掌握;其次,我掌握了电路图的顶层文件原理图的连接,学会了如何把自己设计的程序正确的转化为器件,然后正确的连接起来,形成一个整体的功能器件;最后,我学会了如何安装以及如何正确的把完整的程序下载到电路板上,并进行演示验证。

实验三:大作业设计

(循环彩灯控制器)

实验目的:

综合应用数字电路的各种设计方法,完成一个较为复杂的电路设计。实验内容:

流水灯(循环彩灯)的设计 设计任务:

设计一个循环彩灯控制器,该控制器可控制10个发光二极管循环点亮,间隔点亮或者闪烁等花型。要求至少三种以上花型,并用按键控制花型之间的转换,用数码管显示花型的序号。基本原理:

该控制器由两部分组成,一部分是一个50M的分频器,其主要用来控制花色变化的快慢;另一部分是一个彩灯控制器,该彩灯控制器可由两个开关控制花型的序号,10个输出分别控制10个发光二极管的亮暗,当输出为1时,该发光二极管亮,输出为0时,该二极管灭。将分频器的co端用来控制彩灯控制器的时钟,将两个器件连接起来。1.分频器的设计

50M分频器与实验二中的分频器一样,这里不再赘述。2.彩灯控制器的设计 基本原理:

该彩灯控制器由时钟控制,reset异步清零,enable当做使能端,由两个开关do(0-1)来控制选择不同的花型,10个输出端lig(0-9)来控制10个LED灯的亮灭。因为用了两个开关来控制花型,所以一共有4种花色。

彩灯控制器的逻辑符号:

程序设计:

3.七段译码器的设计

七段译码器是用来显示不同花型的序号的,其设计与实验一中的设计一样,这里不再赘述。循环彩灯控制器的原理图:

仿真波形如下: 第一种花型:

第二种花型:

第三种花型:

第四种花型:

仿真分析:

将以上仿真波形图和源程序对比,我们可以看到,仿真出来的波形和我们设计的功能一致,这说明源VHDL程序是正确的。实验心得:

本次试验是在没有老师指导的情况下自己完成的,我在参考了网上的程序的情况下,最终成功的设计并正确的演示出了循环彩灯的不同花型。通过本次试验,我真正的体会到了DEA这门课的乐趣,也发现它对我们的学习和生活带来很大的方便。

第四篇:EDA实验报告

EDA课程实验报告

----移位相加8位硬件乘法器电路计

ou 1

移位相加硬件乘法器设计

一.实验目的

1、学习移位相加8 位硬件乘法器电路设计;

2、学习应用EDA 技术进行项目设计的能力

二.实验原理

该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若

为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。

实验箱内部结构图

三.实验设备

1.安装QUARTUS II 软件的PC一台;

2.实验箱一个 四.实验步骤

1.输入下列VHDL程序:

2.编译程序,并连接实验箱并下载 3.在实验箱上按下列要求进行设置:

①选择模式1 ②CLKK控制移位相加速度,接clock0=4Hz ③A[7..0]、B[7..0]输入数据 显示于此4个数码管上

④DOUT[15..0]接数码管8/7/6/5,显示16位乘积:PIO31—PIO16 ⑤接键8(PIO49):高电平清0,低电平计算允许

⑥A[7..0]接键2/1,输入8位乘数 PIO7—PIO0(模式1)⑦B[7..0]接键2/1,输入8位被乘数 PIO7—PIO0(模式1)

五.实验结果

实验程序编译运行后RTL电路图

ou 1)2

(模式

实验RTL电路

A[7..0]接键2/1,输入8位乘数:A2(十六进制)B[7..0]接键4/3,输入8位被乘数:33(十六进制)可得结果DOUT[15..0]:202_(十六进制)六:心得体会

通过电子设计的数字部分EDA设计,我们掌握了系统的数字电子设计的方法,也知道了实验调试适配的具体操作方法。

通过实验,进一步加深了对EDA的了解,让我对它有了浓厚的兴趣。但是在调试程序时,遇到了不少问题,编译下载程序时,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。

ou 3

第五篇:EDA实验报告

EDA

实验报告

姓名:汤灿亮 学号:2012118060 班级:1211自动化

实验一 QUARTUS Ⅱ的设计流程

一、实验目的:

1、掌握QUARTUSⅡ安装过程;

2、熟悉QUARTUSⅡ设计环境;

3、掌握QUARTUSⅡ的设计过程。

二、实验内容:

用文本输入法设计一个二进制加法器。

三、实验步骤:

(一)、创建工作文件夹

在windows中新建一个文件夹(又称工作库或WORK LIBRARY),用于保存设计工程项目的有关文件。注:设计工程项目的所有有关文件不能保存在根目录下,必须保存在一个文件夹之下。例如建立的文件夹:E:CNT10

(二)、启动Quartus II 点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口。或点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口

(三)、设计文件输入

1、打开输入文件编辑器

点击菜单Filenew„选择Verilog HDL file建立一个文本设计文件。用文本输入法输入程序。

2、保存文件,文件名同程序的模块名。后缀.v

(四)、全编译(逻辑综合)

1、创建工程

点击菜单FileNew Project Wizard…….进行工程设置。完成工程文件夹的选定、工程名、顶层设计文件名(主程序)、编程器件的选择等工程设置。

2、编译前的相关设置设置

⑴选择PLD芯片:AssignmenmtsSettingsDevice弹出的窗口中选择选择芯片。

⑵选择配置芯片的工作方式AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中首选General项,在Options栏中选择Auto-restart-configuration after error.⑶选择配置芯片和编程方式:AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中选择Configuration栏,在窗口中设置配置方式,配置芯片和是否需要生成压缩的配置文件。

⑷选择输出设置:(1)-(4)项默认方式,可以不做任何操作,⑸选择目标器件闲置引脚的状态:AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中选择Unused Pins栏,在窗口中对闲置的引脚设置,推荐设置为As input tri-stated。

3、执行全程编译:ProcessingStart Compilation。完成对设计项目的检 错、逻辑综合、结构综合、配置文件生成以及时序分析。

(五)、功能仿真(或时序仿真)

建议先做功能仿真,以检验设计项目的逻辑真确性,这样可以提高设计效率。

1、功能仿真设置:AssignmenmtsSettings弹出的窗口中选择Simulator Settings。在右边Simulation mode中选择 Functional.2、ProcessingGenerate Functional Simulation netlist,生成功能仿真所需的文件。

3、建立波形文件并进行功能仿真

⑴FileNew,在窗口中选择Vector Waveform file打开向量波形文件编辑器。

⑵设置仿真时间区域:可默认。一般几十微妙。时间区域过长,使仿真时间变长,影响仿真效率。

⑶在向量波形文件编辑器中添加项目的相关引脚。原则上是所有引脚,但有的项目引脚很多,可以只添加必要的一些引脚。双击向量波形文件编辑器Name栏的空白区域后,会弹出一个“Insert Node or Bus”对话框,在弹出的对话框中选择“Node Finder„”按钮,则弹出“Node Finder„”对话框,选择Filter:Pins:all,然后点击List,Nodes Found栏将列出所有输入、输出端口。选择要观察的信号,点击“>”命令按钮加入到观察目标窗口中。选择OK,则在波形图中加入了待观察信号的图形。

或者执行ViewUtility WindowsNode Finder命令打开Node Finder窗口,在弹出的窗口中将所需引脚拖入波形编辑器中。

⑷编辑输入波形:对所有的输入引脚设置合适的波形。⑸启动仿真器:ProcessingStart Simulation.⑹观察分析仿真结果。仿真结果保存于文件“Simulation Report”,此文件在仿真完成后会自动弹出。若仿真结果有出入,重新修改程序,直到仿真结果没有问题。

(六)、下载验证:

1、芯片选择ACEX1KEP1K30QC208-2;

2、引脚锁定:

3、全编译;

4、下载线连接:将25针连下一端连接电脑LPT1口,一端连接到编程模块的DB25接口,再用十针连线一头插入通用编程模块JTGA下载接口处,另一头连接到目标芯片的下载接口。

5、打开实验箱电源,将模式选择开关CTRL的(2)(4)(8)拨至ON,使按键KD1,KD2,LED1,LED2,LED3,LED4,LED5等有效。

6、下载:ToolsProgrammer,完成下载。

7、拨动开关按键KD1,KD2验证电路。

四、实验程序及仿真结果

(一)、实验程序:

时序仿真结果:

波形文件及仿真:

五、实验箱现象描述

注:在程序正确,正确操作实验箱并成功下载并正常运行程序的前提下,现象为:实验箱上一排设定的LED灯,分别为4个表示四位二进制码,一个表示使能信号EN,一个表示复位信号RST,一个表示置数信号,一个进位位COUT,高电平时表示进位,四个用于置数的灯。EN信号高电平有效,低电平起保持作用,RST低电平有效,起复位作用,LOAD信号低电平有效,起置数作用。启动实验箱,让EN灯亮(高电平),RST灯亮(高电平),LOAD灯亮(高电平),此时表示四位二进制码的LED灯分别从0到9计数(约为1S记一个数),到10的时候,显示数的四个LED灯表示成0(全灭),进位位灯(COUT)闪动一次(表示进一位),如此反复。使EN灯熄灭(低电平),显示数的灯停止变动,保持在它当前所表示的数值。恢复EN灯亮,继续计数。使RST灯熄灭(低电平),显示数的灯立即变为全灭(表示复位为0)。设置任意值,使LOAD灯熄灭(低电平),显示灯变成设置的数值,然后正常计数。

六、心得体会

在这次实验中,QUARTUS II软件是英文版的,一下基本功能在第一次中还是不够熟悉,通过问老师同学,慢慢的了解到QUARTUS Ⅱ软件的基本使用方法,以及从编写程序到下载到实验箱验证运行的基本流程,实验二用原理图输入法设计2位频率计

一、实验目的:

1.熟悉和掌握用QUARTUS Ⅱ的原理图输入方法设计简单数字系统的方法,并通过一个2位频率计的设计掌握用EDA软件进行数字系统设计的详细流程。2.掌握用EDA技术的层次化设计方法; 3.掌握多个数码管动态显示的原理与方法

二、实验内容

用原理图输入法设计一个2位频率计

三、实验步骤

1.在顶层文件设计窗口中设计频率计,频率计的设计分成几部分设计,分别是一个2位十进制计数器,一个时序控制电路,一个显示电路模块。

2.先设计2位十进制计数器,如图显示为设计好的2位十进制计数器。

步骤:(1)、点击file—new,弹出如图所示窗口,点击design File中Block diagram/schematic file,再点击ok即可。(2)、在弹出的bdf文件设计窗口中设计所需的设计,设计完成后,点击编译按钮,编译无误后,再进行时序仿真。

结果如图:

(3)、即可点击file—created/update—create symbol files for current file.生成元件符号,供高层次设计调用。注意:需要独立建立工程,2位十进制计数器的工程名和bdf文件名都为counter8。

3、设计时序控制电路,设计步骤与设计2位类似,设计完成后,一样需要设计文件符号供高层次设计调用,如图为设计好的时序控制电路。

4.在顶层设计窗口中设计顶层设计,最终的设计如图

进行时序仿真无误后进行波形仿真,结果如图:

可以从波形仿真中看出,当输入的待测信号的周期为410ns的时候,所测的的频率的最后两位为39。

四、试验箱验证及现象描述

引脚正确设定并正确下载到试验箱后,调节待测信号频率,当输入为4hz时,数码管上显示04,当输入为8hz,数码管上显示08,当输入为16HZ时,数码管

上显示为16,当输入为128hz时,数码管上显示为28。

五、心得体会

这次实验中,按照书上面的接线图,完成基本的接线,然后在电脑上面设计原理图,进行实验的测试,掌握用EDA技术的层次化设计方法,在实验中也出现过点失误,软件运行出错,经过检查,发现软件没有破解,在实验中还是要注意小细节。

实验三简易正弦波信号发生器设计

一、实验目的:

1、进一步熟悉QuartusII设计流程;

2、熟悉LMP_ROM与FPGA硬件资源的使用方法。3、熟悉SignalTap II嵌入式逻辑分析仪的使用方法。

二、实验内容

用原理图设计一个简易的正弦波信号发生器。

三、实验步骤

1.建立一个工程,取名为SIN_GNT。

2.生成.mif文件,用直接编辑法。点击file—new—memory file—memory initialization file,点击OK,选number为128位,word size为8位,点击ok,填写 表格,结果如图

3.以原理图方式对LPM_ROM进行设置和调用,在工程原理图编辑窗中双击,出现symbol框图中点击megawizard plug-in manager,在所示窗口中点击memory compiler的ROM:1-PORT,取文件名为ROM78,正弦波数据初始化文件选择DATA7X8.mif,即可生成正弦信号数据存储器ROM,如图所示

4.用原理图方式对7为计数器LPM模块,方法与制作ROM78模块类似,如图所示

5.新建一个原理图设计窗口,取名为SIN_GNT,在窗口里面设计所需的电路,结果如图,进行时序仿真,无误后建立波形文件,结果如图

由图可知,在时间脉冲的作用下,AR计数,相对于的,Q也从正弦信号数据存储器ROM中输出相对应的数值,由这两项,这可以在示波器上输出正弦波。

四、心得体会

在实验中,LPM 是参数可设置模块库Library of Parameterized Modules 的英语缩写,Altera 提供的可参数化宏功能模块和LPM 函数均基于Altera 器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera 特定器件的硬件功能。例如各类片上存储器、DSP 模块、LVDS 驱动器、嵌入式PLL 以及SERDES 和DDIO 电路模块等等。这些可以以图形或硬件描述语言模块形式方便调用的宏功能块,使得基于EDA 技术的电子设计的效率和可靠性有了很大的提高LPM可实现基于LPM的流水线的累加器的设计,逻辑数据采样电路设计,简易正弦信号发生器的设计

实验四用状态机实现序列检测器的设计

一、实验目的

1、熟悉状态机的作用及设计方法;

2、学习用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。

二、实验原理

序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果与检测器预先设置的码相同,则输出为1,否则输出为0。

三、实验内容

设计一个序列检测器,对1110010进行检测,对设计进行仿真测试并给出仿 真波形。

四、实验步骤

(1)运行软件,创建一个工程,取名为SHCK,打开文本文件编辑窗口,输入编写好的程序,如图所示。

取名为shiyan4,保存生成shiyan4.v文件。

(2)编译,时序仿真,直至无错误。

(3)建立波形文件,保存,取名为SHCK。设置各个需要的设置的参数,仿真时间设置为50us,时钟信号周期为4us,复位信号高电平有效,一般情况保持低电平,设置输入信号DIN含有输入数据段如图1110010,如图所示

(4)点击波形仿真,结果如图

由仿真结果可以看出,只有当输入完整的1110010时,输出信号才是高电平。(5)点击tools—netlist viewers—state machine viewers,查看状态转换表。

四、心得体会

通过本次实验掌握了如何用Verilog HDL语言实现状态机的原理,运用状态机实现序列检测器的设计,进一步掌握了课堂上所学到的知识,但同时充分的感觉到了自己的不足之处,今后一定要加强自己弱势方面的学习,用心学好EDA教科书上的知识,并抽时间在课外进行深入地学习,相信下次试验情况会有很大程度的改观

EDA实验报告(四位全加器的实现)
TOP