位置:51电子网 » 技术资料 » 其它综合

怎么用AHDL暂存一组数据

发布时间:2008/6/5 0:00:00 访问次数:330

要看数据长度了,如果数据量不大,可以直接用寄存器:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity buff_reg is
--generic(strb_del,en_del,o_del: time);
port (strb,ds1,ds2: in std_logic;
di :in std_logic_vector(7 downto 0);
do: out std_logic_vector(7 downto 0));
end buff_reg ;

architecture alg of buff_reg is
signal enable:std_logic;
signal reg : std_logic_vector(1 to 8);
begin
p1: process(strb)
begin
wait until strb='1';
reg<= di ;--after strb_del;
end process p1;

p2: process(ds1,ds2)
begin
enable<= ds1 and not ds2 ;--after en_del;
end process p2;

p3: process(reg ,enable)
begin
if enable='1' then
do<= reg ;--after o_del;
else
do<= "00000000" ;--after o_del;
end if;
end process p3;
end alg;
其实就是一个缓存

要看数据长度了,如果数据量不大,可以直接用寄存器:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity buff_reg is
--generic(strb_del,en_del,o_del: time);
port (strb,ds1,ds2: in std_logic;
di :in std_logic_vector(7 downto 0);
do: out std_logic_vector(7 downto 0));
end buff_reg ;

architecture alg of buff_reg is
signal enable:std_logic;
signal reg : std_logic_vector(1 to 8);
begin
p1: process(strb)
begin
wait until strb='1';
reg<= di ;--after strb_del;
end process p1;

p2: process(ds1,ds2)
begin
enable<= ds1 and not ds2 ;--after en_del;
end process p2;

p3: process(reg ,enable)
begin
if enable='1' then
do<= reg ;--after o_del;
else
do<= "00000000" ;--after o_del;
end if;
end process p3;
end alg;
其实就是一个缓存

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!