VHDL-为什么我们需要声明进程的信号?
仅仅回顾一些VHDL,我就想知道,例如,在进程内部,为什么我们需要声明一个时钟信号?然后在后面的代码中,将其从实体分配到端口 VHDL示例:VHDL-为什么我们需要声明进程的信号?,vhdl,Vhdl,仅仅回顾一些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; 信号时钟输入:标准逻辑:='1'; 开始 clkgen:进程
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;
信号时钟输入:标准逻辑:='1';
开始
clkgen:进程(clk_int)
开始
clk_int原因是在这种情况下,端口ck_l
可能是用方向out
声明的,因此无法从中读取。如果您想要读取它,就像您想要有一个对它敏感的进程一样,您需要使用一个信号或将端口声明为inout
或buffer
,您可能不想使用inout
,除非它确实是一个双向端口(即在FPGA引脚上,带有三态缓冲区)。使用缓冲区
也有一些争议。请注意,VHDL-2008允许从out
端口读取数据,而无需额外的编码工作区。是的,我应该补充一点,虽然inout和缓冲区解决方案是可能的,但它们并不可取。