- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机组成原理实验报告算术逻辑单元ALU 实验(源代码全)
算术逻辑单元ALU实验
⼀.实验⽬的
1、理解算术逻辑单元ALU的⼯作原理。
2、掌握算术逻辑单元ALU的设计⽅法。
3、验证32位算术逻辑单元ALU的加、减、与、移位等基本功能。
4、选定⼏组数据,完成⼏种算术/逻辑运算。
⼆.实验设备
1、 装有Xilinx Vivado的计算机⼀台。
2、LS-CPU-EXB-002教学系统实验箱⼀套。
三.实验任务
1、学习MIPS指令集,熟知指令类型,了解指令功能和编码,归纳基础的ALU运算指令。
2、归纳确定⾃⼰本次实验中准备实现的ALU运算,要求要求⾄少实现5种ALU运算,包含加减运算,其中减法在内部要转换为加法,见表
1-1。
表1-1 ALU的控制信号
选择端aluc ALU功能
3 2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
0 1 1 1
1 1 1 1
3、根据如图1-1所⽰的结构框图,设计实验⽅案,并⽤Verilog编写相应代码。
4、 对编写的代码进⾏仿真,得到正确的波形图。
5、将以上设计作为⼀个单独的模块,设计⼀个外围模块去调⽤该模块,如图1-2。外围模块中需调⽤封装好的LCD触摸屏模块,显⽰ALU
的两个源操作数、操作码和运算结果,并且需要利⽤触摸功能输⼊源操作数。操作码可以考虑⽤LCD触摸屏输⼊,也可⽤拨码开关输⼊。
6、将编写的代码进⾏综合布局布线,并下载到试验箱中的FPGA板⼦上进⾏演⽰。
四.实验步骤
这⾥给出实验代码,具体的实验步骤请看书
alu.v
module alu(a,b,aluc,r,z);
input [31 :0] a ,b;
input [3 :0] aluc ;
output [31 :0] r ;
output z ;
a ign r = cal (a,b,aluc);
a ign z = ~|r;
function [31 :0] cal ;
input [31 :0] a ,b;
input [3 :0] aluc ;
casex(aluc)
4b0000 : cal = a + b ;//加
4b0001 : cal = ab;
4b0010 : cal = a^b;
4b0011 : cal = ba[4 :0];
4b0100 : cal = a-b;
4b0101 : cal = a |b;
4b0110 : cal = {b[15:0], 16h0};
4b0111 : cal = ba[4 :0];
4b1111 : cal = $signed (b) a[4 :0];//算术右移
endcase
endfunction
endmodule
alu-display .v
//*************************************************************************
// ⽂件名: alu_display.v
描述 : 显⽰模块,调⽤ 板上的 接⼝和触摸屏
// ALU FPGA IO
// 作者 : LOONGSON
⽇期
// : 2016-04-14
//*************************************************************************
module alu_display (
// 时钟与复位信号
input clk ,
后缀 代表低电平有效
input resetn , // n
//拨码开关,⽤于选择输⼊数
输⼊为控制信号
input [1:0] input_sel , //00: (alu_control)
输⼊为源操作数
//10: 1(a
您可能关注的文档
- 2019-2020学年辽宁省朝阳市英语八年级(上)期末学业水平测试模拟试题.pdf
- 辽宁省锦州市2018-2019学年八上物理期末学业水平测试试题.pdf
- 辽宁省阜新市2019年七年级上学期语文期末学业水平测试试题(模拟卷三).pdf
- 辽宁省朝阳市2020届七上地理期末学业水平测试试题.pdf
- 辽宁省朝阳市一年级上学期语文期末学业水平测试卷A卷.pdf
- 辽宁省辽阳市二年级下册语文期中学业水平测试卷(I)卷.pdf
- 辽宁省鞍山市2019-2020学年英语七上期末模拟学业水平测试试题(1).pdf
- 2020年辽宁省盘锦市八年级第二学期期末学业水平测试数学试题含解析.pdf
- 辽宁省朝阳市2019-2020学年初一下学期期末数学学业水平测试试题.pdf
- 年辽宁省普通高中学生学业水平考试数学真题.pdf
文档评论(0)