北科大第二次计组实验报告_超前进位加法器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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选项可以生成综合后的电路结构图;

相关文档
最新文档