集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1140|回复: 4

编译MATLAB设计生成FPGA代码

[复制链接]
小舍YZ 发表于 2017-7-5 11:20:08 | 显示全部楼层 |阅读模式
编译MATLAB设计生成FPGA代码

Xilinx公司提供了两种方法将MATLAB设计.m文件转化为HDL设计,一种就是利用AccelDSP综合器;另一种就是直接利用MCode模块。前者多应用于复杂或高速设计中,常用来完成高层次的IP核开发;而后者使用方便,支持MATLAB语言的有限子集,对实现算术运算、有限状态机和逻辑控制是非常有用的。本节内容以介绍MCode模块为主。

MCode模块实现的是装载在里面的.m函数的功能。此外,还能够使用Xilinx的定点类型数对.m函数进行评估。该模块使用回归状态变量以保证内部状态稳定不变,其输入、输出端口都由.m函数确定。

要使用MCode模块,必须实现编写.m函数,且代码文件必须和System Generator模型文件放在同一个文件夹中,或者处于MATLAB路径上的文件夹中。下面用两个实例来说明如何使用MCode模块。

例8-3 使用MATLAB编写一个简单的移位寄存器完成对输入数据乘8以及除以4的操作,并使用MCode将其编译成System Generator直接可用的定点模块。

1.相关的.m函数代码为:
function [lsh3, rsh2] = xlsimpleshift(din)
% [lsh3, rsh2] = xlsimpleshift(din) does a left shift 3 bits and a
% right shift 2 bits. The shift operation is accomplished by
% multiplication and division of power of two constant.
lsh3 = din * 8;
rsh2 = din / 4;
2.将.m函数添加到下列三个位置之一:
•        模型文件存放的位置;
•        模型目录下名字为private的子文件夹;
•        MATLAB路径下。
然后,新建一个System Generator设计,添加MCode模块,双击模块,在弹出页面中,通过Browse按键将.m函数和模型设计关联起来,如图7-18所示。

图7-18 MCode模块关联界面示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-5 11:20:58 | 显示全部楼层
3.添加边界模块、Sytem Generator模块、正弦波测试激励以及示波器模块构成完整的设计,如图7-19所示。

图7-19 简单移位模块设计示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-5 11:21:45 | 显示全部楼层
4.运行仿真,得到的结果如图7-20所示,从中可以看出,设计是正确的,正确实现了.m文件的功能。左图将信号放大了8倍,右图将信号缩小了4倍。

图7-20 简单移位模块仿真结果示意图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| 小舍YZ 发表于 2017-7-5 11:22:01 | 显示全部楼层
5.自动生成代码,得到的Verilog文件如下所列。

module myshift (
din,
dout1,
dout2
);

input [15:0] din;
output [15:0] dout1;
output [15:0] dout2;

wire [15:0] din_net;
wire [15:0] dout1_net;
wire [15:0] dout2_net;

assign din_net = din;
assign dout1 = dout1_net;
assign dout2 = dout2_net;

mcode_6b96190926 mcode (   
          .e(1'b0),
          .lk(1'b0),
          .lr(1'b0),
          .in(din_net),
          .sh3(dout1_net),
          .sh2(dout2_net)
);
endmodule

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
d643189658 发表于 2017-8-11 18:49:41 | 显示全部楼层
谢谢楼主的分享
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 12:44 , Processed in 0.063929 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表