当前位置: 首页 > wzjs >正文

深圳专业网站建设多少钱巨鹿网站制作

深圳专业网站建设多少钱,巨鹿网站制作,网站开发常用开发语言,西安有哪些网站建设公司1. 实验目标 设计一个能实现如下功能的4位带符号位的 补码 ALU&#xff1a; Table 4 ALU 功能列表  功能选择 功能 操作 000 加法 AB 001 减法 A-B 010 取反 Not A 011 与 A and B 100 或 A or B 101 异或 A xor B 110 比较大小 If A<B then out1…

1. 实验目标

设计一个能实现如下功能的4位带符号位的 补码 ALU:

Table 4 ALU 功能列表 

功能选择

功能

操作

000

加法

A+B

001

减法

A-B

010

取反

Not A

011

A and B

100

A or B

101

异或

A xor B

110

比较大小

If A<B then out=1; else out=0;

111

判断相等

If A==B then out=1; else out=0;

ALU进行加减运算时,需要能够判断结果是否为0,是否溢出,是否有进位等。这里,输入的操作数A和B都已经是补码。比较大小请按带符号数的方式设置。

执行逻辑操作时不需要考虑overflow和进位。

由于开发板上输入有限,可以使用SW作为数据输入,button作为选择端。使用SW作选择器。

2. 通过实验的收获

1. 理解ALU 功能单元单元

2. 理解进位和溢出位的区别。进位是加法器每个比特相加过程中的中间结果。而溢出位是最终结果用来判断计算结果是否有效的指示信息。

3. 如何通过C代码读取硬件模块中的值

3. 实现过程

1. 新增 alu_bit4.v 模块文件

利用组合逻辑实现计算,利用case语句实现对溢出位的判断。下面是实验中的部分代码。

// 预计算所有可能的操作结果assign not_A     = ~A;assign and_result = A & B;assign or_result  = A | B;assign xor_result = A ^ B;assign add_result = {1'b0, A} + {1'b0, B};  // 扩展为5位进行加法assign sub_result = {1'b0, A} - {1'b0, B};  // 扩展为5位进行减法// 根据opcode选择执行的操作always @(*) begincase (opcode)3'b000: begin  // 加法result  = add_result[3:0];carry   = add_result[4];  // 进位为最高位overflow = (A[3] == B[3]) && (result[3] != A[3]); // 符号相同但结果符号不同end3'b001: begin  // 减法result  = sub_result[3:0];carry   = ~sub_result[4];  // 减法的借位取反overflow = (A[3] != B[3]) && (result[3] != A[3]); // 符号不同但结果符号异常end

2.修改top.v文件

例化ALU模块,同时将计算结果的变量添加到输出端口,方便main.cpp进行访问

module top(input clk,input rst,input [4:0] btn,input [15:0] sw,input ps2_clk,input ps2_data,input uart_rx,output uart_tx,output [15:0] ledr,output VGA_CLK,output VGA_HSYNC,output VGA_VSYNC,output VGA_BLANK_N,output [7:0] VGA_R,output [7:0] VGA_G,output [7:0] VGA_B,output [7:0] seg0,output [7:0] seg1,output [7:0] seg2,output [7:0] seg3,output [7:0] seg4,output [7:0] seg5,output [7:0] seg6,output [7:0] seg7,output [3:0] result, //实验三:简易4bit ALUoutput zero, //实验三:简易4bit ALUoutput overflow,//实验三:简易4bit ALUoutput carry //实验三:简易4bit ALU
);//实验三:简易4bit ALU// output declaration of module alu_4bitalu_4bit u_alu_4bit(.A        	(sw[3:0]        ),.B        	(sw[7:4]        ),.opcode   	(sw[10:8]      ),.result   	(result    ),.zero     	(zero      ),.overflow 	(overflow  ),.carry    	(carry     )
);
3.修改main.cpp 文件

添加对输出结果的打印

      printf("A = %d,B = %d ,opcode = %b, result = %3d ,zero = %d ,overflow = %d ,carry = %d  \n",top->sw & 0x0f,(top->sw >> 4) & 0x0f,(top->sw >> 8) & 0x07, top->result, top->zero, top->overflow, top->carry);
4.运行结果

SW[3:0] 为输入A

SW[7:4] 为输入B

SW[10:8] 为计算选择器

在npc目录下 ,运行make run 可以实验体验

下图位一个 6-2  的实验输出

http://www.dtcms.com/wzjs/794500.html

相关文章:

  • 淘宝小程序开发文档江东seo做关键词优化
  • 海淘科技上海网站设计wordpress 判断置顶
  • 邓卅做网站在什么地方开源软件
  • 义乌 网站建设赌粉在哪个平台引流
  • 做前端的女生压力大吗秦皇岛网站建设seo
  • 弹幕网站开发代码动漫做的游戏 迅雷下载网站
  • 上海简约网站建设公司汕头网站建设方案维护
  • 用手机做网站经济型网站建设
  • 12380举报网站制度建设建行官方网站登录
  • 开平市住房和城乡建设局网站应用软件下载大全
  • 做网站和网页网站备案 营业执照副本
  • win2003 建设网站建设类似衣联网的网站
  • 中国建设网官方网站企业登录网站建设流程 文档
  • 西安官网seo方法优化公司排行榜
  • 做一个网站一般要多少钱wordpress默认主题下载地址
  • 固原门户网站建设网页制作与设计alt什么意思
  • 江苏淮安建设局网站wordpress页面标题去除
  • 网站开发公司推荐网页游戏大全链接
  • 东莞做网站贴吧wordpress直播购物插件
  • 百度引流推广怎么收费北京网站优化站优化
  • 深圳南山区住房和建设局网站官网企业信息系统英文
  • 成都分类信息网站开发网站设计师如何让客户信任你
  • seo营销优化软件东营企业网站排名优化
  • 上海工程建设交易信息网站网站如何做线上支付功能
  • 黄浦建设机械网站网站开发客户需求分析
  • 兼职做网站的软件网站备案需要什么资料
  • 兼职做Ppt代抄论文的网站如何做分类网站信息营销
  • 学编程可以建设网站吗域名注册长沙有限公司
  • 昆明本地网站建站之星如何建网站
  • 在门户网站上爆光怎么做珠海网站建设成功案例