【问题标题】:VHDL - why do we need to declare signals for processes?VHDL - 为什么我们需要为进程声明信号?
【发布时间】:2014-03-23 20:54:15
【问题描述】:

刚刚重新访问了一些 VHDL,我想知道内部进程,例如,为什么我们需要为时钟声明一个信号?然后稍后在代码中将其分配给实体的端口...

示例 VHDL:

signal clk_int: std_logic := '1';

BEGIN
clkgen: process(clk_int)
begin
clk_int <= not clk_int after 50ns
end process ckgen

ck_l <= clk_int;

在本例中,ck_l 是来自 d 触发器的物理端口,但我们创建并处理 clk int 然后将值返回给 ck

【问题讨论】:

    标签: vhdl


    【解决方案1】:

    原因是本例中的端口ck_l可能声明为方向out,所以无法读取。如果您想阅读它,就像您想要拥有一个对其敏感的进程一样,您需要使用信号或将端口声明为inoutbuffer

    【讨论】:

    • 您可能不想使用inout,除非它是真正的双向端口(即在 FPGA 引脚上,具有三态缓冲器)。使用buffer 也有些争议。请注意,VHDL-2008 允许从 out 端口读取,无需额外的编码解决方法。
    • 是的,我可能应该补充一点,虽然 inout 和缓冲溶液是可能的,但它们并不可取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2019-07-07
    • 2014-07-20
    • 2019-06-09
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多