Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VHDL-为什么我们需要声明进程的信号?_Vhdl - Fatal编程技术网

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:进程

仅仅回顾一些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:进程(clk_int)
开始

clk_int原因是在这种情况下,端口
ck_l
可能是用方向
out
声明的,因此无法从中读取。如果您想要读取它,就像您想要有一个对它敏感的进程一样,您需要使用一个信号或将端口声明为
inout
buffer

您可能不想使用
inout
,除非它确实是一个双向端口(即在FPGA引脚上,带有三态缓冲区)。使用
缓冲区
也有一些争议。请注意,VHDL-2008允许从
out
端口读取数据,而无需额外的编码工作区。是的,我应该补充一点,虽然inout和缓冲区解决方案是可能的,但它们并不可取。