VHDL中传输有什么用?
What is the use of transport in VHDL?
我看过用 VHDL 文件编写的示例
示例片段,
architecture aaa of bbb is
signal ccc : std_logic
begin
ccc <= transport global_en_lb;
....
我只想了解上面片段中的传输。
这是什么意思?
在 VHDL 中,“transport
”关键字用于模拟延迟建模。
传输延迟模型只是将输出的变化延迟到after
子句中指定的时间。
传输延迟,用于模拟布线引入的延迟。由于传输延迟,任何小宽度的脉冲都会传播到输出端。传输延迟对于建模延迟线驱动器、PC 板上的线延迟和 ASIC 上的路径延迟特别有用。
要了解它在模拟中的确切行为,请参阅 link
传输延迟是理想化的:它们模拟通过具有无限频率响应的设备或连接的传播。任何输入脉冲,无论多短,都会产生输出脉冲。例如,您可以为具有传输延迟的理想传输线建模 - 任何和所有输入更改都会通过线路传播。传输延迟在测试平台中也很有用,可用于在驱动程序上排队交易。
惯性延迟近似于现实世界的延迟。它们更复杂,但简而言之,如果您尝试传播脉冲宽度小于通过设备或电线的传播延迟的脉冲,则脉冲会消失。如果您看不到 transport
或 inertial
关键字,惯性延迟是 VHDL 中的默认值。
在 HDL 级别,两者之间的实际区别在于当您为信号安排新事务时会发生什么,而该信号已经安排了事务。对于传输延迟,交易只是排队;对于惯性交易,模拟器可能会合并它们。
关于您的 Verilog 评论:这在 Verilog 中有点过时(就像其他很多东西一样)。但是,非阻塞分配的 RHS 延迟模拟了传输延迟:
always @(x)
y <= #10 ~x; // transport
连续分配不对事务进行排队,因此模型惯性延迟:
assign #10 y = ~x; // inertial
我看过用 VHDL 文件编写的示例
示例片段,
architecture aaa of bbb is
signal ccc : std_logic
begin
ccc <= transport global_en_lb;
....
我只想了解上面片段中的传输。 这是什么意思?
在 VHDL 中,“transport
”关键字用于模拟延迟建模。
传输延迟模型只是将输出的变化延迟到after
子句中指定的时间。
传输延迟,用于模拟布线引入的延迟。由于传输延迟,任何小宽度的脉冲都会传播到输出端。传输延迟对于建模延迟线驱动器、PC 板上的线延迟和 ASIC 上的路径延迟特别有用。
要了解它在模拟中的确切行为,请参阅 link
传输延迟是理想化的:它们模拟通过具有无限频率响应的设备或连接的传播。任何输入脉冲,无论多短,都会产生输出脉冲。例如,您可以为具有传输延迟的理想传输线建模 - 任何和所有输入更改都会通过线路传播。传输延迟在测试平台中也很有用,可用于在驱动程序上排队交易。
惯性延迟近似于现实世界的延迟。它们更复杂,但简而言之,如果您尝试传播脉冲宽度小于通过设备或电线的传播延迟的脉冲,则脉冲会消失。如果您看不到 transport
或 inertial
关键字,惯性延迟是 VHDL 中的默认值。
在 HDL 级别,两者之间的实际区别在于当您为信号安排新事务时会发生什么,而该信号已经安排了事务。对于传输延迟,交易只是排队;对于惯性交易,模拟器可能会合并它们。
关于您的 Verilog 评论:这在 Verilog 中有点过时(就像其他很多东西一样)。但是,非阻塞分配的 RHS 延迟模拟了传输延迟:
always @(x)
y <= #10 ~x; // transport
连续分配不对事务进行排队,因此模型惯性延迟:
assign #10 y = ~x; // inertial