FPGA知识汇集-时钟系统的移植

news2024/9/28 11:18:12

       ASIC 和FPGA芯片的内核之间最大的不同莫过于时钟结构。ASIC设计需要采用诸如时钟树综合、时钟延迟匹配等方式对整个时钟结构进行处理,但是 FPGA设计则完全不必。因为后者有内建的时钟资源:锁相环、频率综合器、移相器,以及具有低延迟特性的专用时钟布线网络。ASIC芯片的时钟设计具有更大的灵活性,但FPGA芯片内建的时钟资源则能简化设计。正是因为两者的不同,带来了移植上的诸多麻烦。

       ASIC设计中的时钟树结构,需要映射到FPGA芯片的专用时钟资源中,以及原型验证平台的不同FPGA芯片中。

       一颗FPGA芯片的专用时钟资源是有限的,以Virtex-6LX760芯片也只有18个 MMCM时钟资源模块。这对于大部分FPGA设计来讲已经足够了,但是对于具有大量时钟树资源的ASIC设计来讲,往往还是不够使用。FPGA芯片的另外一个限制是同一个时钟域所能容纳的全局时钟资源有限。

  • 门控时钟

        在ASIC设计中,常常采用门控时钟技术来降低整个芯片的低耗。图1显示了使用门控时钟技术的电路:时钟clk通过信号en1和en2进入组合逻辑后,驱动后续的两个寄存器。

        从上述电路可以看出,当信号en1和en2的某种组合关系使得clk信号无法向后传递时,两个寄存器将停止工作,因此也不会消费功耗。

       但是如果将ASIC设计中的门控时钟电路直接映射到FPGA芯片中,则会带来整体的性能甚至稳定性的下降。其根本原因在于FPGA芯片采用的是专用的低延迟时钟网络,只有整个时钟系统运行在该网络时,才能达到最高的性能。而通过组合逻辑的门控时钟信号运行在普通的布线资源上,这将大大的降低其性能,甚至带来建立保持时间的问题。因此必须将门控时钟通过某种方式映射到FPGA芯片的专用时钟资源上,而不是简单得代码移植。

  • 门控时钟的转换

        对门控时钟进行转换,就是要把时钟网络上的组合逻辑“删掉”,将所有时序逻辑的时钟驱动端口直接链接在FPGA芯片的专用时钟资源上。

       其中一个方法就是将组合逻辑从时钟通路‘搬移’到数据通路上,这种方式可以通过图2中的多路选择器来实现。

设计工具对门控时钟的转换

       Synopsys公司的Synplify Pro/Premier是高性能FPGA逻辑综合工具,可以自动地进行门控时钟转换。当然转换是有一定条件的:必须是带有组合逻辑的门控时钟结构;时钟必须要有确定的约束条件;门控时钟所驱动的时序逻辑电路不能是黑盒子。

       前面提到的门控时钟转换电路都比较简单,在实际的设计中,门控时钟的组合逻辑也许会很复杂,所驱动的后续电路不仅仅有寄存器,还有 BRAM和DSP模块等时序逻辑。因此即便是Synplify pro/Premier这样的高性能综合器也可能有无法自动处理的电路结构,仍然需要手动修改。

时刻使能

       对于ASIC设计中的时钟使能电路,没有必要做任何的转换工作。因此FPGA芯片内部的各种时序逻辑电路(包括寄存器、BRAM和DSP48模块)本身就带有时钟使能输入端口,因此综合工具可以做到完美的自动映射。

时钟管理单元的映射

       ASIC设计中的大部分时钟管理模块(如PLL),仅仅需要对端口的细微修改就可以直接映射到FPGA对应的资源上。Xilinx的FPGA芯片提供了丰富的可配置时钟资源:DCM,PLL,MMCM,BUFG/BUFR,BUFGMUX,等等。关于Xilinx FPGA芯片时钟资源的详细讨论,感兴趣的可持续关注公众号!!

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

  FPGA知识汇集-ASIC向FPGA的移植

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/150548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity基于状态机的架构与设计

我们做游戏的时候经常会有流程控制,流程控制的方法有很多,行为决策树,状态机等。本质差别都不大,就是把每一段执行逻辑做成一个一个的节点,根据条件执行某个节点,切换到某个节点。今天给大家分享一下基于状…

如何在VSCode中添加Python解释器并安装Python库

如何在VSCode中添加Python解释器并安装Python库作者介绍一. 安装VScode编辑器二. 安装Python解释器三. 在VScode中添加Python解释器四. 创建项目并在VScode中打开;五、在VScode中安装Python库作者介绍 孟莉苹&#xf…

【TypeScript入门】TypeScript入门篇——对象

对象其实就是一种封装的概念,它把事物封装成一个类,然后提供类的接口,而具体的过程人们是看不到的。 一、对象实例 二、TypeScript 类型模板 三、鸭子类型(Duck Typing) 对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等&am…

Linux常用命令——lsof命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) lsof 显示Linux系统当前已打开的所有文件列表lsof -p pid 补充说明 lsof命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系…

十四、Node.js 中 session验证登录

在前一篇内容中讲到这个cookie实现验证登录,cookie是存储在客户端的,而session是存储在服务器的,相比较session的安全性会更高,session对象存储特定用户会话所需要的属性以及配置信息,服务通过session对象将用户的信息…

CPU使用率过高的原因及解决方法

常见的CPU使用率过高可不是职场CPU哦,而是电脑的中央处理器,CPU作为计算机系统重要的运算和控制核心,可谓是“很忙”的存在。在我们日常使用电脑设备时,由于打开的软件、游戏、网页等程序容易导致电脑运作卡顿,这时候就…

《图机器学习》-Traditional Methods for Machine Learning in Graphs

Traditional Methods for Machine Learning in Graphs前言一、Node-Level Tasks and Features二、Link-Level Tasks and Features三、Graph-Level Tasks and Features前言 图机器学习任务可以分为三种: Node-level prediction:节点级的预测 如对节点进…

最优控制学习笔记3----无约束条件的泛函极值问题

无约束条件的最优控制问题 设函数 x(t)x(t)x(t) 在 [t0,tf][t_0, t_f][t0​,tf​] 区间上连续可到,考虑 Lagrange型性能指标函数 J[x(t)]∫t0tfL[x(t),x˙(t),t]dtJ[x(t)]\displaystyle\int_{t_0}^{t_f}L[x(t), \dot{x}(t), t]dtJ[x(t)]∫t0​tf​​L[x(t),x˙(t),…

Linux---常见指令

目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令 06.rmdir指令 && rm 指令 07.man指令 08.cp指令 09.mv指令 10. cat指令 11.more指令 12.less指令 13.head指令 13.tail指令 简述重定向和管道概念: 14.时间相关的指令 15.Ca…

Git Fork操作与配置

我理解的git fork:将别人(张三)仓库包括文件,提交历史,issues等复制一份到自己的github账号下。我们在可以通过修改本地项目的代码,然后,给(张三)发送一个Merge Request&…

C. Yet Another Tournament(贪心)

Problem - C - Codeforces 通用领域 医学 计算机 金融经济 你正在参加另一场比赛。有n1个参与者:你和其他n个对手,编号从1到n。 每两名参与者将相互竞争一次。如果对手i和对手j比赛,他获胜当且仅当i>j。 当我的对手和你对弈时,一切都变…

rabbitmq+netcore6 【4】Routing:路由

文章目录1)前言2)Direct exchange 直接类型的交换机3)Multiple bindings 多绑定4)Emitting logs 发送日志5)Subscribing 订阅6)综合以上代码准备工作生产者消费者1消费者2消费者3运行结果官网参考链接&…

USB大容量存储设备浅析

一 USB 设备类 SB 引入了设备类的概念,根据每一类驱动程序的功能将USB设备分为几大类,标准的几大类包括: 大容量存储类 网络类 集线器类 串行转换器 音频类 视频类 图像类 调制解调器 打印机 HID(Human Interface Device 人机接口设备)每一…

我记不住的那些编程语言的语法(数组)-1

背景:我记不住各种语言的语法,例如C、Java、Go、Python、JavaScript,大概就是常用的这几种语言,每种语言有其自己的语法规范,有的时候会记混了,所以想记录一下细节。这个系列会不定期的更新,本期…

一路坎坷,入局到突破【2022年度总结】

秃秃 1> 来到CSDN: 2019年5月时决定只身一人去外省实习,顺便在CSDN这个“资源库”注册了一下账号。直到我20年在公司做技术分享时,才真正开始在CSDN上的创作; 21年的时候也只是把CSDN当做笔记,就自己写一写&…

行业洞察|猴子可以打字,动物走进元宇宙还有多远?

很多学者和专家认为,人类与动物的区别在于语言的使用。人类可以使用语言,但是动物不会。其实也许是我们人类听不懂动物的语言,并不是他们不会使用。本质在于沟通的媒介不同,导致我们无法相互交流。但是,埃隆马斯克&…

App原型设计规范

一、界面尺寸 1.ios分辨率 2.android界面尺寸 ① 安卓分辨率 ②常见安卓手机分辨率及尺寸 一般情况下大家在设计app端原型的时候,由于现在ios和安卓慢慢在趋向一致,所以基本上都只会设计一套原型,尺寸方面一般都是按照iphone6的750*1344(2倍…

Django 数据备份dumpdata 踩的坑

项目背景: 项目使用的是sqlite数据库,要求备份除了网络表之外的所有数据 实施方案: python3 manage.py dumpdata --exclude network.TRoute --indent 2 --format json > aq3.json 方案操作结果是: 查看aq3.json如下&#xff…

一文详解GCC7、CUDA 11.2、CUDNN部署

在部署之前,需要了解下python-tensorflow-cuDNN-CUDA版本对应关系,以便能够完全兼容下文以此版本为例部署gcc-7.3.1gpu driver-460.106.00cuda-11.2cudnn-8.1.1一.gcc部署1.安装[rootgpu ~]# yum -y install centos-release-scl [rootgpu ~]# yum install devtoolse…

《收获,不止Oracle》索引细化

1.索引知识图框 2.索引探秘 2.1 BTREE索引 索引是建在表的具体列上的,其存在的目的是让表的查询变得更快,效率更高。表记录丢失关乎生死,而索引丢失只需重建即可。 索引却是数据库学习中最实用的技术之一。谁能深刻地理解和掌握索引的知识&…