计算机组成原理实验一 (定点加法)

一,实验步骤和调试过程

1.创建create new project

2.选择文件保存路径,给文件命名

3.选择RTL project,勾选do not specify sources at this time

4.Famliy选择Aritx7,package选择fbg676,筛选中选xc7a200tfbag676-2

 

5.添加源文件选择add or create design sources添加add.v,adder_display

add.v原理

实验中:有 2 个 32 位数的输入和 1 个进位输入,产生 1 个 32 位的加法和 结果和 1 个向高位的进位。本实验提供的参考设计是直接写“+”号实现加法功能的, 这样的写法综合工具会调用内部的模块库的加法器来实现,往往会比自行设计的加法 模块更高效和省资源。

6.添加lcd_module.dcp

7.添加模拟文件选择add or create simulation sourse添加testbench.v将其置顶

testbench.v原理

实验中:需要产生的输入激励就是2 个加数和 1 个低位进位信号,在该激励输入到加法功能模块中后,会输出加法结果和向高位的进位信号。仿真的过程中会产生波形文件,可以通过观察波形文件确定功能的正确性,在出错的情况下可以定位错误 位置。

8.点击run simulation进行仿真

9.添加约束文件add or create cnostraints添加adder.xdc

adder.xdc原理

所谓约束文件就是将顶层模块(本例中为 adder_display)的输入输出端口与 FPGA 板上的 IO 接口引脚绑定,以 完成在板上的输入输出。

10.点击run synthesis进行分析点opern synthesized design进行分析结果显示

11.点击generate bitsteam烧写比特流完成后点open hardware manager选择auto connect点击program device导入触摸屏

二、实验结果(上传实验结果截图或者简单文字描述)

           

三、实验小结和结果分析

结果分析

96+52=E8

10010110

+  1010010

= 11101000

96+59=EF

   10010110

+   1011001

=  11101111

原码一位加法

两个相同符号的数相加会导致溢出

验证结果正确

实验小结

1. 熟悉了实验室实验箱和所用的软件。 2. 学会了利用该实验箱各项功能开发组成原理和体系结构实验的方法。 3. 理解了加法器的原理和设计两个相同符号的数相加会导致溢出。 4. 熟悉了 verilog 语言的电路设计比较难。 5. 为后续设计 cpu 的实验打下基础。6.明白了各个文件的作用以及如何去插入调用,如何去上板分析,如何在仿真波形图上进行演算。

 四、程序清单

                      

 

 

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
计算机组成原理 课程设计报告 实验项目:1、设计一个具有带进位加法和立即数寻址方式的模型机 2、设计一个具有带进位加法和条件跳转的模型机 专 业: 计算机科学与技术 班 级: 09级37-3班 学 号: —————— 姓 名: 合 作: 指导教师: 实验时间: 2011-6-15 ~~ 6-17 实验一:设计一个具有带进位加法和立即数寻址方式的模型机 1、问题描述 本题目设计的是一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机, 并写出工作程序和测试数据验证所设计的指令系统。 2、设计目标 在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中 ,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第 一个寄存器,输出结果,并显示。另外,实现无条件跳转至开始。 3、指令格式 "助记符号 "机器指令码 "功 能 " "IN "0000 0000 "Input -> R0 " "ADC Imm "1110 0000 XXXX "R0+Imm+CY -> R0 " " "XXXX " " "STA addr "0010 0000 XXXX "R0 -> [addr] " " "XXXX " " "OUT addr "0011 0000 XXXX "[addr] -> LED " " "XXXX " " "JMP addr "0100 0000 XXXX "[addr] -> PC " " "XXXX " " 4、设计微指令 (1)定义指令码,及定义一个下地址为08H "指令 "指令编码 "微地址 " "IN "0000 0000 "08 " "ADC "0001 0000 "09 " "STA "0010 0000 "10 " "OUT "0011 0000 "11 " "JMP "0100 0000 "12 " (2)设计微指令编码表 "微地址 "S3 "S2 " "MOVrs,rd "XXXX Rs Rd "Rs->Rd " "ADCrs,rd "XXXX Rs Rd "Rs+Rd+CY -> R0 " "BZCD "00 00 00 00 "当cy=1或z=1时,D->" " "D "PC " " " "否则,顺序执行。 " "INrd "XXXX 01 Rd "SW->rd " "OUTrd "XXXX 10 Rd "Rd -> LED " "HALT "XXXX 0000 "停机 " 3、设计微指令 (1)定义一个下地址为20H "指令 "指令编码 "微地址 " "IN "0011 0000 "23 " "MOV "0010 0000 "22 " "ADC "0001 0000 "21 " "BZCD "0000 0000 "20 " "OUT "0100 0000 "24 " "HALT "0101 0000 "25 " (2)设计微指令 微地址 "S3 "S2 "S1 "S0 "M "Cn "WE "A9 "A8 "A "B "C "UA5-UA0 " "00 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "0 "1 " "01 "0 "0 "0 "0 "0 "0 "0 "1 "1 "1 "1 "0 "1 "1 "0 "1 "1 "0 "0 "0 "0 "0 "1 "0 " "02 "0 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 " "20 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 "1 " "11 "0 "0 "0 "0 "0 "0 "0 "1 "1 "1 "1 "0 "1 "1 "0 "1 "1 "0 "0 "0 "0 "0 "1 "1 " "03 "0 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "1 "0 "0 "0 "1 "1 "0 "0 "0 "0 "0 "0 "1 " "21 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "1 "0 "0 "1 "0 "0 "0 "0 "0 "0 "0 "1 "0 "0 " "04 "0 "0 "0 "0 "0 "0 "0 "1 "1 "0 "1 "1 "0 "0 "1 "0 "0 "0 "0 "0 "0 "1 "0 "1 " "05 "1 "0 "0 "1 "0 "0 "0 "1 "1 "0 "0 "1 "1 "0 "1 "0 "0 "0 "0 "0 "0 "0 "0 "1 " "22 "0 "0 "0 "0 "0

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希望能坚持

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值