基于vhdl语言的8位risc-cpu的设计文献翻译内容摘要:
d_data_1 = read_data_1, Read_data_2 = read_data_2, Sign_extend = Sign_extend, Function_opcode = Instruction( 5 DOWNTO 0 ), ALUOp = ALUop, ALUSrc = ALUSrc, Zero = Zero, ALU_Result = ALU_Result, Add_Result = Add_Result, PC_plus_4 = PC_plus_4, 外文翻译(原文) 10 Clock = clock, Reset = reset )。 MEM dmemory PORT MAP ( read_data = read_data, address = ALU_Result, write_data = read_data_2, MemRead = MemRead, Memwrite = MemWrite, clock = clock, reset = reset )。 END structure。 The Control Unit The control unit of the MIPS shown in Figure examines the instruction opcode bits and generates eight control signals used by the other stages of the processor. Recall that the high six bits of a MIPS instruction contain the opcode. The opcode value is used to determine the instruction type. Figure Block Diagram of MIPS Control Unit control module (implements MIPS control unit) LIBRARY IEEE。 USE。 USE。 USE。 ENTITY control IS PORT( Opcode IN STD_LOGIC_VECTOR( 5 DOWNTO 0 )。 RegDst OUT STD_LOGIC。 ALUSrc OUT STD_LOGIC。 MemtoReg OUT STD_LOGIC。 RegWrite OUT STD_LOGIC。 MemRead OUT STD_LOGIC。 MemWrite OUT STD_LOGIC。 Branch OUT STD_LOGIC。 ALUop OUT STD_LOGIC_VECTOR( 1 DOWNTO 0 )。 clock, reset IN STD_LOGIC )。 END control。 外文翻译(原文) 11 ARCHITECTURE behavior OF control IS SIGNAL R_format, Lw, Sw, Beq STD_LOGIC。 BEGIN Code to generate control signals using opcode bits R_format = 39。 139。 WHEN Opcode = 000000 ELSE 39。 039。 Lw = 39。 139。 WHEN Opcode = 100011 ELSE 39。 039。 Sw = 39。 139。 WHEN Opcode = 101011 ELSE 39。 039。 Beq = 39。 139。 WHEN Opcode = 000100 ELSE 39。 039。 RegDst = R_format。 ALUSrc = Lw OR Sw。 MemtoReg = Lw。 RegWrite = R_format OR Lw。 MemRead = Lw。 MemWrite = Sw。 Branch = Beq。 ALUOp( 1 ) = R_format。 ALUOp( 0 ) = Beq。 END behavior。 The Instruction Fetch Stage The instruction fetch stage of the MIPS shown in Figure contains the instruction memory, the program counter, and the hardware to increment the program counter to pute the next instruction address. Figure Block Diagram of MIPS Fetch Unit 外文翻译(原文) 12 Instruction memory is implemented using the Altsyncram megafunction. 256 by 32 bits of instruction memory is available. This requires two of the Cyclone chip‘s M4K RAM memory blocks. Since the Altsyncram memory requires an address register, the PC register is actually implemented inside the memory block. A copy of the PC external to the memory block is also saved for use in simulation displays. Ifetch module (provides the PC and instruction memory for the MIPS puter) LIBRARY IEEE。 USE。 USE。 USE。 LIBRARY altera_mf。 USE。 ENTITY Ifetch IS PORT( SIGNAL Instruction OUT STD_LOGIC_VECTOR( 31 DOWNTO 0 )。 SIGNAL PC_plus_4_out OUT STD_LOGIC_VECTOR( 7 DOWNTO 0 )。 SIGNAL Add_result IN STD_LOGIC_VECTOR( 7 DOWNTO 0 )。 SIGNAL Branch IN STD_LOGIC。 SIGNAL Zero IN STD_LOGIC。 SIGNAL PC_out OUT STD_LOGIC_VECTOR( 9 DOWNTO 0 )。 SIGNAL clock, reset IN STD_LOGIC)。 END Ifetch。 ARCHITECTURE behavior OF Ifetch IS SIGNAL PC, PC_plus_4 STD_LOGIC_VECTOR( 9 DOWNTO 0 )。 SIGNAL next_PC STD_LOGIC_VECTOR( 7 DOWNTO 0 )。 BEGIN ROM for Instruction Memory data_memory altsyncram GENERIC MAP ( operation_mode = ROM, width_a = 32, widthad_a = 8, lpm_type = altsyncram, outdata_reg_a = UNREGISTERED, Reads in mif file for initial data memory values init_file = , intended_device_family = Cyclone) Fetch next instruction from memory using PC PORT MAP ( 外文翻译(原文) 13 clock0 = clock, address_a = Mem_Addr, q_a = Instruction)。 Instructions always start on a word address not byte PC(1 DOWNTO 0) = 00。 copy output signals allows read inside module PC_out = PC。 PC_plus_4_out = PC_plus_4。 send word address to inst. memory address register Mem_Addr = Next_PC。 Adder to increment PC by 4 PC_plus_4( 9 DOWNTO 2 ) = PC( 9 DOWNTO 2 ) + 1。 PC_plus_4( 1 DOWNTO 0 ) = 00。 Mux to select Branch Address or PC + 4 Next_PC = X‖00‖ WHEN Reset = ‗1‘ ELSE Add_result WHEN ( ( Branch = 39。 139。 ) AND ( Zero = 39。 139。 ) ) ELSE PC_plus_4( 9 DOWNTO 2 )。 Store PC in register and load next PC on clock edge PROCESS BEGIN WAIT UNTIL ( clock39。 EVENT ) AND ( clock = 39。 139。 )。 IF reset = 39。 139。 THEN PC = 0000000000。 ELSE PC( 9 DOWNTO 2 ) = Next_PC。 END IF。 END PROCESS。 END behavior。 The MIPS program is contained in instruction memory. Instruction memory is automatically initialized using the file shown in Figure . This initialization only occurs once during download and not at a reset. For different test programs, the appropriate machine code must be entered in this file in hex. Note that the memory addresses displayed in the file are word addresses while addresses in registers such as the PC are byte addresses. The byte address is four times the word address since a 32bit word contains four bytes. Only word addresses can be used in the *.mif files. 外文翻译(原文) 14 Figure MIPS Program Memory Initialization File, The Decode Stage The decode stage of the MIPS contains the register file as shown in Figure . The MIPS contains thirtytwo 32bit registers. The register file requires a major portion of the hardware required to implement the MIPS. Registers are initialized to the register number during a reset. This is done to enable the use of shorter test programs that do not have to load all of the registers. A VHDL FOR...LOOP structure is used to generate the initial register values at reset. 外文翻译(原文) 15 Figure Block Diagram of MIPS Decode Unit Idecode module (implements the register file for the MIPS puter) LIBRARY IEEE。 USE。 USE。 USE。 ENTITY Idecode IS PORT( read_data_1 OUT STD_LOGIC_VECTOR( 31 DOWNTO 0 )。 read_data_2 OUT STD_LOGIC_VECTOR( 31 DOWNTO 0 )。基于vhdl语言的8位risc-cpu的设计文献翻译
相关推荐
1100图 34 指令寄存器仿真波形 第三章 八位 RISCCPU各模块设计与仿真 10 011001 11001100、 00110011 四个数据, 则当 state 为 0 时,传输高八位,当state 为 1 时,传输低八位。 其中 第 15 至 第 13 位存入 opcode 中 并替换旧数据 ,第 12 至 第 0 位存入 str_addr 中 并替换旧数据。 累加器 累加器
”中,如“二次铣削 [1]”。 当提及的参考文献为文中直接说明时,其序号应该与正文排齐,如“由文献 [8, 10~ 14]可知”。 经济、管理类论文引用文献,若引用的是原话,要加引号,一般写在段中; 若引的不是原文只是原意,文前只需用冒号或逗号,而不用引号。 在参考文献之外,若有注释的话,建议采用夹注,即紧接文句,用圆括号标明。 不得将引用文献标示置于各级标题处。 参考文献书写格式应符合
001) and (count1631 )then count=count+7。 elsif (count1631) then count=count+1。 else count=000001。 dount=dount+1。 end if。 end if。 end process。 monthout=dount。 dateout=count。 end fun。 11 扫描显示模块设计
文)绪论部分字数不多于全部论文字数的 1/4。 论文主体 论文主体是论文的主要部分,要求结构合理,层次清楚,重点突出,文字简练、通顺。 论文主体的内容要求参照《大学本科生毕业设计(论文)的规定》第五章。 论文主体各章后应有一节“本章小结”。 结论 结论作为单独一章排列,但不加章号。 结论是对整个论文主要成果的归纳,要突出设计(论文)的创新点,以简练的文字对论文的主要工作进行评价,一般为 400~
高速集成电路硬件描述语言。 覆盖面广,描述能力强,是一个多层次的硬件描述语言。 在 VHDL 语言中,设计的原始描述可以非常简练,经过层层加强后,最终可成为直接付诸生产的电路或版图参数描述。 具有良好的可读性,即容易被计算机接受,也容易被读者理解。 使用期长,不会因工艺变化而使描述过时。 因为 VHDL 的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。
式的选择等。 然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。 (3)、仿真:仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。 (4)、编程与验证:用经过仿真确认后的 编程文件通过编程器( Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能