计算机组成原理课程设计报告16位模型机的设计_第1页
计算机组成原理课程设计报告16位模型机的设计_第2页
计算机组成原理课程设计报告16位模型机的设计_第3页
计算机组成原理课程设计报告16位模型机的设计_第4页
计算机组成原理课程设计报告16位模型机的设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-PAGE . z.*经济学院华信学院计算机组成原理课程设计报告计算数据块中所有数据的累加和并存储到内存单元中题 目 16位模型机的设计 姓 名学 号 4114170801 班 号 一 班 指导教师成 绩 2014年1月目 录TOC o 1-3 h u HYPERLINK l _Toc7545 一、引言 PAGEREF _Toc7545 3 HYPERLINK l _Toc10130 1.1设计目的 PAGEREF _Toc10130 3 HYPERLINK l _Toc28905 1.2设计任务 PAGEREF _Toc28905 3 HYPERLINK l _Toc26095 二、 详细设

2、计及实现 PAGEREF _Toc26095 4 HYPERLINK l _Toc15336 2.1 拟定指令系统 PAGEREF _Toc15336 4 HYPERLINK l _Toc25165 2.2指令格式 PAGEREF _Toc25165 5 HYPERLINK l _Toc24546 2.3寻址方式 PAGEREF _Toc24546 5 HYPERLINK l _Toc6087 三、16位CPU的模型 PAGEREF _Toc6087 7 HYPERLINK l _Toc5467 3.1 各功能部件的VHDL设计 PAGEREF _Toc5467 9 HYPERLINK l _

3、Toc18244 3.2 16位模型机的设计与实现 PAGEREF _Toc18244 22 HYPERLINK l _Toc8779 四、总结 PAGEREF _Toc8779 27 HYPERLINK l _Toc11488 五、参考文献: PAGEREF _Toc11488 27 HYPERLINK l _Toc12378 六、 代码 PAGEREF _Toc12378 28-. z.一、引言1.1设计目的为掌握并稳固本学期所学习的计算机组成原理知识,设计本次试验。运用整合所学的相关知识,一步步设计构造一台根本的模型计算机,明确计算机的控制原理与控制过程,稳固和灵活应用所学的理论知识,掌

4、握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下根底。1.2设计任务本机功能:计算数据块中所有数据的累加和并存储到内存单元中。汇编代码如下: START: MOV SI, OFFSET SRC1 ;源操作数地址送SIMOV DI,OFFSET D*T ;目的操作数地址送DIMOV B*,OFFSET SRC2 ;完毕地址送B*MOV BL 0 ;设置BL中初值为0NE*T:MOV AL,SI ;取数 ADD BL , AL ; 数据相加MOV DI,AL ;存数CMP SI,B* ;JE START ;如果SI=B*,则转向STARTINCSI ;修改源地

5、址JMP NE*T ;转向NE*T二、 详细设计及实现2.1 拟定指令系统分析:依据汇编语言程序得出部件间的数据流的方向为立即数存放器存放器内存 内存操作数采用存放器间址寻址方式源与目的存放器内容比拟,如果源等于目的转移,转向地址在指令中提供存放器加1指令无条件转移指令,转向地址在指令中提供。指令类型 指令中的立即数为一个字即16位立即数存放器需要在指令中指出存放器及立即数如:LOADI R0,10H,此指令为双字指令内存操作数存放器需要在指令中指出间址存放器及目的存放器如:LOAD R3,R1; 指令为单字指令存放器内存 需要指令中指出源存放器及间址存放器如:STORE R2,R7; 指令为

6、单字指令存放器内容比拟产生转移的指令需要指令中指出源、目的存放器以及转向的地址如:BRANCHEQI 0000H; 指令为单字指令存放器加1指令指令中指出存放器如: INC R1,指令为单字指令无条件转移指令指令中提供转向地址如:BRANCHI 0008H; 指令为单字指令-. z.2.2指令格式单字指令格式单指令但操作数:INC BRANCHI单指令双操作数:mov load store LOADI双字指令格式双字三操作数: BRANCHEQI BRANCHGTI操作码指令功能00001LOAD将存放器间址的存储单元内容装载到存放器00010STORE将存放器的数据存入到存放器间址的存储单元

7、00011MOV将源存放器内容传送到目的存放器00100LOADI将立即数装入到存放器00101BRANCHI无条件转移到由立即数指定的地址00110BRANCHEQI如果源存放器内容等于目的存放器的内容,则转移到由立即数指定的地址00111INC存放器内容加1指令01000ADD数据相加-. z.2.3寻址方式寻址方式含义立即数寻址指令格式中源操作数为立即数存放器间址寻址方式存放器中操作数的地址直接寻址主存中为操作数-. z.依据以上设计的指令系统,将主存中数据累加并存储到内存单元中的程序如下:地址机器码指令 功能说明0000H0001H2001H0010HLOADI R1,0010H源操作

8、数地址送R10002H0003H2002H0030HLOADI R2,0030H目的操作数地址送R20004H0005H2006H0016HLOADI R6,0016H完毕地址送R60006H0007H2007H0000HLOAD R7,0R7内放入0初始化最小值0008H080BHLOAD R3,R1取数0009H 401FHADD R7, R3相加000AH103AHSTORE R2,R7存数000BH000CH300EH0000HBRANCHEQI 0000H如果R6内容等于R1的内容,则转向0000H000DH3031HINC R1修改源地址000EH000FH2800H0008HBR

9、ANCHI 0008H无条件转移到由立即数指定的地址存储器初始化文件memdata.mif的内容:-. z.三、16位CPU的模型图1是采用单总线构造的16位CPU构造图,包含了根本的功能模块,由存放器阵列构成的8个16位存放器Reg0Reg7;工作存放器OpReg;算术逻辑运算部件ALU;移位器Shifter;输出存放器OutReg;比拟器p;指令存放器InstrReg;程序计数器Progt;地址存放器AddrReg。所有功能模块共用16位的三态数据总线进展信息的传送。 控制器模块由状态机实现,控制器依据指令、数据通路通过控制线向各功能模块发出控制命令。由存放器阵列构成的8个16位存放器Re

10、g0Reg7的优点是节省资源、使用方便。它们共用一个三态开关,由控制器选择与数据总线的连接。工作存放器OpReg 可为ALU、比拟器p 提供一个操作数,而ALU、比拟器的另一操作数直接来自数据总线。将ALU、移位器Shifter、输出存放器OutReg 串接起来,由控制器统一控制来共同完成一些复杂的操作,由输出存放器OutReg存储结果,输出存放器OutReg 向总线的输出端含有三态开关。比拟器p 由控制器直接控制,比拟的结果进入控制器。地址存放器AddrReg 提供要访问的主存单元的地址,本设计中将程序和数据放在同一存储器中。程序计数器Progt,不具备清零和+1的功能,存放CPU要执行的下

11、一条指令的地址。指令存放器InstrReg 存放CPU正在执行的指令。工作存放器OpReg,输出存放器OutReg,指令存放器InstrReg,程序计数器Progt,地址存放器AddrReg,均为最根本的存放器。为了验证CPU的功能,增加存储器,存储器中存入完成数据块传送所需的程序和数据。系统中所有向数据总线输出数据的模块,其输出口必须使用三态控制器。模型机的实际电路如图2所示:图2 顶层实体模拟图-. z.3.1 各功能部件的VHDL设计程序包:说明数据类型、运算器的功能、移位存放器的操作、比拟器的比拟类型和用于CPU控制的状态类型。运算器的设计功能:Sel输入操作说明0000C= A通过P

12、ASS0001C= A AND B与0010C= A OR B或0011C= NOT A非0100C= A *OR B异或0101C= A + B加法0110C= A - B减法0111C= A + 1加11000C= A - 1减11001C= 0清零说明:a15.0来自于总线,b15.0来自于工作存放器OpReg,c15.0输出送至移位器。sel3.0来自于控制器发出的控制信号aluSel3.0,选择ALU的操作。-. z.运算器功能仿真波形图如图3所示:图3 运算器功能仿真波形图仿真结果说明:当sel为0000时,进展直传的操作。通过pass,则c=a,为1000。当sel为0001时,

13、进展与的操作。a=1000,b=1234,与之后c为1000。当sel为0010时,进展或的操作。a=1000,b=1234,c为1234。当sel为0011时,进展非的操作。a=1000,a为EFFF。当sel为0100时,进展异或的操作。a *or b,c为0234。当sel为0101时,进展加法的操作。a=1000,c为2234。当sel为0110时,进展减法的操作。a=1000,c为FDCC。当sel为0111时,进展加1的操作。a=1000,c为1001。当sel为1000时,进展减1的操作。a=1000,c为0FFF。当sel为1001时,进展清0操作,全部置0.当sel为1010

14、时,为类型其他,全部输出0.比拟器的设计功能:t_p比拟类型操作说明000Eq(等于)假设a=b,pout=1001Neq(不等于)假设ab,pout=1010Gt大于假设ab,pout=1011gte大于等于假设a=b,pout=1100It小于假设ab,pout=1101Ite小于等于假设a=b,pout=1其他pout=0比拟器功能仿真波形图如图4所示:图 4 比拟器功能仿真波形图仿真结果说明:sel为000时,进展比拟是否相等的操作,1000不等于1234,pout=0sel为001时,进展比拟是否不等于的操作,1000不等于1234,pout=1sel为010时,进展比拟是否大于的操

15、作,10001234,pout=0sel为011时,进展比拟是否大于等于的操作,10001234,pout=0sel为100时,进展比拟是否小于的操作,10001234,pout=1sel为101时,进展比拟是否小于等于的操作,10001234,pout=1sel为其他时,pout输出0.移位器的设计功能:t_shift移位类型000直通001无符号数左移010无符号数右移011循环左移100循环右移其他输出0移位器的功能仿真波形图如图5所示:图5 移位器的功能仿真波形图仿真结果说明: 当sel为000时,进展直传的操作,a和y一样 当sel为001时,进展无符号数左移的操作,1234变为24

16、68 当sel为010时,进展无符号数右移的操作,1234变为091A 当sel为011时,进展循环左移的操作,1234变为2468 当sel为100时,进展循环右移的操作,1234变为091A 当sel为其他时,输出0根本存放器ACLKQn+10011*0Qn功能:功能说明:在CPU中根本存放器的角色是工作存放器OpReg,输出存放器OutReg,指令存放器InstrReg,程序计数器Progt,地址存放器AddrReg。根本存放器功能仿真波形图如图6所示:图6 根本存放器功能仿真波形图仿真结果说明:0ns到5ns,还没有遇到clk的上升沿,所以q端的输出是00005ns到20ns时,clk

17、的上升沿到来,q端输出100020ns到25ns时,a发生变化,但clk上升沿没有到来,q端输出100025ns到30ns时,clk的上升沿到来,q端输出1234存放器组功能:Sel2.0Reg000R0001R1111R7功能说明:clk的上升沿,将data15.0写入sel2.0指定的存放器中,并在q15.0输出此存放器新写入的内容。否则,q15.0输出sel2.0指定的存放器原来的内容。如此设计的目的,便于观察写入指定存放器中的内容。存放器组功能仿真波形图如图7所示:图7 存放器组功能仿真波形图0 - 10ns,sel=000选中R0,当clk上升沿时,将data的数据0001写入R0,

18、q=000110-20ns,sel=001选中R1,当clk上升沿时,将data的数据0002写入R1,q=000220-30ns,sel=010选中R2,当clk上升沿时,将data的数据0003写入R2,q=000330-40ns,sel=011选中R3,当clk上升沿时,将data的数据0004写入R3,q=000440-50ns,sel=100选中R4,当clk上升沿时,将data的数据0005写入R4,q=000550-60ns,sel=101选中R5,当clk上升沿时,将data的数据0006写入R5,q=000660-70ns,sel=110选中R6,当clk上升沿时,将data

19、的数据0007写入R6,q=000770-80ns,sel=111选中R7,当clk上升沿时,将data的数据0008写入R7,q=0008时序电路功能说明:产生电位信号step和脉冲信号t4,每个step的上升沿状态机的状态发生改变,t4与存放器的写信号相与作为存放器的同步打入控制信号。时序电路的功能仿真波形图如图8所示:图8 时序电路的功能仿真波形图仿真结果说明:0-10ns,clr高电平,t4=0,step初始值为0;10-15ns,clr低电平,clk为低电平,t4,step保持不变;15-20ns,clr低电平,clk上升沿,*=000+1=001,t4 = *(1) and *(0

20、)=0 and 0=0,step=*(1)=0;20-25ns,clr低电平,clk为低电平,t4,step保持不变;25-30ns,clr低电平,clk上升沿,*=001+1=010,t4 = *(1) and *(0)=0 and 0=0,step=*(1)=0;30-35ns,clr低电平,clk为低电平,t4,step保持不变;35-40ns,clr低电平,clk上升沿,*=010+1=011,t4 = *(1) and *(0)=1 and 0=0,step=*(1)=1;40-45ns,clr低电平,clk为低电平,t4,step保持不变;45-50ns,clr低电平,clk上升沿

21、,*=011+1=100,t4 = *(1) and *(0)=1 and 1=1,step=*(1)=1;50-55ns,clr低电平,clk为低电平,t4,step保持不变;存储器的设计LPM_RAM定制首先,定制初始化数据文件,建立Memory Initialization File(.mif)文件,选择FileNew命令,并在New窗口选择Other file选项,再选择Memory Initialization File选项。出现对话框,选择存储字的个数及字长,按下OK,出现如下界面,在最左列或最上行击鼠标右键,选择地址和内存操作数所使用的基值,选择He*adecimal,存储器里存

22、放数据块传送的指令和数据,CPU通过执行此程序进展功能验证。完成后,保存文件(memdata.mif)。之后,定制LPM_RAM。设计步骤如下:选择ToolsMegaWizard Plug-In Manager命令,翻开MegaWizard Plug-In Manager 对话框,选中Create a new custom megafunction variation,单击Ne*t,出现下面对话框,选择LPM_RAM_DQ,选择所用器件的类型以及所创立的输出文件的类型及名字。选择NE*T,进入如下界面。选择数据线位数、主存容量大小地址线位数。C:cpu_zjram选择NE*T,进入下一步界面,

23、取消q输出端的锁存。选择NE*T,进入下一步,选择内存的初始化文件。依据选项自动生成的代码,注意将.mif文件的路径改为相对路径,存储单元的个数为100个。ram的功能仿真波形图如图9所示:图9 ram仿真波形图功能仿真说明:0-10ns,wren是读信号,address地址存放器选择的是地址0000单元,当遇到clk时,将ram里面的内容读出来是200110-20ns,wren是读信号,address地址存放器选择的是地址0001单元,当遇到clk时,将ram里面的内容读出来是003040-50ns,wren是写信号,address地址存放器选择的是地址0031单元,当遇到clk时,将ram

24、里面的内容写进去是5550控制器功能说明:采用状态机实现,其中control的输入有step,reset,pout,instrReg,这些输入的组合可用于识别指令,并输出相关控制信号。具体信号的相关功能见control.vhdl部件说明。在译码阶段,具体来说,在一定的节拍下,contorl首先将接收的指令的前5位和后6位分开,用于别离操作数和操作码,然后将操作数的前3位和后3位分开,用于区分源操作数和目的操作数,然后根据具体的指令输出相关控制信号。依据指令的格式、数据通路给出指令系统中所有指令的指令流程:-. z.3.2 16位模型机的设计与实现创立顶层实体图工程所在的文件夹中包含文件如下所示

25、。依次在功能部件所对应的VHD文件上击右键,选择Create Symbol Files for Current File,创立所有功能部件的图符。功能说明:整个CPU系统以控制器为中心,负责指令的译码及发出各种相关控制信号。节拍发生器控制着整个系统的时钟信号,系统的相关部件在统一的节拍控制下发挥自己的作用。IR为指令存放器,负责存储即将执行的下一条指令,addr为地址存放器,存放被访问存储单元的地址。PC为程序计数器,存放现行指令的地址,具有计数功能。ALU负责处理相关数据运算操作。存放器组负责存放相关操作数和中间临时变量。多路数据选择器在相关控制信号的作用下将相关数据输入ALU处理。总线分数

26、据总线和地址总线,负责ram和相关存放器之间的数据交换。RAM为存储器,存放相关数据和程序。-. z.连接所有的功能部件形成模型机。仿真结果说明指令 LOADI R1,0020H; 执行过程中存放器的变化情况:state微操作addraludata2instrpcramregselregnoutgetReset1ALU清0,输出经移位器传至OutReg00000000ZZZZ00000000000000000000000mon1OutRegProgt00000000000000000000200100000000000mon2ProgtAddrReg0000000000000000200100

27、000000000mon3M(AddrReg)IR2001200120012001e*ecuteOpUUUUZZZZ200120012001Loadi2Progt+1OutReg000100002001000020010001Loadi3OutRegProgtAddrReg00010001000120010001200100000000001Loadi4M(AddrReg)Ri00010010001020010001001000100100001incpcProgt+1OutReg00010002000120010001001000000000002仿真结果说明:指令 LOAD R3,R1 取

28、数 执行过程中存放器的变化情况:仿真结果说明:ADD R7 , R3 相加 执行过程中存放器的变化情况仿真结果说明:指令STORE R2,R7 ;存数 执行过程中存放器的变化情况:仿真结果说明:BRANCHEQI 0000H 如果R1等于R6,则转向地址0000H 执行过程中存放器的变化情况:四、总结经过本次试验,我明白到了做计算机组成原理的实验首先一定要注意线路的连接,有些要对应的要一一对应,我一开场因为没注意.弄得数据不正确,还有要注意操作方法等等。 总之,通过这次对指令系统的设计,让我对整个计算机根本原理和系统构造都有了很深的体会和认识,也强迫自己在以前缺乏的地方去学习了一些新的知识,最

29、重要的是,真正让自己认识到了自己现在所学过的知识还太少太少,根本缺乏以完成一个哪怕是最简单的计算机工程,自己以前只满足于将课本知识学会的想法也有很大的问题,需要好好反省,在接下来的时间里,自己一定要好好把握,既要加强根底知识的学习,也要锻炼自己的实验能力,努力让自己的专业素质有很大的提高。五、参考文献:白中英计算机组成原理(第五版):科学,2005代码addLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE work.cpu_lib.all;entity add is port(a:in bi

30、t16;clk:in std_logic;q:out bit16);end add;architecture rt1 of add isbeginprocessbeginwait until clkevent and clk=1;q=a+1010;end process;end rt1;addoutLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE work.cpu_lib.all;entity addout is port(a:in t_reg;b:in bit16;reset:in std_logic;q:out bit16);end addout;a

31、rchitecture rt1 of addout issignal temp:bit16;beginprocess(a,b)beginif reset=1 then temptemp then q=b;temp c c c c c c c c c c c if a=b then pout =1;else pout if a/=b then pout =1 ;else pout if ab then pout =1 ;else pout if a=b then pout =1 ;else pout if ab then pout =1 ;else pout if a=b then pout =

32、1 ;else pout pout=0 ;end case;end process;end rt1;controllibrary IEEE;use IEEE.std_logic_1164.all;use work.cpu_lib.all;entity control isport( step,reset,pout:in std_logic; instrReg:in bit16;progtrWr,progtrRd,addrRegWr,outRegWr,outRegRd:out std_logic;shiftSel:out t_shift; aluSel:out t_alu; pSel:out t

33、_p;opRegRd,opRegWr,instrWr,regRd,regWr,rw,vma:out std_logic;regSel:out t_reg );end control;architecture rtl of control issignal current_state, ne*t_state : state;beginprocess( current_state, instrReg, pout)beginprogtrWr = 0; progtrRd = 0; addrRegWr = 0;outRegWr = 0;outRegRd = 0; shiftSel = shftpass;

34、 aluSel = alupass; pSel = eq;opRegRd = 0; opRegWr = 0; instrWr = 0; regSel = 000;regRd = 0; regWr = 0; rw = 0; vma aluSel=zero; shiftSel=shftpass; outRegWr=1; ne*t_state outRegRd=1; progtrWr=1; ne*t_state progtrRd = 1; addrRegWr = 1; ne*t_state rw=0;vma=1; instrWr=1; ne*t_state case instrReg(15 down

35、to 11) iswhen 00000 = ne*t_state ne*t_state ne*t_state ne*t_state ne*t_state ne*t_state ne*t_state ne*t_state ne*t_statene*t_state regSel = instrReg(5 downto 3); regRd = 1;addrregWr = 1; ne*t_state rw = 0; vma = 1;regSel = instrReg(2 downto 0);regWr = 1; ne*t_state regSel = instrReg(2 downto 0); reg

36、Rd = 1;addrregWr = 1; ne*t_state regSel = instrReg(5 downto 3); regRd = 1; rw = 1; ne*t_state regSel = instrReg(5 downto 3); regRd = 1;aluSel =alupass;shiftsel = shftpass; outRegWr = 1; ne*t_state outRegRd = 1;regSel = instrReg(2 downto 0); regWr = 1; ne*t_state progtrRd = 1; alusel = inc; shiftsel

37、= shftpass;outregWr = 1; ne*t_state outregRd = 1; progtrWr=1; addrregWr=1;ne*t_state rw = 0;vma = 1;regSel = instrReg(2 downto 0);regWr = 1; ne*t_state progtrRd = 1; alusel = inc; shiftsel = shftpass;outregWr = 1; ne*t_state outregRd=1; addrregWr=1;ne*t_state rw = 0;vma = 1;progtrWr = 1; ne*t_state

38、regSel = instrReg(5 downto 3); regRd = 1;opRegWr = 1; ne*t_state opRegRd = 1 ;regSel = instrReg(2 downto 0); regRd = 1; psel = eq;if pout = 1 then ne*t_state = beqI4;else ne*t_state progtrRd = 1; alusel = inc; shiftsel = shftpass;outregWr = 1; ne*t_state outregRd = 1; addrregWr = 1; ne*t_state rw =

39、0;vma = 1; progtrWr = 1; ne*t_state regSel = instrReg(2 downto 0); regRd = 1; alusel = inc;shiftsel = shftpass; outregWr = 1; ne*t_state outregRd = 1; regsel = instrReg(2 downto 0);regWr = 1; ne*t_state progtrRd = 1; alusel = inc; shiftsel = shftpass;outregWr = 1; ne*t_state outregRd=1; progtrWr=1;

40、ne*t_state regSel = instrReg(5 downto 3); regRd= 1; opRegWr = 1; ne*t_state regSel = instrReg(2 downto 0); regRd= 1; alusel = plus;shiftsel = shftpass;outregWr = 1; ne*t_state outregRd = 1;regSel = instrReg(2 downto 0); regWr = 1;ne*t_state progtrRd = 1; alusel = inc; shiftsel = shftpass;outregWr =

41、1; ne*t_state ne*t_state = incPc;end case;end process;process(step, reset)beginif reset = 1 then current_state = reset1 ;elsif stepevent and step= 1then current_state = ne*t_state after 1 ns; end if;end process;end rtl;cpu_libLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_arith.ALL;pack

42、age cpu_lib is subtype bit16 is std_logic_vector(15 downto 0);subtype t_reg is std_logic_vector(2 downto 0);subtype t_shift is unsigned (3 downto 0);constant shftpass :t_shift:=0000;constant sftl :t_shift:=0001;constant sftr:t_shift:=0010;constant rotl :t_shift:=0011;constant rotr :t_shift:=0100;sub

43、type t_alu is unsigned(3 downto 0);constant alupass :t_alu:=0000;constant andOp :t_alu:=0001;constant orOp:t_alu:=0010;constant notOp :t_alu:=0011;constant *orOp :t_alu:=0100;constant plus :t_alu:=0101;constant alusub :t_alu:=0110;constant inc :t_alu:=0111;constant dec :t_alu:=1000;constant zero:t_a

44、lu:=1001;subtype t_p is unsigned (3 downto 0);constant eq :t_p:=0000;constant neq :t_p:=0001;constant gt:t_p:=0010;constant gte :t_p:=0011;constant lt :t_p:=0100;constant lte :t_p:=0101;type state is (reset1,mon1,mon2,mon3,e*ecute,load2,load3,store2,store3,store4,move2,move3,incPc11,incPc12,incPc,in

45、cPc2,incPc3,loadIr,loadIr2,beqI2,beqI3,beqI4,beqI5,beqI6,braI2,braI3,braI4,loadI2,loadI3,loadI4,inc2,inc3,add1,add2,add3);end cpu_lib;loadreg-AddrReg Progt OpRegLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE work.cpu_lib.all;entity loadreg is port(a:in bit16;rst,clk,load:in std_logic;q:out bit16);end

46、loadreg;architecture rt1 of loadreg isbeginprocess (rst,clk)beginif rst=1 then q0);elsif rising_edge(clk) thenif load=1 thenq=a ;end if;end if;end process;end rt1;ram- megafunction wizard: %LPM_RAM_DQ%- GENERATION: STANDARD- VERSION: WM1.0- MODULE: altsyncram - =- File Name: ram.vhd- Megafunction Na

47、me(s):- altsyncram- =- *- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!- 5.1 Build 176 10/26/2005 SJ Full Version- *-Copyright (C) 1991-2005 Altera Corporation-Your use of Altera Corporations design tools, logic functions -and other software and tools, and its AMPP partner logic -functions

48、, and any output files any of the foregoing -(including device programming or simulation files), and any -associated documentation or information are e*pressly subject -to the terms and conditions of the Altera Program License -Subscription Agreement, Altera MegaCore Function License -Agreement, or

49、other applicable license agreement, including, -without limitation, that your use is for the sole purpose of -programming logic devices manufactured by Altera and sold by -Altera or its authorized distributors. Please refer to the -applicable agreement for further details.LIBRARY ieee;USE ieee.std_l

50、ogic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_ponents.all;ENTITY ram ISPORT(address: IN STD_LOGIC_VECTOR (15 DOWNTO 0);clock: IN STD_LOGIC ;data: IN STD_LOGIC_VECTOR (15 DOWNTO 0);wren: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);END ram;ARCHITECTURE SYN OF ram ISSIGNAL sub_wire0:

51、STD_LOGIC_VECTOR (15 DOWNTO 0);PONENT altsyncramGENERIC (address_aclr_a: STRING;indata_aclr_a: STRING;init_file: STRING;intended_device_family: STRING;lpm_hint: STRING;lpm_type: STRING;numwords_a: NATURAL;operation_mode: STRING;outdata_aclr_a: STRING;outdata_reg_a: STRING;power_up_uninitialized: STR

52、ING;widthad_a: NATURAL;width_a: NATURAL;width_byteena_a: NATURAL;wrcontrol_aclr_a: STRING);PORT (wren_a: IN STD_LOGIC ;clock0: IN STD_LOGIC ;address_a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);data_a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);END PONENT;BEGINq NONE,indata_ac

53、lr_a = NONE,init_file = memdata.mif,intended_device_family = Cyclone,lpm_hint = ENABLE_RUNTIME_MOD=NO,lpm_type = altsyncram,numwords_a = 100,operation_mode = SINGLE_PORT,outdata_aclr_a = NONE,outdata_reg_a = UNREGISTERED,power_up_uninitialized = FALSE,widthad_a = 16,width_a = 16,width_byteena_a = 1,

54、wrcontrol_aclr_a = NONE)PORT MAP (wren_a = wren,clock0 = clock,address_a = address,data_a = data,q_a = sub_wire0);END SYN;- =- * file retrieval info- =- Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC 0- Retrieval info: PRIVATE: AclrAddr NUMERIC 0- Retrieval info: PRIVATE: AclrByte NUMERIC 0- Retrie

55、val info: PRIVATE: AclrData NUMERIC 0- Retrieval info: PRIVATE: AclrOutput NUMERIC 0- Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC 0- Retrieval info: PRIVATE: BYTE_SIZE NUMERIC 8- Retrieval info: PRIVATE: BlankMemory NUMERIC 0- Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC 0- Retrieval info:

56、 PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC 0- Retrieval info: PRIVATE: Clken NUMERIC 0- Retrieval info: PRIVATE: DataBusSeparated NUMERIC 1- Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC 0- Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING PORT_A- Retrieval info: PRIVATE: INIT_TO_SIM_* NUMERIC 0- Re

57、trieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING Cyclone- Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC 0- Retrieval info: PRIVATE: JTAG_ID STRING NONE- Retrieval info: PRIVATE: MA*IMUM_DEPTH NUMERIC 0- Retrieval info: PRIVATE: MIFfilename STRING memdata.mif- Retrieval info: PRIVATE: NUMWORDS_A

58、NUMERIC 65536- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC 0- Retrieval info: PRIVATE: RegAddr NUMERIC 1- Retrieval info: PRIVATE: RegData NUMERIC 1- Retrieval info: PRIVATE: RegOutput NUMERIC 0- Retrieval info: PRIVATE: SingleClock NUMERIC 1- Retrieval info: PRIVATE: UseDQRAM NUMERIC 1- Retriev

59、al info: PRIVATE: WRCONTROL_ACLR_A NUMERIC 0- Retrieval info: PRIVATE: WidthAddr NUMERIC 16- Retrieval info: PRIVATE: WidthData NUMERIC 16- Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING NONE- Retrieval info: CONSTANT: INDATA_ACLR_A STRING NONE- Retrieval info: CONSTANT: INIT_FILE STRING memdata.mi

60、f- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING Cyclone- Retrieval info: CONSTANT: LPM_HINT STRING ENABLE_RUNTIME_MOD=NO- Retrieval info: CONSTANT: LPM_TYPE STRING altsyncram- Retrieval info: CONSTANT: NUMWORDS_A NUMERIC 65536- Retrieval info: CONSTANT: OPERATION_MODE STRING SINGLE_PORT-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论