为什么这个代码片段无法合成?

问题描述 投票:0回答:1
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;

正如标题所问的问题,为什么这段代码片段不能合成?

vhdl
1个回答
0
投票

这是并发信号分配:

dout <=  din AFTER   10  ns;

FPGA 或 ASIC 没有时间概念,除了可以通过时钟或使用延迟线推断的时间。

您可以使用具有以下结构的时钟:

dout <= din when rising_edge(clk);

您可能可以在选择的 FPGA/ASIC 技术中使用延迟线,但您必须查看所选目标的功能。在这种情况下,您将需要实例化一个特殊的、供应商提供的组件。

© www.soinside.com 2019 - 2024. All rights reserved.