ASIC作业四.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ASIC作业四

实验内容16位暂存器,一个复用器,一个加法减法器单元,一个计数器,一个控制单元。数据从16位的DIN通道输入,这些数据可以通过16位复用器存储到不同的寄存器里面,R0到R7之类的。数据也可以通过复用器从一个寄存器转移到另一个寄存器里面。复用器输出到总线上。加减法的处理是先把一个数据输出到总线,然后保存到寄存器A,第二个数输入到总线,这时候加减单元开始处理操作请求,结果储存进寄存器G。G的数据也可以转移到其他寄存器里面。通过控制单元的管理,系统可以在每个时钟周期里处理不同的操作。控制单元决定data什么时候放进bus里面,也可以控制着它放进哪个寄存器。比如如果control unit使能R0 OUT 和A in那么R0寄存器里面的数据就会通过BUS在下一个时钟触发沿传递到寄存器A里面。这样的系统叫处理器。它可以执行指令形式的操作。表一的是这个练习里这个处理器必须支持的指令。左栏显示一个指令的名称及其操作。RX ←[RY]表示RY寄存器的内容储存到RX里面,mv是转移指令,mvi把16位D转移进寄存器Rx。每条指令可以编码成9-BIT IIIXXXYYY的形式存储进IR 寄存器,III代表指令,XXX代表RX寄存器,YYY表示RY。由于后面还有其他指令,所以我们使用3bit编码。因此IR要占DIN中的9bit,DIN有16biit。mvi指令的时候 YYY无效,指令先通过DIN通道存储进IR里面,后面D再通过DIN INPUT提供。类似加减这些指令要超过一个时钟周期才能完成,因为复杂的数据转移要通过BUS完成。控制单元使用2bit 的counter来让他能够步进这些指令。当Run使能的时候,处理器开始处理DIN INPUT的指令,指令结束时候处理器使能Done output端口。表2写清楚了一些可以在每个步骤里面生效然后完成表一里面的指令的控制信号。T0唯一生效的控制信号是IRin,所以就没写出来。用verilog代码设计完成图一里面的处理器:建立一个新的Quartus project。生成所需的Verilog文件,它包括在你的项目中,并编译电路。图2a是建议的代码架构,图2b是code中可能出现的有用的子电路模块。functional simulation.图3给出的是一个正确输出的仿真vw图:2000[16-bit]在30ns中从DIN输入到IR。这个例子代表指令mvi R0,#D,其中D= 5在时钟沿50ns加载到R0。仿真后面展示了指令mv R1,R0 在90ns,add R0,R1在110ns,sub R0,R0在190ns。注意到仿真输出用一个4位16进制数表示DIN,用3位8进制数表示IR。新建一个project that will be used at DE2 board。顶层模块,包含输出输入端口。实例化你的顶层模块。使用switch 15-0来驱动DIN input ,使用switch17来驱动Run input,同样适用button key0为Resetn,key1为Clock。总线连接LEDR15-0,Done信号连接到LEDR17.把程序烧进DE2。完成电路搞进FPGA芯片。功能测试改变SW观察LEDs,处理器的时钟输入用一个拖把开关控制,使得步进执行指令和观察电路的举动变得容易。CODEmodule proc (DIN, Resetn, Clock, Run, Done, Buswires,IR,Tstep_Q,R0,R1,A,G,Sum);input [15:0] DIN;input Resetn, Clock, Run;output Done, IR, Tstep_Q, R1, R0, A, G, Sum;output [15:0] Buswires;reg [15:0] Buswires;reg[0:0] IRin; reg[0:7] Rin,Rout;reg DINout,Done,Ain,Gin,Gout,AddSub;reg [15:0] Sum;wire [1:0] Tstep_Q; wire [8:0]IR; wire [2:0]I; wire[7:0] Xreg; wire[7:0] Yreg; wire[15:0] R0; wire[15:0] R1; wire[15:0] R2; wire[15:0] R3; wire[15:0] R4; wire[15:0] R5; wire[15:0] R6; wire[15:0] R7; wire[15:0] A; wire[15:0] G; wire[1:10] select;wire Clear=Resetn|Done|(~Run~Tstep_Q[0]~Tstep_Q[1]);upcount Tstep (Clear, Clock, Ts

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档