切换马甲
上一页
下一页
分类专栏
-
60篇
默认分类
文章数:60
文章总阅读量:52.6w
文章总收藏量:408
文章总点赞量:5.1k
按发布时间
按阅读量
按点赞量
-
前言 上篇文章:FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异有提到,制造商会以一系列由破折号隔开的数字来宣布存储时序(例如5-5-5-5、7-10-10-10等)。 CAS延迟始终是这些序列中的第一个数字。 那其他的数字呢?这篇文章会讲这些数字代表的含义讲解清楚。 内存参数标识含义 DDR、DDR2和DDR3内存是根据其工作的最高速度和时序来分类的,时序是3-4-4-8、5-2021-01-30 23:18:5693 8 7163
-
前言 FPGA中使用的存储资源,例如前两篇文章讲的: FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义 FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异 DDR也是计算机中的元素,当然在我们的FPGA中也广泛使用,在科普了它们的渊源,它们的基础知识后,我们便可以接着讲它在FPGA中的应用,它的使用方式,乃至它的设计等,这在后续的文章中会有所体现2021-01-31 01:07:5099 8 7040
-
前言 RAM以及ROM在FPGA中的实现大体有两种方式,一种是使用IP核定制,一种是RTL设计。 也许有人会反驳,那原语呢? 我不喜欢讨论这个问题,原语你去使用吗?如果你真的喜欢,请自便。 下面我们讨论这两种实现方式: 首先是RTL的设计,这种方式中,我们重点在于实现逻辑设计。 在IP核的定制中,我们将分别定制一种简单的RAM和ROM的IP核,并讨论它们使用中的一些参数注意事项。(这种方式2021-01-31 04:24:4789 9 5870
-
前言 在后面讲解DDR IP的定制之前,这里先介绍下Xilinx的RAM以及ROM IP比较合适,因为都甚为存储性质的东西,有些东西还是可以作为比较的。 RAM中也有一些参数,也有一些延迟,需要注意!因为有时它的特性并非如我们想象的那样,正确的流程应该是先看数据手册,再使用,但是对于很多设计者来说,总感觉这玩意太简单,但越是这样可能越会用错,不注意延迟,可能会导致时序问题,进而导致功能性问题,最后2021-02-06 22:29:1994 8 8218
-
前言 FPGA是一个很神奇的器件,工程师可以在上面做游戏或者说工程师每天都在上面做游戏,通过搭积木的方式,还能设计出精美绝伦,纷繁复杂,奇妙无比的电路,这使用器件搭建几乎是做不到的,因为太庞大!这种设计也只能在FPGA或者专用的IC中能够实现,IC只能定制,可是FPGA却可以反复使用,每一次都可以是不同的电路,因此,FPGA目前的应用十分广泛,在很多关键领域,也是香饽饽一样的存在。 既然FPGA如2021-02-07 00:59:2894 8 7947
-
前言 本文介绍整个FPGA设计流程以及设计FPGA所需的各个步骤-从一开始到可以将设计下载到FPGA的阶段。但是在此之前,让我们首先非常快速地介绍FPGA技术。 现场可编程门阵列(FPGA)是一种半导体器件,包含逻辑块,这些逻辑块被编程为执行一组特定的功能。这些可编程逻辑块在互连矩阵的帮助下相互连接。这些互连负责连接逻辑块并促进信号在芯片上的流动。该结构以二维阵列的形式排列,该二维阵列由将其与输入2021-02-14 01:58:16100 8 5977
-
什么是静态时序分析(STA)? 静态时序分析介绍 静态时序分析(STA)是一种通过检查所有可能的路径是否存在时序违规来验证设计时序性能的方法。 STA将设计分解为时序路径,计算沿每个路径的信号传播延迟,并检查设计内部和输入/输出接口处时序约束的违反情况。 静态时序分析与动态仿真的优缺点 执行时序分析的另一种方法是使用动态仿真,它可以针对给定的一组输入激励矢量确定电路的完整行为。 与动态仿真相比,静2021-02-20 17:50:1389 8 9389
-
STA定义 STA定义为:时序验证,可确保各种电路时序是否满足各种时序要求。 ASIC / FPGA设计流程中最重要和最具挑战性的方面之一是时序收敛。时序收敛可以看作是数字电路的时序验证。为时序而闭合的数字电路将以指定的频率工作(由设计人员在时序约束中定义),因此可以实现预期的PPA(性能,功率和面积)。静态时序分析是一种方法,通过该方法,可以通过对数字电路中的所有路径进行时序分析来确定是否实现时2021-02-20 22:37:0697 9 10035
-
STA回顾 70年代的时序是通过Spice仿真执行的。80年代的时序包括在Verilog仿真中,以确定设计是否足够快。两种方法都存在两个问题(动态时序): 1)分析仅与仿真一样–仅在仿真执行的情况下才发现问题 2)逻辑仿真慢5到10倍 静态时序更全面,通过计算设计中每个可能逻辑路径的延迟。最坏情况下的路径确定最大频率。 更多STA的基本问题,可以参考: FPGA的设计艺术(4)STA实战之不同时序2021-02-21 01:20:2195 8 7177
-
前言 FPGA进行时序分析通常使用厂家的编译工具,进行时序分析,但是万变不离其宗,时序分析的知识通常都是通用的,原理都是一致的。下面根据SmartTime的资料来看下时序分析的实际操作是如何的,这在其他工具上通常也是可以找到的。 SmartTime时序分析概述 SmartTime是用于SmartFusion®可定制的片上系统(cSoC),RTAX™-S / SL,Fusion®,IGLOO®,Pr2021-02-21 16:01:2899 8 6278
-
前言 本文续FPGA的设计艺术(6)STA实战之SmartTime时序约束及分析示例(I),分析了时钟的不确定性,多周期路径,以及门控时钟的STA分析方法。可以使用各大厂家的时序分析工具,大多数都自带GUI界面,通过这些界面可以进行这些类似的分析。 在SmartTime中分析具有抖动/时钟不确定性的设计 SmartTime在跨时钟域时序分析期间使用启动的时钟沿与捕获的时钟沿之间的关系。但是,时钟生2021-02-21 21:08:2796 8 5972
-
前言 对于很多人来说,FPGA的开发很随意,要实现一个什么功能,在大脑里随便思考一下,就开始写逻辑,“天马行空”,水平看起来很高的样子。你若问他FPGA开发的流程,他也知道,但也仅仅局限于理论上的东西,从来不去实践,或没有这个习惯,或环境使然(例如,没人给你这个时间,我要求了,你就得立即给我干,不要让我看到你在看手册或者思考,这都是很死板的表现)。这种方式在高校尤为常见,或者不太正规的公司,功能的2021-03-12 23:39:200 0 4287
-
前言 阅读一段话: 产品开发工程师对公司的未来成功与产品对当前的成功一样重要。将工程师,受过高等教育的技术专家视为商品,会降低团队士气,并不可避免地影响项目进度和质量。在竞标一个项目以赢得业务的情况下,期望或要求工程师无偿加班来弥补差额并不是公司长期成功的途径。 是不是深有同感,这是工程管理理念的一部分,本文最后提出了一系列值得每个公司管理者需要长远考虑的问题,你要打造一个什么样的团队乃至公司?你2021-03-13 01:55:140 0 4199
-
前言 大家都知道HDL是逻辑设计的语言,FPGA开发是一种硬件开发的行为,但由于我们平时也使用某种类似软件的方式管理项目,并且类似软件的行为来编码,大多数人还是会误会?你是不是在搞软件? 对于这种问题,我从来都是尴尬一笑,我是做逻辑的。或者说我是做FPGA开发的?但貌似这种回答并不能说明什么问题?我明明看到你在写代码,你三个大屏幕上都是密密麻麻的代码,这是做硬件或者这是设计电路? 于是,这就有必要2021-03-14 01:12:3993 9 5442
-
前言 本文讨论FPGA的构建过程,由于FPGA的过程太多了,恐怕会有歧义,这个过程,不是开发过程,不是开发流程,而是实实在在的FPGA编译的过程,使用编译恐怕不是太合适,但是大家都叫习惯了,也知道FPGA的编译过程就是指的是FPGA实现的中间一系列过程,例如综合,实现以及最后生成比特流编程文件。 这篇文章中:FPGA的设计艺术(2)FPGA开发流程,我们讨论了创建FPGA设计的过程。一旦证明了我们2021-03-14 01:58:1586 8 5212
-
前言 与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。 这使我们可以减少将来项目的开发时间,因为我们可以更轻松地将代码从一种设计移植到另一种设计。 我们在verilog中有两个可用的构造,它们可以帮助我们编写可重用的代码-parameter和generate语句。 这两种构造都允许我们创建更多的通用代码,我们在实例化组件时可以轻松地对其进行修改以满足自己的需求。 Verilog参数 在v2021-03-14 02:34:441 0 6789
-
前言 我们在verilog中使用generate语句在我们的设计中有条件地或迭代地生成代码块。 这使我们可以: 有选择地包括或排除代码块, 创建给定代码块的多个例化。 这很重要,也很方便,对于第一条,我们没必要删减代码就可以令某一个模块无效,或者有效;毕竟删掉了,就破坏代码结构了,这对代码迭代管理不利。 第二条就更重要了,例如例化多个模块,如果一个一个例化,少了还可以,如果多了的话,例化几十个2021-03-15 23:18:3697 7 7128
-
前言 提到函数与任务,很多已从业的逻辑设计人员甚至都会对此陌生,听过是听过,但是很少用过。 与大多数编程语言一样,我们应该尝试使尽可能多的Verilog代码可重用。这使我们能够减少将来项目的开发时间,因为我们可以更轻松地将代码从一种设计移植到另一种设计。 人是懒惰的,觉得麻烦且使用场合局限,就不去重视,甚至不予接触,我宁愿使用其他语法代替。这样的话,就失去了这些语法宝贵的用途,Verilog中的函2021-03-16 23:20:0696 8 5414
-
前言 Verilog中的循环各式各样,例如,for循环,while循环,forever循环和repeat循环,有的可以综合有的不可用综合,就凭这一条特点,就能在逻辑设计中排除很多种循环语句,对于设计来说,只能用可以综合的循环语句,例如for循环语句。那么既然只有for等循环可以综合,那么其他循环语句存在的意义在哪里呢? 当然是仿真啦,仿真可没有要求Verilog可综合,只要是Verilog中的语法2021-03-17 23:24:5396 8 5580
-
前言 Verilog中的if或者case语句十分简单,但确实十分重要,我们的逻辑设计可以说一定离不开它,我们时时刻刻使用它,我们使用它进行建模,通常对应的是多路选择器这样的硬件单元或者变种。 我们通常将if语句或者case语句与generate语句中的generate if与generate case语句相比较,因为都有if和case,实在太像了,但是它们之间其实有着本质的区别,本系列前面的gen2021-03-18 22:57:2493 8 5054