Simulink HDL Coder时钟束信号生成
时钟束信号包括时钟、复位和时钟使能信号。在代码生成过程中,HDL Coder根据您在设计中使用的连续元素(如持久变量或延迟块)创建时钟束信号。默认情况下,单个主时钟和单个主复位驱动设计中的所有顺序元素。
MATLAB代码与时钟关系
如果在MATLAB中使用持久变量,HDL Coder生成时钟束信号。持久变量是MATLAB函数中的局部变量,它在调用函数之间在内存中保留其值。对于代码生成,如果持久变量为空,则函数必须初始化该变量。
参考下列这个使用持久变量n的MATLAB代码:
function y = persist_fcn(u)
persistent n
if isempty(n)
n = 1;
end
y = n;
n = n + u;
end
当您生成代码时,HDL Coder创建时钟、复位和时钟使能信号。这些信号在HDL代码中被命名为clk、reset和clk_enable。
这段代码显示了为模型生成的Verilog代码。为了匹配MATLAB持久变量的行为,HDL代码使用了一个always块。在时钟信号的正端,当复位为低,使能信号为高时,延迟1ns后赋值tmp给变量n。
`timescale 1 ns / 1 ns
module persist_fcn_fixpt
(clk, reset, clk_enable,
u, ce_out, y)

最低0.47元/天 解锁文章
8830

被折叠的 条评论
为什么被折叠?



