FPGA逻辑设计之设计方法
文章平均质量分 84
田庚.Bing
这个作者很懒,什么都没留下…
展开
-
逻辑设计中关于延时n拍的设计方法
引言:在像素领域处理hsync,vsync,active,以及rgb888并行数据。因为Display Monitor Timing标准,控制信号(hsync/vsync/active)以及数据rgb888之间存在着某种特定的关系,其关系大体如下图所示:图1 : Hsync Vsync Active 与像素之间的关系在实际使用的过程中,像素数据需要经过buffe原创 2017-06-28 18:21:15 · 2104 阅读 · 0 评论 -
逻辑设计中多时钟设计【1】
简介在实际的逻辑设计中,单个的时钟域内的设计是很容易满足时序要求的。然而,在实际的工程中基本没有实用的设计是只依靠单时钟就能实现的。所以需要考虑在多时钟领域内如何处理信号,以保证可以得到稳定的设计。多时钟域的信号处理,属于逻辑开发中比较基础的问题。多时钟域一般对于如下两种情况,我们都认为属于跨时钟域:时钟频率不同时钟频率相同,相位不同在多时钟域设计中,经常会带来原创 2017-06-29 21:43:05 · 3235 阅读 · 0 评论 -
逻辑设计方法学【5】 --控制时钟偏移
整个芯片中时钟信号到达时间的差异成为时钟偏移,即clock skew。在时序设计的时候,满足寄存器的建立时间和保持时间的要求是最基本的设计原则。在相邻的寄存器之间的数据传输延迟,与时钟偏移应该满足一定的关系,在本节中,我们来详细地讨论其关系。通过图1来看相邻寄存器之间传输的时候的数据延迟和时钟偏移,以及详细的时序关系图 1 两个相邻触发器之间的时钟偏移给定两个相原创 2017-11-17 21:50:37 · 3105 阅读 · 0 评论 -
逻辑设计方法学【6】 --多时钟设计技术
在进行一个含多个时钟的设计时,在仿真和综合过程中需要遵循一定的准则,这样会带来很大的好处。通用的准则如下:时钟命名规则分模块设计1 时钟命名法Xilinx的开发工具Vivado有“project mode”和“non-project mode”,在“non-project mode”中,我们经常使用脚本进行开发。同样在仿真的时候,也会编写Tcl脚本。在写脚本的过程中,就原创 2017-11-19 20:49:53 · 905 阅读 · 0 评论 -
逻辑设计方法学【7】 --跨时钟域
在上一篇文章的最后,详细说明了什么是同步时钟,什么是异步时钟,在本篇中,主要介绍跨同步时钟域问题,为详细描述异步时钟域间数据传输的方法打好基础。如果多个时钟都起源于同一时钟,并且它们的香味和频率关系是已知的,那么这些时钟可以看成是跨同步时钟域的时钟。按照相位和频率的关系,可以将这些时钟分成以下类型:同频零相位差时钟同频恒定相位差时钟非同频可变相位差时钟整数倍时钟有理原创 2017-11-21 19:06:00 · 1878 阅读 · 0 评论 -
逻辑设计方法学【4】 --复位信号设计方法
在为ASIC选择复位策略前必须考虑许多方面的问题。对于复位,我们都只到有同步复位和异步复位,那么在实际设计的时候,就需要知道该选择哪种复位方式,还有所有的触发器是否都需要接收复位信号。复位最基本的目的是使SoC进入一个能进行稳定操作的确定状态,这样可以避免SoC在上电后进入随机状态而死机。在verilog中,有四种逻辑状态:0,1,x,z。但是在进行IC设计的时候,会有十几种逻辑状态。原创 2017-11-16 21:55:27 · 3679 阅读 · 0 评论 -
Xilinx SDK下载失败的解决方法
在视频合成项目中,用到了Xilinx SDK,通过microblaze软核处理器完成前端相机OV4689和后端HDMI图像发送芯片ADV7511的配置。开发平台硬件平台:Xilinx KC705开发板, novel-supertv merge前端板软件平台:Keil,ISE14.7,Vivado2015.4,Xilinx SDK在本项目中有ISE或Vivado生成的原创 2017-11-07 15:00:04 · 9926 阅读 · 0 评论 -
亚稳态以及测试逻辑实现
在逻辑设计中,如果整个系统使用的都是同步时钟,并且后续时钟都是由同一时钟经过PLL或者DCM产生的时钟信号,那么时钟和数据总会有固定的关系。当这个关系满足寄存器的建立时间和保持时间要求的时候。输出端会在特定的传输延迟时间后输出一个稳定的有效状态。因为在同步系统中,输入信号总是满足寄存器的建立保持时间要求,所以不会发生亚稳态。但是在实际的工程设计中,不可避免地在电路设计时引入异步设计,对于异步系统,原创 2017-08-30 17:51:37 · 1441 阅读 · 0 评论 -
逻辑设计方法学【1】 -- 常用设计技术
使用HDL代码进行设计的时候,需要注意所选取的综合工具是哪一种,无论是FPGA开发套件自带的综合工具(synthesis tools)还是第三方的综合工具,它们对同一段HDL语言综合结果都有可能不同,综合工具有可能违背设计者的最初设计想法,优化掉某些设计。所以在实际设计过程中,需要对所使用的综合工具有比较清楚的了解。但是在实际使用综合工具的时候,设计者是很难清楚地知道综合工具是怎样对HDL语句进行原创 2017-09-05 16:47:51 · 1240 阅读 · 0 评论 -
阻塞赋值与非阻塞赋值的再分析
在Verilog HDL设计中,经常会遇到阻塞赋值与非阻塞赋值,这是学习逻辑设计时最基础的知识点。设计者经常会在书中看到一些建议:什么时候该用阻塞赋值,什么情况下使用非阻塞赋值。可是,如果仅仅按照这样的设计推荐来进行设计的话,经常会碰到一头雾水的情况。本文就对阻塞赋值和非阻塞赋值进行详细的讨论,深入分析这两种赋值语句的区别。“阻塞”与“非阻塞”疑问的由来,主要体现在always或initial原创 2017-08-25 14:27:10 · 4890 阅读 · 3 评论 -
逻辑设计中多时钟设计【2】
简介在上个系列中,主要分析了单bit时钟信号是如何在多个时钟域中进行同步的。概括起来只有两点:一是通过同步器,二是将控制信号与数据信号合并成一组(数据+控制)总线,经过FIFO或RAM实现跨时钟域设计。那么在这节中,重点来分析跨时钟域这个概念。1. 跨时钟域在讨论阴部时钟域见传输数据的方法之前,先来分析跨时钟域问题的各种类型。如果多个时钟都起源于同一时钟(注:在《硬件架构的艺术原创 2017-07-16 23:38:27 · 1640 阅读 · 0 评论 -
Xilinx 7series FPGA SelectIO资源--ODDR
OLOGIC 资源OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC2(位于HR I/O banks)。在本文的下述论述中,除非特殊说明,OLOGIC2和OLOGIC3在功能和端口上都是相同的。OLOGIC2和OLOGIC3不属于原语,正因为这样,所以翻译 2017-07-05 22:21:05 · 9482 阅读 · 2 评论 -
逻辑设计方法学【3】--门控时钟
对于每一个寄存器,都需要有时钟输入端,如果在一些对设计功耗要求比较高的地方,保持设计准确后的功耗控制便是头等大事。为了分析如何减少功耗,首先要来分析功耗主要由哪些部分组成。在绝大多数的设计中,功耗主要由三部分组成:在每个时钟沿变化的组合逻辑所产生的功耗(由于触发器驱动这些组合逻辑)由触发器产生的功耗(即使在触发器的输入和内部状态没有发生变化,该功耗依然存在)设计中时钟树产生的功耗原创 2017-11-15 21:50:26 · 6673 阅读 · 0 评论