Lattice Diamond关于原语的使用
Lattice Diamond关于原语的使用
- 前言
- 一、原语基本概念
- (一)简介
- (二)常用原语
- 1.时钟相关原语
- 2.差分输入/输出原语
- 3.接口相关原语
- 二、Lattice原语
- (一)原语使用
- (二)IP调用
- (三)Diamond帮助文档
- 三、更多使用
- 参考链接
前言
前一期有简单提到原语Lattice系列内存时序的概念,这里重点研究
一、原语基本概念
这里参考Diamond软件的使用(6)–Lattice原语基本概念
(一)简介
原语,英文名称primitive
,是FPGA软件集成开发环境所提供的一系列底层逻辑功能单元。
由于是底层逻辑功能单元,所以它们往往跟目标FPGA芯片以及芯片厂商紧密相关,因此不同厂商、不同器件的原语往往不能通用。当编译器对 HDL代码进行编译时,其中间环节的一些输出往往就是由原语组成的逻辑网表。因此,原语往往是不参与综合过程的,而使用原语描述的逻辑往往也不会被综合工具所优化。
例如,Xilinx 公司的ISE软件集成开发环境中的unisims库中定义了所有用于综合的原语,而simprims库中则定义了所有用于实现的原语。需要注意的是,如果在ISE安装目录下的verilog\src\unisims或verilog\src\simprims文件夹中看这些原语的代码,可以发现其实这些并不是真正的原语,而是在原语的基础上又封装了一层,不过人们常常将它们也泛称为原语。
(二)常用原语
1.时钟相关原语
如果时钟信号不是由FPGA芯片的专用时钟pin(或pad)引入FPGA 的,那么它通常就需要在FPGA内部被显式地连接到时钟树资源上,否则,直接使用这种不经过时钟树的时钟信号,会给FPGA设计的时序带来非常麻烦的问题,进而导致逻辑行为失败。
可是HDL代码仅仅描述功能,无法向编译器表达“希望将某一时钟信号连接到时钟树资源”这样的一层意思,那么此时,就需要使用类似BUFG这样的库里提供的底层模块来进行指示。
2.差分输入/输出原语
FPGA的接口具有单端和差分两种形式,同样,HDL代码只能描述功能,无法表达“某两个pin(或pad)脚互为一个差分对”这样的一层意思。那么此时,就需要使用类似IBUFDS、IBUFGDS、OBUFDS这样的库里提供的底层模块或原语来进行指示。
3.接口相关原语
当需要使用接口资源中的寄存器来实现高速数据采集时,除了使用本篇→编程思路→代码中的约束信息→HDL中的常用约束示例→寄存器的相关约束】中介绍的方法外,如果直接调用相关的原语,编译器便会利用接口资源中的寄存器来做事情。例如,使用ODDR,IDDR,IDDR2CLK,ISERDES,OSERDES等原语后﹐编译器便会利用接口资源的寄存器来实现相关接口功能,这样便能达到比较高的性能。
二、Lattice原语
(一)原语使用
使用LATTICE的原语在设计中使用内存的另一种方法是直接实例化ECP5设备的内存原语,用户必须在EBR
块级别上工作。如果需要具有跨多个模块的内存,则用户需要自己创建级联内存。Lattice 在 Lattice Diamond 软件安装文件夹的 cae_library/synthesis 文件夹下的 VHDL/Verilog 文件中提供了所有原语的详细列表。
例如:在软件Lattice Diamond安装目录下F:\lscc\diamond\3.10_x64\cae_library\simulation\verilog\ecp5u
可以看到ecp5u
系列的一些Verilog
原语。
(二)IP调用
一些IP仿真时会调用原语,例如FIFO,参考Lattice库联合ModelSim仿真FIFO→ 二、库文件添加→(二)方法二:直接添加器件库到Libray,和tb.v在同一个目录下仿真
(三)Diamond帮助文档
进入lattice diamond软件,可以看到FPGA Libraries (HTML version)
和FPGA Librarles (PDF version)
。可以点进去找到相应库调用的原语在内的详细介绍。
三、更多使用
因为原语FPGA软件集成开发环境所提供的一系列底层逻辑功能单元,硬件底层是一些门的调用和操作,需要有良好的模电基础,具体参考1.1 Verilog 门的类型|菜鸟教程
参考链接
Diamond软件的使用(6)–Lattice原语基本概念
Lattice FPGA 开发工具Diamond使用流程总结——IP核使用、原语调用
Lattice Diamond关于原语的使用相关推荐
- Lattice diamond IPexpress 例子 - PLL
[小脚丫STEP-MXO2]学习3 -PLL使用(IPexpress) http://jingyan.eeboard.com/article/75672 小脚丫玩了也快两个星期了,这次写关于板上芯片P ...
- Lattice Diamond 和 ispLEVER 的不同之处
Lattice Diamond 和 ispLEVER.有一些不同,尤其是如何管理工程的不同,包括以下几点: 1.ispLEVER 有多种工程类型,不同的程序文件类型需要不同的类型的工程:但是Diamo ...
- Lattice Diamond用Active-HDL实现仿真
license同lattice Diamond,如果不可以用,重新加载下并检查环境变量. 转载于:https://www.cnblogs.com/agllero/p/5284738.html
- modelsim ddr3仿真lattice diamond
转载大部分https://www.cnblogs.com/fhyfhy/p/5224208.html并对其中某些地方就行了改进 自己使用平台:lattice diamond 3.5 ddr3 ip版本 ...
- 【教程】LATTICE DIAMOND 工程新建介绍
[教程]LATTICE DIAMOND 工程新建介绍 本文为明德扬原创文章,转载请注明出处! 在上一篇的文章<1.LATTICE DIAMOND的LICENSE申请方法>中,我为大家详 ...
- lattice diamond烧写问题汇总
概要 总结在使用lattice diamond烧写程序时,出现错误的情况及解决方法.(按照实际情况,不时补充) 问题 问题一 问题说明 Check configuration setup: Start ...
- Lattice Diamond安装与学习
Lattice Diamond安装与学习 一.关于LATIICE安装配置 (一)安装 (二)关于初始化设置 二.帮助文档 三.关于新建项目 (一)界面 (二)文件类型 四.IP核配置 一.关于LATI ...
- lattice diamond 3.7安装破解
第一步安装:执行.EXE文件,一直下一步,最后license选择没有USB什么的那个(具体记不清了). 第二步破解:安装完成后在环境变量中将license路径指定到license文件即可(LM_LIC ...
- Lattice Diamond与modelsim联合仿真环境设置
Lattice FPGA开发环境在仿真时可以使用modelsim,相比于Diamond自带的Active-HDL仿真工具,具有更好的交互性以及更便捷的可操作性.与其他FPGA的开发环境一样,需要设置联 ...
最新文章
- Github上AI在银行和保险的应用列表
- VTK:隐式函数之BooleanOperationImplicitFunctions
- SVN:多版本库环境的搭建
- Pytorch中的variable, tensor与numpy相互转化
- Pixel相机是怎么做到自动补抓最不错的自拍照
- 高效的组合数计算方法
- 计算机桌面打标签,在电脑桌面上添加便签的方法步骤详解(2)
- linux版英特尔酷睿i7,[图]英特尔酷睿i7 1165G7和AMD Ryzen 7 Pro 4750U Linux性能对比
- [hdu5247]rmq+预处理
- Windows搭建Sosoapi
- 天猫商城多幅图片并排展示广告效果,鼠标指向高亮其它阴影
- 深入理解什么是Beta分布
- lol服务器维护 胜率,说下这游戏服务器控制胜率怎么来的。
- 殇城的伤感心情日志分享:青春容颜,我却一笔流伤
- Spring 集成与分片详解
- QT全自动检测,挂载U盘
- 志强CPU E5 E7参数,CPU内核参数对比图
- mysql eav设计模型_Magento 2数据库EAV模型结构
- 6款程序员常用代码对比工具,你用过几款?
- 用计算机函数查找,Excel查找函数Vlookup详解及应用示例-excel技巧-电脑技巧收藏家...