![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式FPGA
zhuzhiqi11
天行健君子当自强不息
展开
-
FPGA 设计如何进行面积优化(逻辑资源占用量优化)
FPGA面积优化1 对于速度要求不是很高的情况下,我们可以把流水线设计成迭代的形式,从而重复利用FPGA功能相同的资源。2 对于控制逻辑小于共享逻辑时,控制逻辑资源可以用来复用,例如FIR滤波器的实现过程中,乘法器是一个共享的资源,我们可以通过控制资源实现状态机,从而复用乘法器,当然这样也牺牲了面积。3 对于具有类似计数单元的模块,可以采用全局的计数器,以减小面积。例如原创 2014-07-17 16:03:58 · 15165 阅读 · 1 评论 -
FPGA STA(静态时序分析)
1 FPGA设计过程中所遇到的路径有输入到触发器,触发器到触发器,触发器到输出,如下图所示:这些路径与输入延时输出延时,建立和保持时序有关。2. 应用背景 静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建立和保持时间以及其他基于路径的时延要求是否满足。STA原创 2014-07-31 12:36:05 · 6760 阅读 · 1 评论 -
格雷码的产生方式以及其与二进制码的关系
格雷码也是一种可以用来计数的编码方式,它在加1的过程中只有一位发生变化,这样就可以简化硬件实现,因此许多速度传感器,绝对位置传感器等会采用格雷码计数。 此外由于给雷码的特性,一次变化过程只改变一位,相比普通二进制计数,加1后可能变化多位,更加安全。因此在数字电路的状态机的状态计数采用格雷更加安全,且易于实现。格雷码可以按照如下方式产生0 取镜像 0 加符号 00 取镜像 00原创 2014-08-08 17:19:40 · 1513 阅读 · 0 评论 -
FPGA学习笔记(转)
http://blog.csdn.net/superuser007/article/details/58843731.2.1 FPGA工作原理与简介如前所述,FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。由于FPGA需要被反复转载 2014-08-09 10:52:32 · 1482 阅读 · 0 评论 -
IC设计前端到后端的流程和eda工具。
IC前端设计(逻辑设计)和后端设计(物理设计)的区分:以设计是否与工艺有关来区分二者;从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。前端设计的流程及使用的EDA工具如下:1、架构的设计与验证:按照要求,对整体的设计划分模块。 架构模型的仿真可以使用Synopsys公司的CoCentric软件,它是基于System C的仿真工具。2、HDL设计输入:设计输入方法有原创 2014-08-12 10:33:56 · 9332 阅读 · 0 评论 -
FPGA面试题及答案
汉王笔试 下面是一些基本的数字电路知识问题,请简要回答之。 a)什么是Setup 和Holdup时间?1 建立时间是指信号到达触发器输入端的时间要早于时钟敏感边沿到达触发器的时间,只有满足保持时间信号才能正确的保存到触发器。2 保持时间是指时钟边沿到达后数据需要稳定的时间,只有这样数据才能正确的从寄存器中发出。b) 什么是竞争与冒险现象?怎样判断?如何消除?原创 2014-08-11 10:05:01 · 13708 阅读 · 1 评论 -
异步FIFO的编程
对于异步FIFO,最主要的两个方面是地址控制和空、满标志位的产生。首先地址控制分别为读地址和写地址,每次读写时能读写地址应该加1.计数次数为ram深度的2倍,当读写地址相等时则空标志位有效,当读写地址最高位互补其余位相等时则满标志位有效。存储部分采用双口RAM实现。下面是具体的Verilog代码:module afifo(r_clk,w_clk,rst_n,data_in,data原创 2014-10-06 10:18:18 · 915 阅读 · 0 评论 -
SVA(system verilog assertions)基础
1什么是断言: 断言就是在模拟过程中根据我们事先安排好的逻辑是不是发生了,如果发生断言成功,否则断言失败。2断言的执行分为:预备(preponed)观察(observed)响应(reactive).3断言的分类:并发断言(基于时钟)和即时断言(基于语义)。4SVA(system Verilogassertions):块的建立:序列: Sequencename_of_se原创 2014-10-31 11:14:00 · 5351 阅读 · 0 评论 -
RTL 编码指南
1 使用函数,减少代码的书写量。2 使用有意义的变量名。3 不要使用立即数。4 使用工艺无关库。5 避免使用混合时钟沿。如果必须使用上升沿和下降沿进行触发,则必须保证综合和时序分析后该模块的时序周期在最坏的情况下也是正确的。且必须给出文档说明。6 如果需要使用门控时钟或内部时钟,或者Reset信号,应把内部时钟产生电路或者Reset电路分离出来。Reset信号的功能是直接清除所原创 2014-11-01 21:43:58 · 1668 阅读 · 0 评论 -
verilog 实现无符号整数除法运算
本篇文章主要介绍一下无符号除法的硬件实现思想:主要方法有移位减法和基于coordic算法的实现(coordic实现了浮点除法):1 基于减法的除法实现:首先比较被除数和除数的大小关系,如果被除数大于除数,那么就用被除数减去除数,然后商自加1,直至被除数小于除数,此时被除数中存储的结果即为余数。该方法由软件实现较为简单。考虑到如32位的除法,最多比较次数可达2^32。所以不便于硬件实现。如果寄原创 2014-11-21 16:52:57 · 22712 阅读 · 0 评论 -
2015年兆芯面试题
要求:一个握手的模块,输入信号分别为en,ack,all_done;输出信号是req,done;要求如下en高电平有效时可以输出req信号,然后等待ack信号,收到ack信号后会发出done信号,模块的数量不定,当所有模块done信号军发送完毕后会接收到all_done信号,只有接收到aLL_done信号才可以发送下一次req信号。难点在于第一次发送时只需要en有效即可,而下一次发送必原创 2014-10-22 09:47:10 · 3852 阅读 · 0 评论 -
同步复位和异步复位的比较
无论同步还是异步复位,在对触发器时序进行分析的时候,都要考虑复位端与时钟的相位关系。对于同步复位,复位信号可以理解为一个普通的数据信号,它只有在时钟的跳变沿才会其作用,一般只要复位信号持续时间大于一个时钟周期,就可以保证正确复位。对于异步复位,复位可以在任何时候发生,表面上看跟时钟没有关系,但真实情况是异步复位也需考虑时钟跳变沿,因为时钟沿变化和异步复位都可以引起Q端数据变化,如果转载 2014-08-06 12:42:03 · 4081 阅读 · 0 评论 -
硬件面试题
模拟电路 1、基尔霍夫定理的内容是什么?(仕兰微电子) 2、平板电容公式(C=εS/4πkd)。(未知) 3、最基本的如三极管曲线特性。(未知) 4、描述反馈电路的概念,列举他们的应用。(仕兰微电子) 5、负反馈种类(电压并联反馈,电流串联反馈,电压串联反馈和电流并联反馈);负反 馈的优点(降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非 线性失真,有效转载 2014-06-22 15:45:49 · 53338 阅读 · 0 评论 -
FPGA综合优化
1 速度与面积在综合层次速度和面积的优化将实现RTL将要利用的逻辑拓扑。对于FPGA来讲由于缺少后端知识,综合工具将主要执行门级优化。一般情况下更高的速度要求更高的并行性以及更大的面积,但是在某些特殊情况下并不是这样。因为FPGA的布局布线具有二阶效应。直到布局布线完成,工具才会知道器件的拥堵或者布线的困难,但是这时实际逻辑拓扑已经被提交,如果我们的优化选项设置为速度,那么当实现后器件过于拥挤原创 2014-07-30 13:33:53 · 3985 阅读 · 0 评论 -
FPGA与CPLD的概念及其区别
FPGA与CPLD的概念及其区别 一、FPGA与CPLD的基本概念 1.CPLD CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测转载 2014-07-17 16:55:43 · 706 阅读 · 0 评论 -
FPGA 设计中的流量,时滞,时序
FPGA 设计中的流量,时滞,时序流量:每个时钟周期能够传输的数据位。时滞:数据从输入到输出需要经历的时钟周期;时序:两个元件之间的最大延迟,他决定系统的最高时钟速度。1 采用流水线可以提高 流量;例如计算X^3,迭代结构流水线:此时 流量=8/1时滞=3时序=乘法器延迟2 如果要求低时滞则可以去掉寄存器3 降低时序,提高原创 2014-07-17 10:51:30 · 1537 阅读 · 0 评论 -
FPGA 功耗结构设计
1 相对于ASIC,FPGA是耗电器件,不适合超低功耗设计技术。2 在CMOS技术中电路的动态功耗与门和金属引线的充放电有关,电容消耗电流的一般方程为 I=V* C*fV 是电压,对于FPGA来说是一个定值。C 电容与直接被触发的门的数量以及连接这些门的布线长度有关,频率f直接与时钟频率相关。所以降低功耗都要以降低C, f入手。原创 2014-07-21 10:17:43 · 1181 阅读 · 0 评论 -
OD OC 门
在电路中常会遇到漏极开路(Open Drain)和集电极开路(Open Collector)两种情形。漏极开路电路概念中提到的“漏”是指 MOSFET的漏极。同理,集电极开路电路中的“集”就是指三极管的集电极。在数字电路中,分别简称OD门和OC门。典型的集电极开路电路如图所示。电路中右侧的三极管集电极什么都不接,所以叫做集电极开路,左侧的三极管用于反相作用,即左侧输入“0”时左侧三极管截止转载 2014-06-11 21:17:52 · 1640 阅读 · 0 评论 -
FPGA面试宝典
1、同步电路和异步电路的区别是什么?(仕兰微电子) 2、什么是同步逻辑和异步逻辑?(汉王笔试) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试) 线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用oc门来实现,由于不用 oc门可能使灌电流过大,而烧坏逻辑门. 同时在输出端转载 2014-06-11 21:05:24 · 3536 阅读 · 0 评论 -
FPGA 异步时钟处理方
1 如果FPGA设计中包含不同频率的时钟,就会涉及异步时钟的问题。我们需要一些方法来使得时钟同步,从而保证FPGA设计的可靠性。2 在建立和保持时间所构成的有效时间窗口内,数据输入到触发器进行转换。如果数据的到达时间不满足建立或者保持时间就会产生时序冲突。此时触发器的输出就有可能停留在非逻辑0 或1 的范围内(这个状态叫做准稳态),从而造成逻辑错误。3 如果异步时钟的相位不原创 2014-07-23 13:15:46 · 2689 阅读 · 0 评论 -
FPGA 浮点单元设计
浮点数在内存中的存放格式如下:地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM这里S 代表符号位,1是负,0是正E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。M 24位的尾数保存在23位中,只存储2原创 2014-07-24 15:10:39 · 1640 阅读 · 0 评论 -
阻塞和非阻塞
阻塞和非阻塞对于软件和硬件概念是一致的:对于软件:简单点说:阻塞就是干不完不准回来, 非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据原创 2014-07-28 11:14:47 · 901 阅读 · 0 评论 -
FPGA综合编码
1 判决树在FPGA中判断使用if else语句以及case实现。a) if else 是有特权的,类似于优先编码(当两个条件同时成立,仅判断条件靠前的成立),所以当有特权条件时应该采用if else结构,对于并行的if条件语句其特权顺序恰好与if else 相反。b) case 语句常常(不总是)用在所有条件互不相容的条件下进行的。但是默认条件下case依然是有特权的,编译器会选择附原创 2014-07-29 11:55:47 · 1360 阅读 · 0 评论 -
FPGA 复位电路设计
复位电路不论对FPGA还是对ASIC都是十分重要的,因为差的复位电路有可能引发不可重复的故障。1 完全异步复位将引发的问题 完全异步复位在确立和释放时都是异步的,它可能使系统进入准稳态。 2 完全同步复位3 异步确立和同步释放的电路将比完全同步或者异步的电路提供更可靠地复位。代码如下module reset(input clk, rst_n,原创 2014-07-29 10:32:04 · 1706 阅读 · 0 评论 -
Ping Pong 操作
1 什么是pingpong? pingpong是一种数据缓存的手段,通过pingpong操作可以提高数据传输的效率。2 什么时候需要pingpong?在两个模块间交换数据时,上一级处理的结果不能马上被下一级所处理完成,这样上一级必须等待下一级处理完成才可以送新的数据,这样就会对性能产生很大的损失。引入pingpong后我们可以不去等待下一级处理结束,而是将结果保存在pong路的原创 2015-05-31 16:55:47 · 5722 阅读 · 0 评论