深入浅出玩转FPGA阅读笔记
本专栏记录“深入浅出玩转FPGA”的阅读笔记
tanfuz
这个作者很懒,什么都没留下…
展开
-
深入浅出玩转FPGA阅读笔记(13):TestBench书写技巧
一、封装有用的子程序 用task进行对子程序进行封装,方便进行调用,例如相关的打印信息。 二、关于变量的定义 尽量不要定义全局变量,防止多个always块同时调用该整形变量引发不可预料的错误。 三、HDL并行性 同时发生相互独立的行为的能力。 四、结构化TestBench 五、读写紊乱状态 非阻塞赋值可以解决并行always块的读写紊乱问题。 六、防止同时调用task 例如读写控制任务,同时调用分别进行读写,容易引发读写错误,加入已经被调用标志可以解决问题。 ...原创 2021-01-16 13:34:38 · 157 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(12):简单的TestBech设计
一、TestBech概述 支持更高级的语法 二、基本TestBench的搭建 1.三个步骤 (1)被测试模块顶层例化 (2)被测试输入接口添加激励 (3)判断被测试输出是否满足条件原创 2021-01-16 13:19:44 · 253 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(10):FPGA重要设计思想及工程应用
一、速度面积互换原则 速度的提高要以面积的增扩为代价。 例如有时关键路径过长,频率无法提升,这是可以将关键路径的信号打一拍,减小路径长度,利于频率提升;再比如一定逻辑资源可以达到50Mbps,若用三倍的逻辑资源实现相同的功能则可以将速度提升3倍。 二、乒乓操作及串并转换设计 1.乒乓操作 2.串并转换 3.流水线设计 如果数据流是单向的,前一个步骤的输出即下一个步骤的输入,可以通过流水线设计从某种程度上提高系统频率,常用于高速信号处理领域。 典型的流水线设计是将原本一个时钟周期完成的较大的组合电路用多原创 2021-01-16 11:24:12 · 288 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(9):复位设计
一、异步复位与同步复位 1.异步复位 2.同步复位 2.异步与同步复位优缺点比较 同步复位多了逻辑资源消耗,但减轻了亚稳态(不确定0或1)的影响。 异步复位rst_n的撤销时间点不确定造成亚稳态,在下面时间段内撤销无法确定复位的rst_n究竟是0还是1,可能造成两个寄存器一个复位而另一个还没有复位。 二、复位与亚稳态 亚稳态对寄存器影响较小,但对总线式寄存器影响很大 三、异步复位,同步释放 同步异步结合。 四、PLL配置后的复位设计 解决系统复位后,PLL时钟输出不稳定时异步复位,同步清零功原创 2021-01-15 16:22:14 · 142 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(8):漫谈状态机设计
一、状态机基本概念 让硬件实现一些具有一定顺序的工作 二、三种不同状态机的写法 1.一段式状态机 不利于维护 2.两段式状态机 组合逻辑,易出现毛刺问题 3.三段式状态机 易于维护,消耗资源多一些 ...原创 2021-01-15 15:43:27 · 140 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(7):代码风格
一、代码风格概述 一样的逻辑电路会有不同的写法,要求设计者写出的代码尽可能优化,编写代码要注意一些基本原则。 二、寄存器电路的设计方式 1.简单的寄存器输入输出模型 通常在每个时钟(clk)上升沿锁存数据。 2.带异步复位的寄存器输入输出模型 通常在每个时钟(clk)上升沿锁存数据,异步复位信号(rst_n)下降沿强制清零。 3.带异步置位的寄存器输入输出模型 通常在每个时钟(clk)上升沿锁存数据,异步置位信号(set)上升沿强制置位。 4.既带异步复位又带异步置位的寄存器输入输出模型 两者同时有效时可通原创 2021-01-15 14:00:54 · 518 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(6):代码书写规范
一、代码书写规范 二、标识符 标识符包含关键字,模块名,端口名,信号名,关键字不能作为后面几种名称使用 三、格式 关键词、操作符等采用一个空格隔离 功能块空行隔离 四、注释 每个独立功能块有功能描述,输入输出口功能描述 ...原创 2021-01-14 23:04:35 · 174 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(5):可综合语法子集
一、模块声明类语法 module…endmodule 二、端口声明类语法 input、output、inout 三、参数定义 parameter:用于定义一些常量 四、信号类型 wire、reg 五、比较判断 if …else case…default…endcase 六、循环语句 for 七、任务定义 task…endtask,通常用于组合逻辑电路。 module EXAMPLE (A, B, CIN, S, COUT); input [3:0] A, B; input CIN; output [3原创 2021-01-14 22:55:13 · 180 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(4):语法学习经验之谈
一、可综合语法与不可综合语法 1.可综合语法 实际设计中常用的可综合语法就10多条。 2.不可综合语法(行为级语法) 行为及语法实现对象是计算机不是底层FPGA,计算机有充足的资源,因此采用行为级语法而可高效灵活地完成testbench测试代码的编写。 (plus:多看综合后的RTL视图,验证代码是否实现预期的功能及电路。) ...原创 2021-01-14 22:14:23 · 124 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(3):开发流程
一、需求分析到模块划分 1.需求分析:根据需求,完成芯片选型 2.模块划分:浩大工程分多模块完成,分工明确,便于后期维护 二、设计输入到综合优化 1.设计输入:可以是代码输入或原理图输入,复杂应用一般用代码输入。 2.综合优化:将高层输入代码转化为底层与门、非门、RAM、触发器等基本单元。 3.行为仿真:不涉及时序上的延时,单纯验证功能正确性,通过测试脚本TesetBech的编写模拟FPGA与外围电路的时序。 三、实现到时序收敛 1.添加时序约束:对工程进行全局约束+IO时序约束+需要的地方例外约束。 2.原创 2021-01-14 22:01:52 · 175 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(2):应用领域
一、逻辑粘合与时序控制 1.逻辑粘合 早期FPGA主要完成一些简单的纯组合逻辑粘合(但现在FPGA动辄上万逻辑门,再做逻辑粘合有些大材小用,逻辑粘合由CPLD取代) 2.实时控制 相较于CPU,FPGA的并行性可满足实时控制的要求。 二、信号采集处理与协议实现 1.信号采集处理 用于高速AD,图像数据采集与处理 2.协议实现 对于更新较快的协议,如有线无线通讯标准,各种 编解码算法,FPGA相较于ASIC更有竞争力。 三、原型验证系统,片上系统与其它应用 1.原型验证:流片前验证 2.片上系统:集成了ARM原创 2021-01-14 20:59:20 · 263 阅读 · 0 评论 -
深入浅出玩转FPGA阅读笔记(1):初识FPGA
一、关于FPGA的一些基本概念 1.FPGA是什么? 简单讲就是可以反复编程的逻辑器件。 2.FPGA/ASIC/ASSP asic和assp功能固定,就好比印刷好的纸张,而fpga则是可以随时擦写的白纸一张。 3.FPGA/ARM/DSP fpga、arm、dsp都或多或少集成了一些asic的功能。 arm:廉价、功能多、功耗低,擅长控制与管理。 dsp:有专用的指令系统,能进行高速、高吞吐量的数字信号处理。 fpga:可以实现arm和dsp所能实现以及它们所不能实现的功能,但功耗高,成本高,编程复杂原创 2021-01-14 20:35:47 · 482 阅读 · 0 评论