简易计算机系统综合设计--时钟节拍

  根据部件各个的控制信号,我们知道有些部件需要时钟有些不需要时钟,这些需要时钟信号的部件有些可以同时运作,不如PC计数器的加一操作和指令寄存器的存指令操作,但是有些部件就一定需要一个先后顺序,比如说加法,肯定是要等运算完以后才给通用寄存器时钟信号去吧运算结果存进指定的寄存器。所有这里的多个时钟信号的周期必然有区别,处理的方法这里说两种思路:

  1. 设置多个时钟信号,可以同时进行部件公用一个时钟信号,不能同步的用不同的时钟信号;
  2. 只用一个时钟,但是加一个计数器,根据经过时钟信号的个数,将当期的信号传给对应的部件。
这两种方法其实细想的话其实差别不大,我这里用的是第二种方法。

(1)VHDL代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;   
entity SZJP is
port(CLK:in std_logic;
     T1,T2,T3,T4:out std_logic);
end entity SZJP;
architecture ST of SZJP is
signal Q:std_logic_vector(1 downto 0):="00";
begin 
    process(CLK) 
    begin
        if(CLK'event and CLK='1')then
        Q<=Q+1;
        end if;
        if(Q="00")   then T1<='0';T2<='0';T3<='0';T4<='1';
        elsif(Q="01")then T1<='1';T2<='0';T3<='0';T4<='0';
        elsif(Q="10")then T1<='0';T2<='1';T3<='0';T4<='0';
        else              T1<='0';T2<='0';T3<='1';T4<='0';
        end if;
    end process;
end ST;

(2)

引脚说明:


输入端为时钟信号CLK,输出端为表示第几个时钟上升沿的输出,T1~T4分别表示第一到第四个时钟上升沿。


(3)波形仿真:


显然T1,T2,T3,T4这四个输出的上升沿分别为CLK时钟信号的第1、2、3、4个时钟上升沿,符合设计要求。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值