北科大第二次计组实验报告_超前进位加法器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京科技大学计算机与通信工程学院
实验报告
实验名称:超前进位加法器
学生姓名:
专业:计算机科学与技术
班级:
学号:
指导教师:
实验成绩:
实验地点:
实验时间:2015 年 5 月28 日
一、实验目的与实验要求
1、实验目的
(1)掌握静态随机存储器的基本结构;
(2)掌握静态随机存储器RAM工作特性及数据的读写方法;(3)掌握超前进位加法器的原理及其设计方法;
(4)理解使用超前进位逻辑设计ALU的方法;
(5)掌握乘法器的原理及其设计方法;
(6)熟悉FPGA应用设计及QuartusⅡ软件的使用。
2、实验要求
(1)验证静态随机存储器的读写功能;
(2)用QuartusⅡ软件设计一个超前进位加法器;
(3)用QuartusⅡ软件设计一个阵列乘法器。
二、实验设备(环境)及要求
Window 8,QuartusⅡ软件
三、实验内容与步骤
1、实验1
(1)实验内容
验证静态随机存储的读写功能:
(2)主要步骤
①关闭实验系统电源,在断电状态下按图3.15所示连接实验电路,并检查无误。
②将时序单元的状态开关置为“单步”档,MEM单元的编程开关置为“运行”档。
③将CON单元的IOR开关置为1(使IN单元无输出),打开电源开关,如果听到有“嘀”报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。
④给存储器写入数据:要先写地址,后写数据。
写存储器的流程如图3.16所示(以向00地址单元写入11H为例):
读存储器的流程如图3.17所示(以从00地址单元读出11H为例):
⑤根据对实验原理的描述,以向03H地址单元写入数据33H为例,填写表3.6.中的操作步骤以及相关信号状态。在以从03H地址单元读取数据为例,填写表3.7中的操作步骤及相关的信号状态。
2、实验2
(1)实验内容
用QuartusⅡ软件设计一个8位超前进位加法器。
(2)主要步骤
①打开Quartus Ⅱ软件,进入软件初始界面;
②通过File→New→Block Diagram/Schematic File选项,建立原理图文件;
③添加原件和连接线:分别在原理图上画出A、B模块,保存原理图文件,通过File→Create/Update→Crate Symbol Files for File选项,把A、B原理图转换为元件符号。再建立一个原理图文件,按照图3.8接线。原理图如下:
A模块
B模块
④完成原理图后,过File→New Project Wizard选项,建立一个新工程,在建立时候在Add Files窗口添加原理图文件;
⑤进行功能仿真。通过Processing→Generate Functional Simulation Netlist选项产生功能仿真网络表。有了功能仿真网络表,就可以对工程进行功能仿真。通过File→New或者单击
工具按钮新建一个Vector Waveform File向量波形文件;
⑥在向量波形文件窗口中,在Name下方空白处右击,在弹出的快捷菜单中选择
Insert→Insert Node or Bus菜单项,或者在Name正文空白处双击弹出Insert Node or Bus对话框,单击Node Finder按钮,进行信号的添加;添加a、b、C0,s信号,a、b,s设为十进制值,a、b设置为随机值,C0置零,保存文件;
⑦通过Assignments→Settings选项或者单击工具按钮进行仿真设置;更改Simulation mode 为Functional,选择仿真输入为刚刚新建的向量波形文件。完成设置后,通过Processing→Start Simulation选项或者单击工具按钮进行功能仿真,仿真结果为下图:
3、实验3
(1)实验内容
用QuartusⅡ软件设计一个4*4阵列乘法器。
(2)主要步骤
①打开Quartus Ⅱ软件,进入软件初始界面;
②通过File→New Project Wizard选项,建立一个新工程;
③通过File→New选项或单击工具按钮,在工程里新建Verilog HDL代码文件,保存文件,在Quartus Ⅱ提供的代码编辑器里进行代码编辑:
module chengfa(a,b,p);
input [3:0]a,b;
output reg [7:0]p;
integer c;
always@(a or b)
begin
{c,p[0]}=a[0]*b[0];
{c,p[1]}=a[1]*b[0]+a[0]*b[1]+c;
{c,p[2]}=a[2]*b[0]+a[1]*b[1]+a[0]*b[2]+c;
{c,p[3]}=a[3]*b[0]+a[2]*b[1]+a[1]*b[2]+a[0]*b[3]+c;
{c,p[4]}=a[3]*b[1]+a[2]*b[2]+a[1]*b[3]+c;
{c,p[5]}=a[3]*b[2]+a[2]*b[3]+c;
{c,p[6]}=a[3]*b[3]+c;
p[7]=c;
end
endmodule
④完成代码编写后,通过Processing →Start →Start Analysis&Synthesis选项或者单击工具按钮进行Quartus Ⅱ工程的语法与综合编译;编译无误后,通过Tools→Netlist Viewers→RTL Viewer选项可以生成综合后的电路结构图;