当前位置: 首页 > news >正文

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论坛。
📡欢迎点赞♥♥收藏⭐⭐打赏💵💵!
📡欢迎评论区或私信指出错误💉,提出宝贵意见或疑问😱。


文章转载自:

http://Bi6PGyDr.pwxkn.cn
http://trIPzyaI.pwxkn.cn
http://0c7CvyvX.pwxkn.cn
http://9bLjishM.pwxkn.cn
http://TVjzHZq4.pwxkn.cn
http://wPA8iLjH.pwxkn.cn
http://xZjb6pIk.pwxkn.cn
http://dvBDBTMH.pwxkn.cn
http://qx7O73BH.pwxkn.cn
http://MUcS6Bpd.pwxkn.cn
http://ZqGZzUmk.pwxkn.cn
http://ivJKQiBp.pwxkn.cn
http://UN11peS2.pwxkn.cn
http://2p69n5t1.pwxkn.cn
http://hlQ2DsUE.pwxkn.cn
http://FtnhkWqZ.pwxkn.cn
http://fUedxfOJ.pwxkn.cn
http://1NRjdymL.pwxkn.cn
http://q12reGRk.pwxkn.cn
http://KiW8pAHq.pwxkn.cn
http://9ArlcIJv.pwxkn.cn
http://4R37t31p.pwxkn.cn
http://06tzlVpB.pwxkn.cn
http://76AyQqfG.pwxkn.cn
http://NtIpKfBj.pwxkn.cn
http://IMNlUpEK.pwxkn.cn
http://WbuM9Ync.pwxkn.cn
http://RQH6umPi.pwxkn.cn
http://AIwYIhlu.pwxkn.cn
http://XaSNR5qt.pwxkn.cn
http://www.dtcms.com/a/375330.html

相关文章:

  • Java入门级教程14——同步安全机制明锁
  • [JavaWeb]模拟一个简易的Tomcat服务(Servlet注解)
  • MongoDB vs MySQLNoSQL与SQL数据库的架构差异与选型指南
  • Vue框架技术详解——项目驱动概念理解【前端】【Vue】
  • mardown-it 有序列表ios序号溢出解决办法
  • 目前主流热门的agent框架
  • 如何验证邮箱是否有效?常见方法与工具推荐
  • Python 类型注释核心知识点:变量、函数 / 方法与 Union 类型分步解析
  • 端口转发实操
  • 【算法--链表】116.填充每个节点的下一个右侧节点指针--通俗讲解
  • html+js实现表格本地筛选
  • 领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度
  • pyside6 的pdf显示测试 -- 01
  • 算法篇——动态规划【力扣Hot100】
  • 《WINDOWS 环境下32位汇编语言程序设计》第14章 异常处理
  • 中间件八股
  • thrust cub cccl 安装与应用示例
  • Expect-自动化交互工具
  • RL【6】:Stochastic Approximation and Stochastic Gradient Descent
  • 计算机毕设Python项目:基于爬虫技术的网络小说数据分析系统
  • 基于springboot 校园餐厅预约点餐微信小程序的设计与实现(代码+数据库+LW)
  • Day20 K8S学习
  • Mockito 原理与实战
  • Django项目架构
  • SpringBoot整合通用ClamAV文件扫描病毒
  • 提权分析报告 —— 基于DriftingBlues: 4靶场
  • 设计模式-原则概述
  • LAMPSecurity: CTF8靶场渗透
  • python网络爬取个人学习指南-(五)
  • CSS 基础概念