VHDL 如何将8位数据分割啊?? 高分

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:24:26
我说的尽量仔细点
首先八路数据过来 是并行的 假设 数据为 Din(7 downto 0)
我现在要做的是 把a(3 downto 0) <= Din(3 downto 0)
把 b(3 downto 0)<= Din(7 downto 4)
比如 din="11110000" 那 a="0000" b="1111"
关键是在一个时钟里面完成 我现在把他搞成2个时钟了 后面一个时钟的数据丢失

时序图大概为 |________11110000|________11110001|________11110010|
目标时序为 ____________|____1111____0000|____1111____0001|____
有什么好的方法吗

也不难解决,把a(3 downto 0) <= Din(3 downto 0)和b(3 downto 0)<= Din(7 downto 4) 这两个语句分别放到两个process体内,多个process之间是并行的关系的。假如你是希望时钟上升沿的时候赋值,代码可以如下:

process(clk) is
begin
if rising_edge(clock) then
a(3 downto 0) <= Din(3 downto 0);
end if;
end process;

process(clk) is
begin
if rising_edge(clock) then
b(3 downto 0)<= Din(7 downto 4);
end if;
end process;

不知道我有无理解错你的意思~~