Diamond基础4:仿真流程、添加原语IP核
文章目录
- 1.Diamand仿真步骤
- 2.添加原语
- 3.添加IP核
- 4.传送门
1.Diamand仿真步骤
使用仿真软件Active-HDL需要另一套Lisence,加之业内ModelSim功能强大备受欢迎,并且Diamond在安装的时候可以选择安装ModelSim,这样直接把Lattice所需的各种仿真模型库已经编译好,非常方便,如图所示,安装的时候勾选如下选项即可使用ModelSim仿真。
下面介绍基于第三方工具ModelSim的安装过程:
①提前新建好工程,然后把提前准备好的功能文件和仿真文件添加进工程,并把激励文件按照下图所示设置成用于仿真,这样在综合的时候不会编译该文件,不影响工程管理。
写了一个Led流水灯的代码用于演示,其功能文件ledflow.v的内容如下:
module LED_shining
(
input clk_in,
input rst_n_in,
output led1
);
parameter CLK_DIV_PERIOD=12_000_000; //分频常数定义
reg clk_div=0; //定义reg型变量,用作分频后时钟输出
assign led1=clk_div; //持续赋值语句,将分频后时钟赋给led1,产生闪烁效果
reg[23:0] cnt=0; //分频用的计数器,2**cnt-1>CLK_DIV_PERIOD,计数
always@(posedge clk_in or negedge rst_n_in)beginif(!rst_n_in)begincnt<=0;clk_div<=0;end else if(cnt==(CLK_DIV_PERIOD-1))begincnt<=0;clk_div <= ~clk_div;end else begincnt<=cnt+1'b1;end
end
endmodule
给以上功能模块提供仿真激励的文件led_test源码如下所示:
`timescale 1ns / 100ps
module LED_test;
parameter CLK_PERIOD = 40;
parameter CLK_DIV_PERIOD=20;
reg sys_clk;
initial
sys_clk = 1'b0;
always
sys_clk = #(CLK_PERIOD/2) ~sys_clk; //产生周期为40ns的时钟激励,频率25MHz
reg sys_rst_n;
initial
begin
sys_rst_n = 1'b0;
#100;
sys_rst_n = 1'b1;
end
wire led1;
//module例化
LED_shining #
(.CLK_DIV_PERIOD(CLK_DIV_PERIOD))
LED_shining_uut(.clk_in(sys_clk), .rst_n_in(sys_rst_n), .led1(led1)
);
endmodule
②选择tools—Simulation Wizard创建一个modelsim的工程用于仿真,设置工程名称和路径,路径我会在之前的工程目录下创建一个Sim文件用于仿真相关文件保存。
③后面的界面全部默认选择next即可,然后会打开如下图所示的ModelSim界面,选择Compile—Compile All编译文件,
④选择Simulate–>Start Simulation 并在Design界面选择Led_test,然后点击OK即可开始仿真。
⑤进入仿真页面,将需要观测的信号通过Add Wave添加到波形界面,然后开始仿真即可看到波形图。
2.添加原语
厂家不同的FPGA原语的使用也有不同,跟底层FPGA工艺有关,Lattice的习惯是,在Start Page有如下的文档连接,介绍全部原语的使用。
例如它将LatticeECP3有关的原语分门别类,有输入输出缓冲器、Memory、逻辑门,乘法器等,可以方便的索引查找。找到工程需要使用的原语,会有功能描述、输入输出以及真值表等信息,还会提供相关的文档索引查看更具体的内容。
在Diamond的安装目录下,simulation文件夹存放各个原语的仿真模型,在仿真的时候需要将其添加到ModelSim的工程中。在Synthesis存放着各原语的例化模板。
3.添加IP核
如图所示,界面左上方有IP Express的图标,打开后,Module文件夹存放着已经安装的IP核,还有一些IP并没有跟随Diamond一起安装,需要点击图中“互联网”工具,查找相应IP安装。使用IP需要注意,在新安装的时候有一个About界面,可能会提供相应的IP介绍的文档链接,但由于前面讲过的Lattice文档的分类,有些IP和文档并不匹配,需要在官方网站寻找。
4.传送门
- 我的主页
- Lattice进阶之路汇总导航
- 上一篇:在线逻辑分析仪Reveal的使用
- 下一篇:基于Flash的MultiBoot启动
END |
📡文章原创,首发于CSDN论坛。
📡欢迎点赞♥♥收藏⭐⭐打赏💵💵!
📡欢迎评论区或私信指出错误💉,提出宝贵意见或疑问😱。