CLK为系统时钟,M1为1MHz方波信号,由于M1信号驱动的模块较多,所以M1的扇出较
多(假定扇出数为140),为了减少扇出,用系统时钟采样,将M1信号驱动7个D触发器,
然后将7个D触发器的输出端分给7个模块,这样每个复制点(DUP0~DUP6)平均扇出变为20,
M1的信号扇出变为7,这样就减少了每个信号的扇出,优化了逻辑,也提高了设计的整体
性能。
上述模块的VHDL语言描述为:
library ieee;
use ieee.std_logic_1164.all;
entity RegDup is
port(
clk:in std_logic;
Duput std_logic_vector(6 downto 0);
M1:in std_logic);
end RegDup;
architecture rtl of RegDup is
begin
process(Clk)
begin
if Clk'event and Clk='1'then --系统时钟采样
Dup(0)<=M1; --复制M1信号
Dup(1)<=M1;
Dup(2)<=M1;
Dup(3)<=M1;
Dup(4)<=M1;
Dup(5)<=M1;
Dup(6)<=M1;
end if;
end process;
end rtl;