组成原理实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

科目:计算机组成原理学院:计算机科学与技术

实验一Hamming码

1.实验步骤

(1)、先连接JTAG线和USB线,然后接实验箱电源线,最后才可以打开电源。(切记:不能带电插拔Jtag口,否则会损坏实验设备)

(2)、安装ByteBlaster:Quartus tools>programmer HardwareSetup(在打开programmer窗口的左上角或从Edit菜单—> HardwareSetup亦可打开)选Hardware Settings点击Add Hardware Hardware type Altera ByteBlaster ok 即可(若已安装,此步可省);Mode选Jtag。

(3)、打开Quartus tools programmer AddFile,将hamming.sof(在C盘的相应目录下)下载到FPGA中。注意进行programmer时,应在program/configure下的方框中打勾,然后下载。

(4)、在实验台上通过模式开关选择FPGA独立调试模式010。

2.观察实验和记录数据

(1).输入的8位操作数对应开关SD15~SD8,编码后的hamming码在灯A0~A12上体现。

(2).开关SA0是控制位,待校验的13位数据对应SD7~SD0与SA5~SA1。(3).比较的结果在灯R4~R0上体现。

如对8位数据10101100进行hamming编码和校验。

1、先手工计算校验位P5~P1=_10111_,编码后的hamming码为

_1101001101011__。

2、拨动开关SD15~SD8输入10101100,观察灯A0~A12=_1101011001011__,看是否与自己手工计算的hamming码相符。

3、输入待校验的13位数据,假设输入1111001101011。拨动开关SA0为1开始校验,拨动SD7~SD0,SA5~SA1。观察灯R4~R0=_11011__,也就是校验结果的值。

4、比较编码后的hamming码和校验的hamming码,发现第_D7位数据错误,手工计算S=__00000__,和3中观察到的R4~R0是否相符。

5、可以输入其他位错误的校验数据观察结果值S是否正确。

6、1~5做完后,重新输入新的8位数据做实验,并填写表。

表1.1.4

3.实验心得

通过这次实验,我们对海明码和容错技术有了初步的了解,掌握了海明码的编码技术以及海明码的校验方法。对海明码的实现原理进行了更深的学习及理解,它通过在数据中加入几个校验位,将数据代码的码距比较均匀的拉大,并把数据的每一个二进制位分配在几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,使得海明码成为较好的校验方法。对海明码有了

全面的了解。

实验二乘法器

1.实验步骤

(1)如果未安装ByteBlaster,参照实验一的配置文件的安装。

(2)连接JTAG和USB通信线,打开电源。

(3)打开Quartus->tools->programmer,将booth_multiplier.sof下载到FPGA中。注意进行programmer时,应在program/configure下的方框中打勾,然后下载。

(4)在实验台上通过模式开关选择FPGA独立调试模式010。

(5)将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU所需要的时钟使用正单脉冲时钟。

2.实验现象

本实验实现4位数的Booth乘法(有符号数乘法)。

输入输出规则对应如下:

1、输入的4位被乘数(multiplicand)md3~md0对应开关SD11~SD8。

2、输入的4位乘数(multiplier)mr3~mr0对应开关SD3~SD0。

3、按单脉冲按钮,输入脉冲,也即节拍。

4、乘积product(8位)p7~p0对应灯A8~A1,辅助位A0。

5、当计算结束时,final信号为1,对应灯R7。

一共需要0~8九个小步骤计算出结果。本实验也是通过九个小步骤实现的,通过按单脉冲按钮输入脉冲,观察积寄存器的变化,掌握booth乘法器的原理。

1、拨动开关SD11~SD8输入4位被乘数(md3~md0)0010,SD3~SD0输入4位乘数(mr3~mr0)1101。

2、按动单脉冲按钮,输入脉冲,对照表2.5观察积寄存器即灯A8~A0的变化情况,当灯R7亮时,说明计算结束,灯A8~A1为最后相乘结果。

进行新的乘法运算时,或者说当上一次运算结束即灯R7亮时,输入新的被乘数、乘数(拨动开关),然后按动单脉冲开关即可观察正确的寄存器结果。

3.实验心得

在这次实验中,对booth算法进行了更深的学习和理解,并把它用在了实际应用中。对乘法器和booth乘法器的原理有了全面的学习研究以及实践。在实验中,因为最初对booth算法的不熟悉和不理解,造成了一些错误,最后在实验指导书的帮助下,成功完成了实验。总之,通过这次实验,我们学到了很多,对以后的学习很有帮助。

4.思考题

1、试述Booth乘法器的原理,即为什么可以用相邻两位的差来决定加减操作。

答:以前乘法器的第一步是根据乘数的最低位来决定是否将被乘数加到中间结果积,而Booth算法则是根据乘数的相邻2位来决定操作,第一步根据相邻2位的4种情况来进行加或减操作,第二步仍然是将积寄存器右移。

实验三时序部件实验

1.实验步骤

1、如果未安装(设置好)ByteBlaster,参照实验一的配置文件的安装。

2、连接JTAG,并按下并口转接口的A按钮,打开电源。

3、实验台上通过模式开关选择FPGA独立调试模式010。

2.实验现象

(一)输入输出规则

1、主频φ对应A15(当φ为1时A15亮(大约1秒),当φ为0时A15灭),

D触发器的输出对应A14,R-S触发器的输出对应A13;

2、节拍信号T4~T1对应A7~A4,节拍信号T4’~T1’对应A3~A0。

根据维持阻塞的原理可知,在T1~T4的任何期间启动控制逻辑,只有在T1~T4结束后,下一次循环开始时,才开始输出T1’~T4’;同理,停机时,

相关文档
最新文档