
FPGA 设计心得
文章平均质量分 95
本专栏以实践为主,写一些FPGA设计心得,博文风格随意,谨慎订阅!
李锐博恩
退网中
展开
-
FPGA的设计艺术(17)如何搭建一个简易的逻辑测试平台?
提到FPGA逻辑的仿真,一般指的是行为仿真或者功能仿真,还有人会称为前仿,不包含时间延迟信息,只验证逻辑功能。对于小模块的仿真,需要写一个测试文件,英文是testbench,即测试平台。在testbench里面,我们给输入信号的激励,给时钟信号等等,然后观察输出,或者处理输出,观察符合不符合预期,达到测试功能的目的。原创 2021-08-29 11:21:20 · 2852 阅读 · 5 评论 -
FPGA的设计艺术(16)逻辑设计中无刻不在的判断之if/case语句
Verilog中的if或者case语句十分简单,但确实十分重要,我们的逻辑设计可以说一定离不开它,我们时时刻刻使用它,我们使用它进行建模,通常对应的是多路选择器这样的硬件单元或者变种。原创 2021-08-29 11:19:54 · 4797 阅读 · 0 评论 -
FPGA的设计艺术(15)逻辑设计及仿真利器之各式各样的循环
我们讨论在verilog中如何使用每个循环。然后,我们为这些结构中的每一个考虑一个简短的示例,以说明我们如何在实践中使用它们。原创 2021-08-24 22:38:47 · 2120 阅读 · 1 评论 -
FPGA的设计艺术(13)使用generate语句构建可重用的逻辑设计
有选择地包括或排除代码块,创建给定代码块的多个例化。原创 2021-06-19 13:10:39 · 3266 阅读 · 4 评论 -
FPGA的设计艺术(12)使用parameter构建可重用的逻辑设计
与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。这使我们可以减少将来项目的开发时间,因为我们可以更轻松地将代码从一种设计移植到另一种设计。原创 2021-06-03 23:44:56 · 2865 阅读 · 2 评论 -
FPGA的设计艺术(10)HDL是软件还是硬件?
FPGA中的数字设计每天可以改变很多次,这增加了令人难以置信的灵活性,但代价是有很大的混淆可能性。这意味着对修订控制的强烈需求。关键点:HDL和仿真器使人们很容易用行动代替思想。摒弃这种诱惑,先设计,再编码。原创 2021-05-15 18:10:27 · 2816 阅读 · 3 评论 -
FPGA的设计艺术(9)FPGA开发技巧与工程管理
产品开发工程师对公司的未来成功与产品对当前的成功一样重要。将工程师,受过高等教育的技术专家视为商品,会降低团队士气,并不可避免地影响项目进度和质量。在竞标一个项目以赢得业务的情况下,期望或要求工程师无偿加班来弥补差额并不是公司长期成功的途径。原创 2021-04-10 22:30:19 · 2150 阅读 · 2 评论 -
FPGA的设计艺术(8)最佳的FPGA开发实践之严格遵循过程
从设计的过程中,规避大量的逻辑问题,让调试更轻松,让功能更稳定,产品质量更可靠。原创 2021-04-09 23:54:18 · 1950 阅读 · 3 评论 -
FPGA的设计艺术(7)STA实战之SmartTime时序约束及分析示例(II)
本文分析了时钟的不确定性,多周期路径,以及门控时钟的STA分析方法。可以使用各大厂家的时序分析工具,大多数都自带GUI界面,通过这些界面可以进行这些类似的分析。原创 2021-04-09 23:52:29 · 1712 阅读 · 0 评论 -
FPGA的设计艺术(6)STA实战之SmartTime时序约束及分析示例(I)
FPGA进行时序分析通常使用厂家的编译工具,进行时序分析,但是万变不离其宗,时序分析的知识通常都是通用的,原理都是一致的。原创 2021-04-09 23:42:22 · 1985 阅读 · 0 评论 -
FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析
静态时序更全面,通过计算设计中每个可能逻辑路径的延迟。最坏情况下的路径确定最大频率。原创 2021-03-18 23:08:48 · 2531 阅读 · 0 评论 -
FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算
ASIC / FPGA设计流程中最重要和最具挑战性的方面之一是时序收敛。时序收敛可以看作是数字电路的时序验证。原创 2021-03-17 23:29:07 · 2239 阅读 · 1 评论 -
FPGA的设计艺术(3)静态时序分析
静态时序分析(STA)是一种通过检查所有可能的路径是否存在时序违规来验证设计时序性能的方法。 STA将设计分解为时序路径,计算沿每个路径的信号传播延迟,并检查设计内部和输入/输出接口处时序约束的违反情况。原创 2021-03-16 23:56:32 · 2759 阅读 · 0 评论 -
FPGA的设计艺术(2)FPGA开发流程
本文介绍整个FPGA设计流程以及设计FPGA所需的各个步骤-从一开始到可以将设计下载到FPGA的阶段。原创 2021-03-09 23:58:09 · 2482 阅读 · 0 评论 -
FPGA逻辑设计回顾(13)RAM以及ROM的IP核定制以及关键参数
RAM中也有一些参数,也有一些延迟,需要注意!因为有时它的特性并非如我们想象的那样,正确的流程应该是先看数据手册,再使用,但是对于很多设计者来说,总感觉这玩意太简单,但越是这样可能越会用错,不注意延迟,可能会导致时序问题,进而导致功能性问题,最后是整个设计的失败。原创 2021-03-06 20:38:04 · 2586 阅读 · 0 评论 -
FPGA逻辑设计回顾(12)RAM以及ROM的RTL设计及其验证
RAM以及ROM在FPGA中的实现大体有两种方式,一种是使用IP核定制,一种是RTL设计。原创 2021-03-06 20:36:26 · 3794 阅读 · 1 评论 -
FPGA的设计艺术(1)FPGA的硬件架构
FPGA是一个很神奇的器件,工程师可以在上面做游戏或者说工程师每天都在上面做游戏,通过搭积木的方式,还能设计出精美绝伦,纷繁复杂,奇妙无比的电路,这使用器件搭建几乎是做不到的,因为太庞大!这种设计也只能在FPGA或者专用的IC中能够实现,IC只能定制,可是FPGA却可以反复使用,每一次都可以是不同的电路,因此,FPGA目前的应用十分广泛,在很多关键领域,也是香饽饽一样的存在。原创 2021-03-06 20:39:40 · 8654 阅读 · 5 评论 -
FPGA逻辑设计回顾(11)FPGA以及PC中的RAM与ROM
杀鸡焉用牛刀,DDR的使用场景是对存储空间要求比较大等类似场景,如果是普通的存储场景,我们将会用到本文中所说的存储器件,RAM以及ROM。原创 2021-03-06 20:33:55 · 2964 阅读 · 0 评论 -
FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义
制造商会以一系列由破折号隔开的数字来宣布存储时序(例如5-5-5-5、7-10-10-10等)。 CAS延迟始终是这些序列中的第一个数字。那其他的数字呢?这篇文章会讲这些数字代表的含义讲解清楚。原创 2021-03-06 20:32:02 · 4130 阅读 · 0 评论 -
FPGA逻辑设计回顾(8)单比特信号的CDC处理方式之Toggle同步器
本文为CDC问题的最后一篇,对亚稳态与单比特脉冲信号的CDC问题的处理问题的扩展,拓展问题:如何使用脉冲展宽同步器对低电平脉冲进行展宽处理?本文最后讲解了:Toggle同步器!原创 2021-03-06 20:29:31 · 2347 阅读 · 0 评论 -
FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异
本篇作为有关DDR的相关知识的第一篇,先给出DDR的前生SDRAM以及演变DDR/DDR2/DDR3等的总体概念与区别,后面会细分技术细节。文章参考互联网以及国外各大网站以及文献,水平有限,若有疏漏,还请谅解。原创 2021-02-06 15:56:49 · 2227 阅读 · 1 评论 -
FPGA逻辑设计回顾(1)新手易犯的逻辑综合错误之always块
心中有电路,在你使用RTL语言设计电路的时候,才能设计出综合工具能够推断出的具体硬件电路与之对应,否则可能语法过了,但是综合工具无法推断你的设计。原创 2021-01-23 19:00:17 · 5755 阅读 · 0 评论 -
FPGA逻辑设计回顾(2)那些年学习FPGA较为常见的疑问?
本文节选出大家可能会遇到的部分问题,比较常见,并对其进行分析,当然分析也不一定是我的分析(部分来自参考资料),但一定是我比较认同的理解。原创 2021-01-23 18:57:02 · 2854 阅读 · 0 评论 -
FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱?
本文首发自[FPGA逻辑设计回顾(3)多比特信号上升沿检测的设计方式与陷阱?](https://www.ebaina.com/articles/140000005302)原创 2021-01-23 18:51:03 · 2490 阅读 · 0 评论 -
FPGA逻辑设计回顾(7)多比特信号的CDC处理方式之握手同步
每种跨时钟域处理的方式都有其适用范围,例如:两级同步器,用于单比特信号处理,且是从慢时钟域到快时钟域......原创 2021-01-23 16:49:55 · 4184 阅读 · 2 评论 -
FPGA逻辑设计回顾(4)亚稳态与单比特脉冲信号的CDC处理问题
亚稳态是指触发器无法在特定时间内达到已知状态。当触发器进入亚稳状态时,您既无法预测元件的输出电压电平,也无法预测输出何时将稳定至正确的电压电平。在此稳定时间内,触发器的输出处于某个中间电压电平,或者可能振荡,并且可以级联无效的输出电平,以使触发器在信号路径的更下方。原创 2021-01-17 00:20:00 · 4946 阅读 · 4 评论 -
FPGA逻辑设计回顾(6)多比特信号的CDC处理方式之异步FIFO
本文更新了过去对异步FIFO的设计!原创 2021-01-15 23:02:13 · 4682 阅读 · 5 评论 -
FPGA逻辑设计回顾(5)多比特信号的CDC处理方式之MUX同步器
多比特信号即位宽不为1的数据,对这种信号进行跨时钟域处理时,我们关注的重点就和单比特信号不太一样了,有的时候我们甚至不再关注源时钟与目的时钟之间的快慢,而是如何将数据传输到对面而不会出错。原创 2021-01-12 23:25:07 · 5660 阅读 · 4 评论 -
FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?
采用8B/10B编码,用户时钟为线速率除以编码后的用户数据位宽。编码前的位宽可以在IP的定制页面选择:原创 2020-10-18 02:46:29 · 9718 阅读 · 3 评论 -
FPGA设计心得(12)如何正确使用 in_system_ibert ?
这里就已经可能解决很多疑惑了,但是还不够,没有个示例来参考,又没有例子工程,我会不放心我连接的对不对,或者说对这个IP核使用的对不对,因为我一旦例化进去,并生成bit流,工程大了会消耗大量的时间,怎么办呢?原创 2020-09-20 18:06:49 · 3050 阅读 · 1 评论 -
FPGA设计心得(11)关于FIFO IP核使用的一点注意事项
使用FIFO IP核的时候,或者设计电路使用FIFO IP的时候,对于新手或者不是精通的情况下,个人建议一点是对自己定制的FIFO仿真一下(或者严格遵守数据手册),做到时序关系清晰后,再设计电路。原创 2020-09-13 22:00:31 · 7377 阅读 · 4 评论 -
FPGA设计心得(10)关于行为仿真的一点观点
不同仿真平台对极端仿真情况的观点不一致,为了避免这种情况且让仿真有意义,我们需要避开极端的赋值情况。原创 2020-08-20 20:46:53 · 3952 阅读 · 1 评论 -
FPGA设计心得(9)基于DDS IP核的任意波形发生器设计
花了几个小时了解并写了这篇博客,不得不说的是了解的还是皮毛而已,但尽力写的详细点,这比较适合新手,老手可以忽略繁琐的部分。原创 2020-06-03 22:01:31 · 7153 阅读 · 5 评论 -
FPGA设计心得(8)Verilog中的编译预处理语句
Verilog中编译预处理语句不是一般的语句,Verilog编译器会对其进行预处理,然后预处理的结果和源程序一起进行通常的编译处理。其作用范围从定义开始到文件结束。原创 2020-06-01 01:40:20 · 3649 阅读 · 0 评论 -
FPGA设计心得(6)Aurora IP核例子简析与仿真(framing版)
文章目录背景定制framing接口的IP核生成示例工程并分析GEN模块分析CHECK模块分析示例工程仿真总体仿真发送模块仿真接收模块仿真参考资料交个朋友写在最后背景熬夜继续写Aurora系列博文!今天明显状态不如昨天,眼皮有点涩涩的,坚持一下。如果不是写博客,我根本没有动力那么认真看,认真思考这个东西,这可能就是写博客输出的魅力吧。尽管streaming格式很简单,但是肯定不如framing强大,很多项目还是用framing用户接口,因此有必要对此进行仿真分析来认识下。博客首页完成时间:第二天晚原创 2020-05-14 03:52:04 · 8566 阅读 · 11 评论 -
FPGA设计心得(5)Aurora 例子工程分析与仿真实例分析(streaming版)
文章目录背景例子工程预览例子程序用户模块逻辑分析收(CHECK)发(GEN)例子程序仿真文件分析写在最后工程分享参考资料交个朋友背景熬夜写完了上两篇博客:Aurora IP core 的理论学习记录Aurora IP core 的定制详情记录到这一篇应该就是分析例子程序了,最重要地还是通过仿真来认识Aurora通信。Aurora IP核的定制,基本都是默认的,为了简单起见,GT Selection中选择了一个通道(lane)。文章末尾会分享工程文件!例子工程预览由于本IP核定制选择了:因原创 2020-05-12 17:58:42 · 8859 阅读 · 0 评论 -
FPGA设计心得(4)Aurora IP core 的定制详情记录
文章目录写在前面IP核定制页面预览IP核定制详解lane widthLine RateGT REFCLK (MHz)INIT clk (MHz)DRP clk (MHz)Dataflow ModeInterfaceFlow controlBack ChannelGT selection写在最后同行邀请参考资料写在前面很久没有在夜里写博客了,现在是凌晨3点多,写这篇博客,夜真的太静了,这种感觉是真的好。为什么要在夜里写博客呢?原因是通过这一段时间的学习,我发现白天我真的特别容易分心,夜里状态极好(读研期原创 2020-05-12 05:06:46 · 7785 阅读 · 4 评论 -
FPGA设计心得(3)Aurora IP core 的理论学习记录
文章目录Aurora IP核介绍整体介绍大小端Framing or Streaming User Interfaceframing 接口介绍framing 结构几个frame的例子streaming接口介绍Streaming接口发送数据实例streaming接口接受数据实例写在最后同行邀请参考资料Aurora IP核介绍整体介绍FPGA之间通过Aurora 8B/10B IP核进行通信的示意图如下:通信的双方经过各自例化IP核,通过通道传输数据,用户能够操作的是User Application以及I原创 2020-05-12 01:30:17 · 13608 阅读 · 6 评论 -
FPGA设计心得(2)边沿检测的问题进一步说明(仿真中一定能得到上升沿的设计)
关于边沿检测,写过的博文也很多,不下于4篇了,当然都是学习过程中边学边记的,过了那么久设计的沉淀,又过了一个疫情的荒诞时光,安静下来,还谈一下这个问题,并给出一种新的写法(其实都是一个原理)。也许你觉得不值一提,但总会有点意义。原创 2020-05-09 22:55:56 · 2929 阅读 · 3 评论 -
FPGA设计心得(1)真双口RAM使用及其仿真问题记录
文章目录前言设计介绍关于仿真老生常谈最后想说的话前言RAM是一个好东西,FIFO也是,关键是适应你的设计场景,本文是一个记录性质的博文,所以也没必要什么都交代清楚了,只是在项目开发中,有过FIFO和RAM的取舍思考,最终 RAM更符合需求。想到哪里写到哪里吧,正双口RAM,一边是A端口,另一边是B端口,A端口用于dsp总线(emif总线)写,写入RAM中,同时另一边仅仅用于读取写入的数据,可以说是一边写一边读了。既然A端口是供dsp总线写,那么肯定有地址,因此这里选择RAM而非FIFO的因素大些(原创 2020-05-08 17:59:36 · 7187 阅读 · 10 评论