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关于原语的使用相关推荐

  1. Lattice diamond IPexpress 例子 - PLL

    [小脚丫STEP-MXO2]学习3 -PLL使用(IPexpress) http://jingyan.eeboard.com/article/75672 小脚丫玩了也快两个星期了,这次写关于板上芯片P ...

  2. Lattice Diamond 和 ispLEVER 的不同之处

    Lattice Diamond 和 ispLEVER.有一些不同,尤其是如何管理工程的不同,包括以下几点: 1.ispLEVER 有多种工程类型,不同的程序文件类型需要不同的类型的工程:但是Diamo ...

  3. Lattice Diamond用Active-HDL实现仿真

    license同lattice Diamond,如果不可以用,重新加载下并检查环境变量. 转载于:https://www.cnblogs.com/agllero/p/5284738.html

  4. modelsim ddr3仿真lattice diamond

    转载大部分https://www.cnblogs.com/fhyfhy/p/5224208.html并对其中某些地方就行了改进 自己使用平台:lattice diamond 3.5 ddr3 ip版本 ...

  5. 【教程】LATTICE DIAMOND 工程新建介绍

    [教程]LATTICE DIAMOND 工程新建介绍 本文为明德扬原创文章,转载请注明出处!   在上一篇的文章<1.LATTICE DIAMOND的LICENSE申请方法>中,我为大家详 ...

  6. lattice diamond烧写问题汇总

    概要 总结在使用lattice diamond烧写程序时,出现错误的情况及解决方法.(按照实际情况,不时补充) 问题 问题一 问题说明 Check configuration setup: Start ...

  7. Lattice Diamond安装与学习

    Lattice Diamond安装与学习 一.关于LATIICE安装配置 (一)安装 (二)关于初始化设置 二.帮助文档 三.关于新建项目 (一)界面 (二)文件类型 四.IP核配置 一.关于LATI ...

  8. lattice diamond 3.7安装破解

    第一步安装:执行.EXE文件,一直下一步,最后license选择没有USB什么的那个(具体记不清了). 第二步破解:安装完成后在环境变量中将license路径指定到license文件即可(LM_LIC ...

  9. Lattice Diamond与modelsim联合仿真环境设置

    Lattice FPGA开发环境在仿真时可以使用modelsim,相比于Diamond自带的Active-HDL仿真工具,具有更好的交互性以及更便捷的可操作性.与其他FPGA的开发环境一样,需要设置联 ...

最新文章

  1. Github上AI在银行和保险的应用列表
  2. VTK:隐式函数之BooleanOperationImplicitFunctions
  3. SVN:多版本库环境的搭建
  4. Pytorch中的variable, tensor与numpy相互转化
  5. Pixel相机是怎么做到自动补抓最不错的自拍照
  6. 高效的组合数计算方法
  7. 计算机桌面打标签,在电脑桌面上添加便签的方法步骤详解(2)
  8. linux版英特尔酷睿i7,[图]英特尔酷睿i7 1165G7和AMD Ryzen 7 Pro 4750U Linux性能对比
  9. [hdu5247]rmq+预处理
  10. Windows搭建Sosoapi
  11. 天猫商城多幅图片并排展示广告效果,鼠标指向高亮其它阴影
  12. 深入理解什么是Beta分布
  13. lol服务器维护 胜率,说下这游戏服务器控制胜率怎么来的。
  14. 殇城的伤感心情日志分享:青春容颜,我却一笔流伤
  15. Spring 集成与分片详解
  16. QT全自动检测,挂载U盘
  17. 志强CPU E5 E7参数,CPU内核参数对比图
  18. mysql eav设计模型_Magento 2数据库EAV模型结构
  19. 6款程序员常用代码对比工具,你用过几款?
  20. 用计算机函数查找,Excel查找函数Vlookup详解及应用示例-excel技巧-电脑技巧收藏家...

热门文章

  1. 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx
  2. OSChina 周六乱弹 ——对!今天全是妹子!
  3. 微信公众号授权,支付,退款总结
  4. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!
  5. AI中数据标注(Labeling)的介绍
  6. hp喷墨打印机加连供的处理
  7. 2020暑期腾讯小程序开发训练营结课心得
  8. inb inw inl outb outw outl:端口操作
  9. G++ 中文使用教程
  10. Regsvr32 在64位机器上的用法