都是一些细节性问题,放在一起记忆,一问一答的形式,有任何问题欢迎文章上方微博讨论,多思多想。
1、What makes the difference between Run time and CPU time?
Run time is the time it takes for the task to run from start to finish, equal to wall-clock time.
CPU time is the time that the CPU is actually working on the task. There are whole minutes that there's memory swapping taking place, in which the CPU isn't used. Or in the case of the GPU, where the CPU is only used to translate and transfer data, not to actually do any calculations as these happen on the GPU.
2、时序设计实质
满足每一个触发器的建立时间和保持时间的要求
3、锁存器、触发器、缓冲器、寄存器区别
数据有效迟后于时钟信号的到来,问题在于在时钟信号有效期内一直处于触发状态,就较容易产生毛刺,锁存器在ASIC设计中应该说比ff要简单,但
是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需要用一个逻辑门和ff来组成锁存器, 这样就浪费了资源。
面积小。锁存器比FF快,所以用在地址锁存是很合适的,不过一定要保证所有的latch信号源
的质量,锁存器在CPU设计中很常见,正是由于它的应用使得CPU的速度比外部IO部件逻辑快许
多。latch完成同一个功能所需要的门较触发器要少,所以在asic中用的较多。
时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在CP上升沿时
刻打入到寄存器。
其实寄存器就是一种常用的时序逻辑电路,但这种
时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或
触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 工程中的寄存器一般
按计算机中字节的位数设计,所以一般有8位寄存器、16位寄存器等。
对寄存器中的触发器只要求它们具有置1、置0的功能即可,因而无论是用同步RS结构触发器,还是
用主从结构或边沿触发结构的触发器,都可以组成寄存器。一般由D触发器组成,有公共输入/输出
使能控制端和时钟,一般把使能控制端作为寄存器电路的选择信号,把时钟控制端作为数据输入控
制信号。
缓冲寄存器:又称缓冲器缓冲器(buffer):多用在总线上,提高驱动能力、隔离前后级,缓冲器多半
有三态输出功能。当负载不具有非选通输出为高阻特性时,将起到隔离作用;当总线的驱动能力不
够驱动负载时,将起到驱动作用。由于缓冲器接在数据总线上,故必须具有三态输出功能。它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取
走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。
4、时序约束的概念和基本策略
包括周期约束,偏移约束、静态时序路径约束。通过附加时序约束可以使综合布线工具调整映射和布局布线,使设计达到时序要求。
一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时。首先是定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA输入输出附加偏移约束,对全组合逻辑的PAD to PAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快速慢速例外路径和多周期路径,以及其他特殊路径。
5、附加约束的作用
- 提高设计的工作频率(减少了逻辑和布线延时)
- 获得正确的时序分析报告(静态时序分析工具以约束判断时序是否满足设计要求的标准)
- 指定FPGA的电气标准和引脚位置
6、FPGA芯片内的存储器资源
一种是block RAM,有一定数量固定大小的存储块构成,使用block RAM 不占用额外的逻辑资源,并且速度快。消耗的也一定是块大小的整数倍。另一种是由LUT配制成的内部存储器。
7、What is the difference between DCM and PLL in e.g. Xilinx FPGA?
- DCM是用数字延时模块调理时钟,是纯数字的东西,优势在于可以做到很高精度,可以排除温度、电压变化带来的影响,使得skew 可以作得很小,可以调整时钟占空比。把相位差变成延迟信号,然后通过延迟线调整输出时钟。DLL即Delay Lock Loop, 主要是用于产生一个精准的时间延迟, 且这个delay不随外界条件如温度,电压的变化而改变。Xilinx的IP核生成器叫Core Generator
- PLL 优势在于抑制时钟抖动clock jitter 以及输入时钟的frequency漂移。PLL,把相位差变成压差,然后控制VCO(voltage Controler oscillation),调整输出时钟,利用的是模拟电路。
8、时钟抖动与时钟偏斜区别
时钟抖动是指时钟周期之间存在差值,产生于时钟发生器内部,和晶振或PLL内部电路有关,与布局布线关系不大,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。
时钟偏斜是同样的的时钟产生的多个自时钟 信号的延时差异,包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB走线误差造成的接收端和驱动端时钟信号之间的偏移。
Clock skew 和Clock jitter 是影响时钟信号稳定性的主要因素。
skew通常是时钟相位上的不确定,而jitter是指时钟频率上的不确定(uncertainty)。造成skew和jitter的原因很多。由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了skew。而由于晶振本身稳定性,电源以及温度变化等原因造成了时钟频率的变化,就是jitter。
9、SERDES的高速串行接口
SERDES是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种时分多路复用(TDM)、点对点的通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。
传统并行总线技术——PCI却跟不上处理器和存储器的进步而成为提高数据传输速率的瓶颈。新一代PCI标准PCI Express正是为解决计算机IO瓶颈而提出的(见表1)。PCI Express是一种基于SERDES的串行双向通信技术,数据传输速率为2.5G/通道,可多达32通道,支持芯片与芯片和背板与背板之间的通信。
基于SERDES的高速串行接口采用以下措施突破了传统并行I/O接口的数据传输瓶颈:一是采用差分信号传输代替单端信号传输,从而增强了抗噪声、抗干扰能力;二是采用时钟和数据恢复技术代替同时传输数据和时钟,从而解决了限制数据传输速率的信号时钟偏移问题。