基于system generator完成matlab与vivado的联合设计

前言

随着设计的复杂性增加,基于 RTL(寄存器传输级)设计的难度也在不断增加,为更快更便捷地设计出DSP算法模型,使用system generator工具可以很好地完成Matlab与Vivado的联合设计。

一、基于MATLAB初步实现DSP算法

此处,主要通过matlab脚本完成DSP中基本的矩阵运算,例如,乘法(Multiply)、加法(Add)、延时(Delay)等等。

Alt

clc; clear all; close all;
%% System parameters
N = 1024;   % Number of Sample(deepth of data)
Fs = 10e3;  % kHz, Sample Frequency
Ts = 1 / Fs;    % Period


%% Input signal parameters
A = 1;
t = (0 : N-1) * Ts;
f = 50; % Hz
n = Fs / f; % data deepth per period

x = A * sin (2*pi*f*t); % generate test input signal

figure(1)
plot(t, x);
hold on;

%% Mulitply, add, delay
C = 2;
D = n / 2;

% y_0 = C * x;
% allocating memory
y_0 = zeros(1, N);
y_1 = zeros(1, N);
y = zeros(1, N);
for i = 1 : N
    y_0(i) = C * x(i);  % Multiply
    % Delay
    if (i > D)
        y_1(i) = y_0(i-D);
    end
    % Add
    y(i) = y_0(i) + y_1(i);
end

% Add
% y = y_0 + y_1;

figure(1)
plot(t, y);
legend("Input Signal", "Output Signal");

二、 基于MATLAB中simulink实现电路基本功能模块

创建simulink文件

Alt
Alt

保存模型

Alt

模型创建

Alt
Alt

将以上元件拖至右边编辑窗口

Alt

个人修改如下(此处请根据个人需求修改相关参数)

Alt

修改元件名称

Alt

根据设计需求选择合适的模块(本次实例选用延时、加法和乘法模块)

Alt
Alt

将基本模块按照程序设计思路进行连接

Alt

从simulink中选择信号发生模块

Alt

输出结果展示

Alt
Alt

根据要求修改m文件

Alt

添加如下程序

Alt
Alt

使用示波器查看输入信号是否符合要求

Alt
Alt
Alt

运行m文件

Alt

比较二者图像,检查输入信号是否一致

Alt

输入验证完成后,配置其他参数

Alt
Alt
Alt
Alt
Alt

Alt
Alt
Alt

调整输入输出数据长度为32位,16位小数位

Alt
Alt
Alt

运行simulink仿真,比对实验结果

Alt

完成以上步骤后即可生成verilog文件

Alt

三、在Vivado中验证实验的准确性

打开Vivado软件

Alt

打开工程,找到保存路径

Alt
Alt
Alt

综合网表文件

Alt

综合完成后,取消下一步,进行仿真

Alt
Alt
Alt

设置仿真波形为模拟波形

Alt

设置模拟波形和显示数据类型

Alt
Alt
Alt
Alt
Alt
Alt
Alt
Alt

同样,将输出设置为模拟量

Alt
Alt
Alt
Alt

Alt

三、Simulink修改以便下载至开发板

添加ROM模块

Alt

添加计数器模块

Alt

设置ROM相关参数

Alt
Alt

设置计数器的相关参数

Alt

运行Simulink仿真结果如下图所示

Alt

生成Vivado工程文件

Alt

在Vivado中打开新生成的工程文件

Alt

添加 ILA 的 IP 核

Alt
Alt
Alt
Alt
Alt

在顶层文件中连接 ILA

Alt
Alt
Alt

进行RTL分析

Alt
Alt

Windows --> I/O Ports

根据开发板用户手册设置引脚分配相关参数

Alt
Alt
Alt

生成bit流文件
Alt
Alt
Alt
Alt
Alt
Alt

Alt

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值