- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机组成原理综合设计报告
华南农业大学信息学院
设计性、综合性实验
实验项目名称: 计算机组成原理综合设计
实验项目性质: 综合性、设计性实验
所属课程名称: 计算机组成原理
开 设 时 间: 2009学年第一学期
一、实验目的
通过对简单微指令控制器的设计与实现,使抽象的理论原理在实践中得到应用,由此巩固学习内容。
二、实验内容
按照实验原理图设计并实现一个微型指令控制器,主要实现地址转换,指令储存等功能。
详细设计
本微指令控制器由微指令寄存器和地址转移逻辑等几个部件组成,控制存储器用来存放实现全部指令系统的微程序;微指令寄存器用来存放由控制存储器读出的一条微指令信息,其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。最后地址转移逻辑用于根据从微指令中读出的P字段来判断下一条微指令的地址,承担自动完成修改微地址的任务。
分别使用寄存器,控制存储器,逻辑转移指令,节拍发生器等部件实现。
//地址寄存器
library ieee;
use ieee.std_logic_1164.all;
entity addr_logic is
port(p_segment,op : in std_logic_vector(1 downto 0);
get_op,clk : in std_logic;
addr_out : out std_logic_vector(1 downto 0));
end addr_logic;
architecture addrlogic of addr_logic is
begin
process(p_segment,op,get_op,clk)
begin
if rising_edge(clk) then
if get_op=1 then
addr_out=op;
end if;
end if;
end process;
end addrlogic;
//计时器
library ieee;
use ieee.std_logic_1164.all;
entity pulse is
port(clk,clr : in std_logic;
t : out std_logic_vector(4 downto 1));
end pulse;
architecture s_pulse of pulse is
component wdff is
port(d,clk,r,s : in std_logic;
q,nq : out std_logic);
end component;
signal c,nc : std_logic_vector(4 downto 1);
signal cp,nclk,rr : std_logic;
begin
nclk=not clk;
c4 : wdff port map(c(3),nclk,1,clr,c(4),nc(4));
cp=not (nclk and nc(4));
rr=not (clk and c(4));
c1 : wdff port map(1,cp,rr,1,c(1),nc(1));
c2 : wdff port map(c(1),cp,rr,1,c(2),nc(2));
c3 : wdff port map(c(2),cp,rr,1,c(3),nc(3));
t(1)=c(1) and nc(2);
t(2)=c(2) and nc(3);
t(3)=c(3);
t(4)=nc(1);
end s_pulse;
//总控制器
library ieee;
use ieee.std_logic_1164.all;
entity add is
port(addin : in std_logic_vector(3 downto 0);
clk : in std_logic;
addout : out std_logic_vector(3 downto 0));
end add;
architecture s_add of add is
component wdff is
port(d,clk,r,s : in std_logic;
q,nq : out std_logic);
end component;
begin
w1: wdff port map(addin[0],clk,1,1,addout[0],0);
w2: wdff
文档评论(0)