主要内容

从高密度脂蛋白HDL代码生成。RAM系统对象

这个例子展示了如何生成从高密度脂蛋白HDL代码从MATLAB®代码。在MATLAB和推断RAM内存系统对象™生成硬件。

MATLAB设计

这个例子展示了实现线延迟使用记忆在一个环形结构,数据写在一个位置,从另一个位置,这样写的数据将被读取后特定数量的周期。一个高效的实现这个架构Virtex fpga使用片上双端口上块公羊和一个地址计数器。块可以配置为512×8或256公羊x9同步双端口公羊。参数化延迟长,生成的内存地址是写一个计数器生成和读取地址通过添加一个常数K的写地址。如果内存大小,输入将读M k时钟周期后写入内存,因此实现M k字转变行为。

design_name =“mlhdlc_hdlram”;testbench_name =“mlhdlc_hdlram_tb”;

看看MATLAB设计。

类型(design_name);
% # codegen函数data_out = mlhdlc_hdlram (data_in) % %的这个例子展示了实现线延迟使用内存%环形结构,数据写在一个位置和读取%的另一个位置,后写的数据将被读取%特定数量的周期。高效的实现这种%架构Virtex fpga使用片上双端口上块公羊和一个%地址计数器。块可以配置为512×8或256公羊x9 %同步双端口公羊。参数化延迟长度,RAM %写地址是由一个计数器生成和读取地址%通过添加一个常数K的写地址。如果内存大小M %的输入将读M k时钟周期后写入内存,%因此实现M k字转变行为。% 2012 - 2015版权MathWorks公司持久hRam;如果isempty (hRam) hRam =高密度脂蛋白。RAM (“RAMType”、“双港”);结束%持久rdAddrCtr读地址计数器;如果isempty (rdAddrCtr) rdAddrCtr = 0; end % ring counter length ringCtrLength = 10; ramWriteAddr = rdAddrCtr + ringCtrLength; ramWriteData = data_in; ramWriteEnable = true; ramReadAddr = rdAddrCtr; % execute single step of RAM [~, ramRdDout] = step(hRam, ramWriteData, ramWriteAddr, ramWriteEnable, ramReadAddr); rdAddrCtr = rdAddrCtr + 1; data_out = ramRdDout;
类型(testbench_name);
函数mlhdlc_hdlram_tb % % 2012 - 2015版权MathWorks,公司清楚test_hdlram;数据= 100:200;ring_out = 0(1、长度(数据);2 = 1:10 0 ring_in =数据(ii);ring_out (ii) = mlhdlc_hdlram (ring_in);图(“名字”,[mfilename, ' _plot ']);次要情节(2,1,1);情节(1:10 0,数据(1:10 0));标题(输入数据到环形计数器)次要情节(2,1,2);情节(1:10 0,ring_out (1:10 0)); title('Output data') end

模拟设计

模拟试验台的设计之前,代码生成,以确保没有运行时错误。

mlhdlc_hdlram_tb

创建一个新的高密度脂蛋白编码器™项目

创建一个新项目,输入以下命令:

编码器-hdlcoder不管是新mlhdlc_sysobj_prj

接下来,添加文件mlhdlc_hdlram.m项目的MATLAB函数mlhdlc_hdlram_tb.mMATLAB试验台。

为一个更完整的教程创建并填充MATLAB HDL编码项目,明白了开始使用MATLAB对高密度脂蛋白的工作流

定点运行转换和HDL代码生成

启动工作流顾问。在工作流顾问,右键单击“代码生成”的一步。选择“运行选中的任务”从一开始就运行的所有步骤通过HDL代码生成。

检查生成的HDL代码在日志窗口中通过单击链接。

金宝app支持系统对象

为一个系统对象列表支持HDL代码生成,明白了金宝app预定义的系统对象支持HDL代码生成金宝app