利用simlink转化HDL-verilog

首先在simlink中找到HDL CODER

打开红色Blank DUT,进入里面绿色的子系统开始设计系统

例如设计一个正弦信号发生器,里面用到了add、memory、relation operator、switch、constant、cos模块,cos模块选择了cordic算法,使用cordic那么输入值的范围为【-2pi,2pi】,超过则错误,memory起到累加的效果,in1是每次累加的值,当累加值大于2pi则将其变为in1-2pi,这是因为cosx=cos(x-2pi)

之后记得将constant这些模块设置为定点数,如果是浮点数则需进行额外设置,暂时没学

这些所用的模块都在HDL里面选择

设置定点小数这里选择了有符号32位,20位小数,表示为sfix32_en20,例如对模块2*pi设置,如下

fixdt(1,32,20)中,1就是有符号,0是无符号,32是所用比特数,20就是小数用了多少比特数,其中在使用乘法器、除法器、减法器等,根据定点小数运算,输出的定点小数位数会变化,例如例子中的加法器输出会变成sfix33_en20,可以点击加法器调整

想其他模块的data type选择inherit via internal rule就行了,系统根据输入自动分配数据类型。采样率也许设置,否则仿真会不对,如果采样率是inf转hdl会报错:Delay balancing unsuccessful because Signal rate of value inf foun

之后进行转化

或者

选择verilog并选择你hdl转化到那个文件夹(folder)

转化成功后会输出如下

点击蓝色链接便可以看到Verilog程序,将其代入vivado进行测试,其中tb文件如下

复制代码
module tb;

reg clk;
reg reset;
reg clk_enable;
reg signed [31:0] In2;
wire ce_out;
wire signed [31:0] Out1;
HDL_DUT M
          (clk,
           reset,
           clk_enable,
           In2,
           ce_out,
           Out1);
initial clk=1;
always #10 clk=~clk;

initial begin
reset=1;
clk_enable=1;
In2=32'h19999;
#100;
reset=0;
end
endmodule

输出仿真结果正确如下

相关推荐
9527华安3 小时前
FPGA实现Aurora 64B66B图像视频点对点传输,基于GTH高速收发器,提供2套工程源码和技术支持
fpga开发·音视频·aurora·gth·高速收发器·64b66b
XINVRY-FPGA13 小时前
EPM240T100I5N Altera FPGA MAX II CPLD
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
第二层皮-合肥19 小时前
FPGA实现ETH接口
单片机·嵌入式硬件·fpga开发
璞致电子21 小时前
【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
嵌入式硬件·fpga开发·fpga·软件无线电·sdr
陌夏微秋1 天前
FPGA硬件设计2 最小芯片系统-ZYNQ7020/7010
嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信·智能硬件
风已经起了2 天前
FPGA学习笔记——IIC协议简介
笔记·学习·fpga开发
逐梦之程2 天前
FPGA-Vivado2017.4-建立AXI4用于单片机与FPGA之间数据互通
fpga开发
程高兴2 天前
遗传算法求解冷链路径优化问题matlab代码
开发语言·人工智能·matlab
XINVRY-FPGA2 天前
10CL016YF484C8G Altera FPGA Cyclone
嵌入式硬件·网络协议·fpga开发·云计算·硬件工程·信息与通信·fpga
念念01073 天前
基于MATLAB多智能体强化学习的出租车资源配置优化系统设计与实现
大数据·人工智能·matlab