主要内容

在MATLAB环境下测试一个过滤器组件

这个例子展示了如何使用MATLAB®作为一个高密度脂蛋白成分的试验台。我们编译一个高密度脂蛋白低通滤波器,然后使用matlabtb测试它。

一旦准备好了一个快照,我们开始一个节奏®Xcelium®模拟器会话。(你必须Xcelium模拟器可执行文件路径)。我们使用MATLAB高密度脂蛋白之间的共享内存连接模拟器,所以必须在同一台计算机上。

在这个例子中,Verilog低通滤波器设计和生成MathWorks™滤波器设计高密度脂蛋白编码器™产品和我们的工作是测试它通过比较MATLAB过滤器。我们将不会运行这个示例中的滤波器设计。过滤器的样品时间10 ns (100 MHz的采样率)与通频带成就= 20 MHz和阻带Fstop = 25兆赫。两个样品的Verilog过滤器有一个延迟。

该文件lowpass_filter.v包含生成的低通滤波器滤波器设计高密度脂蛋白编码器。

该文件filter_tb_incisive.m包含了MATLAB试验台。

启动MATLAB服务器

我们开始MATLAB服务器、hdldaemon,使其使用共享内存通信。

hdldaemon;

指定Tcl命令

接下来我们指定Tcl命令执行前的高密度脂蛋白模拟器模拟运行。以下列出的命令将执行在Tcl壳。的命令将编译和复杂的项目,然后通过hdlsimmatlab Tcl推出xmsim命令。所有命令之前与固化传递给xmsim xmsim Tcl shell中执行。这些命令将:

  • 编译verilog过滤器

  • 精细的过滤器和打开阅读写访问端口

  • 开始与MATLAB xmsim试验台支持通过调用hdlsimmatla万博1manbetxb, xmsim剩余命令执行

  • 安排MATLAB函数filter_tb_incisive被称为每10 ns

  • 使时钟

  • 22 ns后复位模块

  • 开车10 ns时钟

  • 初始化滤波器输入0

tclcmd = {(“exec xmvlog -64位lowpass_filter.v”),“exec xmelab -64位访问+ wc lowpass_filter ',(“hdlsimmatlab gui lowpass_filter”,“固化”{@matlabtb lowpass_filter 10 ns重复10 ns -mfunc filter_tb_incisive}”的,“固化”{@force lowpass_filter。clk_enable 1 - 0 ns}”,“固化”{@force lowpass_filter。重置1 - 0 ns 0 - 22 ns}”,“固化”{@force lowpass_filter。clk 1 - 0 ns 0 - 5 ns重复10 ns}”,“固化”{@deposit lowpass_filter。filter_in 0}”,]};

启动Xcelium®模拟器

现在我们开始HDL模拟器通过nclaunch命令。的“tclstart”属性使Tcl命令指定在启动运行。高密度脂蛋白模拟器启动后,就可以开始模拟中使用run命令xmsim控制台,指定适当的仿真时间。例如类型跑了100000

nclaunch (“tclstart”,tclcmd);

此时一个MATLAB将打开图和两个次要情节。上面的图显示输入信号的频谱。较低的情节显示HDL的光谱滤波器输出显示与MATLAB的光谱滤波器输出。你需要放大输出光谱的区别。的滑动平均和最大绝对误差在时域是情节如下所示。图中每1024个样本将被更新。

这就是这个例子。

一定要退出HDL模拟器一旦你完成了这个例子,每次运行的例子中,一个新的会话启动模拟器。还请记住,这个示例创建了一些临时文件在一个临时目录中。