第一篇: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)将设计好的一位全加器进行例化,操作为fileCreate/UpdateCreate 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实验报告
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]:2046(十六进制)六:心得体会
通过电子设计的数字部分EDA设计,我们掌握了系统的数字电子设计的方法,也知道了实验调试适配的具体操作方法。
通过实验,进一步加深了对EDA的了解,让我对它有了浓厚的兴趣。但是在调试程序时,遇到了不少问题,编译下载程序时,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
ou 3
第四篇:EDA实验报告
EDA 实验报告
张佳兴 2220131738 电气工程及其自动化1班
一、Verilog语言反应硬件特性举例
1.module cc(clk,en,cout)、input、output,这三个语句用Verilog语言定义了一个逻辑器件,module后边括号内为端口名称,每个端口都对应硬件的一个引脚,引脚的输入输出性质都由input、output所定义,C语言中对变量的定义,都是int等反应数据大小的数据类型,不能反映硬件特性。
2.reg寄存器类型,表示一个具有保持作用的数据储存单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。这种类型就和实际芯片中的寄存器作用一样,可以将其中数据状态保存一定时间,C语言中没有这一类型。
3.always语句当其检测到适当状态时,执行其中内容。Always @(posedge clk)语句就表明,检测到高电平执行,和实际芯片引脚状态变化引起内部变化原理一致,C语言中没有过程赋值这种语句,C中也没有对高低电平、上升下降沿的判断条件。
4.Verilog语言中的模块例化,将各个模块程序在例化程序里结合起来,在硬件层面就相当于将各个小的模块互相连接,构成一个大的模块,C语言中类似的形式是函数,一个函数可以有子函数,但是C中的函数不能反应硬件特性。
二、数字频率计设计与调试总结
在进行课程设计的过程中我遇到了以下几点困难:
1.在最初设计时,没能利用硬件的思想来设计这个题目,导致频率频率计数的逻辑控制部分设计不清。在参考老师所提供的框图后了解应将逻辑控制部分单独设计成一个模块,通过en和clr来控制计数,这样技术部分就可以将之前的实验内容移植过来,十分简便。
2.在设计过程中的,锁存部分原理没有搞懂。按照老师的框图,从前向后分析,发现锁存的时钟clk是之前逻辑控制部分的lock引脚所提供,这样就将每个周期所计得的频率结果在同一个时序通过锁存器向后传输。
3.配置引脚时出错,将数码管的位选引脚顺序弄反,导致数码管显示错误。仔细检查,发现错误,改正后正常运行。4.在拓展功能一的设计中,将十分频部分弄错,最后出来的结果和预期差了一些。在当堂实验课中,这个错误我没能及时纠正,回来之后,我对应程序认真检查,发现我的十分频,被我设计成了逢9进1,导致最后结果错误。
5.发现了自己很多语法问题,比如在过程赋值中对wire类型数据进行赋值导致错误,module定义的模块名称没有和文件名称对应导致错误等,最终我通过PPT及网络途径解决了这些问题。
在这次实验中,基本功能全部实现,并且是我自行制作,拓展功能一,同样是我自行完成,不过我当时得到的结果有误差,实验后我已经发现了问题,改正了错误。拓展功能二没有实现。
三、对课程的建议
1.我希望老师以后的实验过程中能够有一个答疑环节,在实验前,我们可以对预习中不懂的部分进行提问。
2..希望老师能增加一些课时,或者给我们一些课外时间去到实验室,我们的实验我自我感觉相对别的实验来说难度还是比较大的,我觉得如果有充足的时间,洒家可以将拓展部分做出来,为自己争取更好的分数。
第五篇: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教科书上的知识,并抽时间在课外进行深入地学习,相信下次试验情况会有很大程度的改观