LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY simple_buffer IS
PORT ( din : IN std_logic;
dout : OUT std_logic
);
END simple_buffer;
ARCHITECTURE behavioural1 OF simple_buffer IS
BEGIN
dout <= din AFTER 10 ns;
END behavioural1;
正如标题所问的问题,为什么这段代码片段不能合成?
这是并发信号分配:
dout <= din AFTER 10 ns;
FPGA 或 ASIC 没有时间概念,除了可以通过时钟或使用延迟线推断的时间。
您可以使用具有以下结构的时钟:
dout <= din when rising_edge(clk);
您可能可以在选择的 FPGA/ASIC 技术中使用延迟线,但您必须查看所选目标的功能。在这种情况下,您将需要实例化一个特殊的、供应商提供的组件。