基本模型计算机设计与实现(编辑修改稿)内容摘要:

放到 R0 中。 3. STA 指令 PCAR:将 PC 里的值放入到地址寄存器 AR 中, PC+1:计数器的值加一,指向这条指令的地址码, 计算机组成原理课程设计 9 PCAR:将 PC 里的值放入到地址寄存器中, PC+1:计数器中的值是指向下一条指令的操作码。 RAMBUS :将 STA 的地址码放到总线上, BUSAR:将 STA 的地址码放到地址寄存器上, R0BUS:将 R0 中的数据放到总线上, BUSRAM:将 BUS 上的数据放到地址寄存器的对应的存储单元中。 4. OUT 指令 根据 PC里面的数值将 OUT指令的操作码取出放入到指令寄存器, PC+1,又根据 PC 里的内容取出指令的地址码,根据地址码,取出对应存储单元的数据通过总线,放到 DR1 中,最后输出到显示屏上。 5. JMP 指令 无条件转移指令 JMP,以紧跟在操作码后的字节的内容作为转移地址。 将该字节的内容送给程序计数器 PC,实现程序的转移: AR← PC, PC← PC+1 ;以 PC 的内容作为取数据的地址 BUS← RAM, PC← BUS ;将 RAM 内容送 PC,实现程序转移 将每一条指令的微操作编辑在一起,就得到全部指令的微程序流程图,如图22所示。 计算机组成原理课程设计 10 第三章 系统设计 CPU 顶层设计 根据图 21将各个部件设计出来,然后进行仿真,仿真成功之后,将各个部件通过总线连接起来,完成顶层的设计。 算术逻辑单元 ALU 是 ALU181,其运算功能与 74LS181 类似,但用 VHDL 语言编写 ,是一个 8 位的运算器。 ,其代码如下 LIBRARY IEEE。 USE。 USE。 ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 )。 A : IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 B : IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 M : IN STD_LOGIC。 CN : IN STD_LOGIC。 CO : OUT STD_LOGIC。 FZ : OUT STD_LOGIC )。 END ALU181。 ARCHITECTURE behav OF ALU181 IS SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0)。 SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0)。 SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0)。 BEGIN A9 = 39。 039。 amp。 A。 B9 = 39。 039。 amp。 B。 PROCESS(M,CN,A9,B9,S) BEGIN CASE S IS WHEN 0000 = IF M=39。 039。 THEN F9=A9 + CN。 ELSE F9=NOT A9。 END IF。 WHEN 0001 = IF M=39。 039。 THEN F9=(A9 OR B9) + CN。 ELSE F9=NOT(A9 OR B9)。 END IF。 WHEN 0010 = IF M=39。 039。 THEN F9=(A9 OR (NOT B9))+ CN。 ELSE F9=(NOT A9) AND B9。 END IF。 WHEN 0011 = IF M=39。 039。 THEN F9= 000000000 CN。 ELSE F9=000000000。 END IF。 WHEN 0100 = IF M=39。 039。 THEN F9=A9+(A9 AND NOT B9)+ CN。 ELSE F9=NOT (A9 AND B9)。 END IF。 WHEN 0101 = IF M=39。 039。 THEN F9=(A9 OR B9)+(A9 AND NOT B9)+CN。 ELSE F9=NOT B9。 END IF。 WHEN 0110 = IF M=39。 039。 THEN F9=A9 B9 CN。 ELSE F9=A9 XOR B9。 END IF。 WHEN 0111 = IF M=39。 039。 THEN F9=(A9 AND (NOT B9)) CN。 ELSE F9=A9 AND (NOT B9)。 END IF。 WHEN 1000 = IF M=39。 039。 THEN F9=A9 + (A9 AND B9)+CN。 ELSE F9=(NOT A9) OR B9。 END IF。 计算机组成原理课程设计 11 WHEN 1001 = IF M=39。 039。 THEN F9=A9 + B9 + CN。 ELSE F9=NOT(A9 XOR B9)。 END IF。 WHEN 1010 = IF M=39。 039。 THEN F9=(A9 OR (NOT B9))+(A9 AND B9)+CN。 ELSE F9=B9。 END IF。 WHEN 1011 = IF M=39。 039。 THEN F9=(A9 AND B9) CN。 ELSE F9=A9 AND B9。 END IF。 WHEN 1100 = IF M=39。 039。 THEN F9=A9 + A9 + CN。 ELSE F9= 000000001。 END IF。 WHEN 1101 = IF M=39。 039。 THEN F9=(A9 OR B9) + A9 + CN。 ELSE F9=A9 OR (NOT B9)。 END IF。 WHEN 1110 = IF M=39。 039。 THEN F9=(A9 OR(NOT B9)) +A9 + CN。 ELSE F9=A9 OR B9。 END IF。 WHEN 1111 = IF M=39。 039。 THEN F9=A9 CN。 ELSE F9=A9。 END IF。 WHEN OTHERS = F9= 000000000。 END CASE。 IF (A9=B9) THEN FZ = 39。 039。 ELSE FZ = 39。 139。 END IF。 END PROCESS。 F= F9(7 DOWNTO 0)。 CO = F9(8)。 COUT = 0000 WHEN F9(8) = 39。 039。 ELSE 0001。 END behav。 ALU 的两个 8 位数据输入端的数据暂存器 DR1 和 DR2,则用 LPM 模块数据锁存器 lpm_latch 构成,为 ALU 提供运算数据。 程序存储器和数据存储器 程序存储器和数据存储器共用一个存储器 RAM。 用 lpm_ram_dq 模块来实现。 数据线为 8 位,地址线也为 8 位。 存储器的数据输入端直接与内部总线相连,数据输出端通过三态缓冲器与内部总线相连,地址总线 h和地址寄存器 AR连接。 采用锁存器结构,调。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。