《FPGA设计方法汇总课件.ppt》由会员分享,可在线阅读,更多相关《FPGA设计方法汇总课件.ppt(66页珍藏版)》请在三一办公上搜索。
1、FPGA设计方法,刘志凯2008年8月,1,FPGA设计方法刘志凯1,培训目标,了解FPGA的基本概念和特点Cyclone器件的结构了解FPGA的设计流程理解FPGA的五大设计思想了解如何设计最佳的状态机了解FPGA设计的安全性,2,培训目标了解FPGA的基本概念和特点2,一、FPGA概念及特点,FPGA 是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列。特点(1)无需投片生产,即可得到芯片(2)可做ASIC的中试样片 (3)有丰富的触发器和IO引脚 (4)设计周期最短、开发费用最低、风险最小 (5)采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平
2、兼容,3,一、FPGA概念及特点FPGA3,二、Cyclone芯片结构,(1)可编程输入/输出单元(2)逻辑阵列由LABs组成 ,10个LE组成一个LAB (3)锁相环PLL 全局时钟网络(4)M4K RAM (5)其他硬件资源:如硬件乘法器、专用接口等,NEXT,4,二、Cyclone芯片结构(1)可编程输入/输出单元NEXT,(1)可编程输入/输出单元,1、适应不同的电气标准2、可调整驱动电流大小3、可以改变上、下拉电阻 4、在高速接口设计时的输入输出时序配置,BACK,5,(1)可编程输入/输出单元1、适应不同的电气标准BACK5,(2)逻辑单元LE,BACK,(1)四输入查找表(2)触
3、发器,6,(2)逻辑单元LEBACK(1)四输入查找表6,(3)全局时钟网络,1、专用时钟管脚 驱动2、给所有的内部组件提供时钟源 ,保证足够驱动能力和最小时钟偏移,BACK,7,(3)全局时钟网络 1、专用时钟管脚 驱动BACK7,(4)M4K RAM,BACK,支持以下特性: 4,608 RAM bits 250 MHz 执行频率 真双口存储器 普通双口存储器 单口存储器 字节使能 奇偶校验位 移位寄存器 FIFO 缓冲 ROM 混合时钟模式,8,(4)M4K RAM BACK 支持以下特性:8,三、FPGA设计流程,NEXT,9,三、FPGA设计流程(1)设计规范(2)设计输入(3)功能
4、仿,(1)设计规范,系统中所处的位置及功能内部功能框图资源估计时序估计接口描述A、硬件:连接关系,功耗,I/O引脚的描述(驱动能力、电平等)B、软件:操作方法,时序配合测试项目,BACK,10,(1)设计规范系统中所处的位置及功能BACK10,Block&Symbol Editor,BACK,11,Block&Symbol EditorBACK11,Text Editor(VHDL,Verilog),BACK,12,Text Editor(VHDL,Verilog)BACK,RTL Viewer,BACK,13,RTL ViewerBACK13,State Machine,BACK,14,St
5、ate MachineBACK14,(3)功能仿真,RTL代码,逻辑仿真器,调用模块的行为仿真模型,测试数据,测试程序(test bench),BACK,15,(3)功能仿真逻辑仿真器BACK15,(4)逻辑综合,RTL代码,逻辑综合器,调用模块的黑盒子接口,设置综合目标和约束条件,EDIF网表(netlist),HDL网表(netlist),BACK,16,(4)逻辑综合逻辑综合器设置综合目标和约束条件BACK16,Technology Map Viewer,BACK,17,Technology Map ViewerBACK17,(5)布局布线,逻辑综合器,EDIF网表(netlist),F
6、PGA厂家工具,调用模块的综合模型,设置布局布线约束条件,HDL网表(netlist),SDF文件(标准延时格式),下载/编程文件,BACK,18,(5)布局布线逻辑综合器FPGA厂家工具设置布局布线约束条件,Assignment Editor,BACK,19,Assignment EditorBACK19,Design Space Explorer,BACK,20,Design Space ExplorerBACK20,Chip Editor,BACK,21,Chip EditorBACK21,Timimg Closure Floorplan,BACK,22,Timimg Closure F
7、loorplanBACK2,(6)时序分析,FPGA厂家工具,HDL网表(netlist),SDF文件(标准延时格式),逻辑仿真器,测试数据,FPGA基本单元仿真模型,测试程序(test bench),BACK,23,(6)时序分析FPGA厂家工具逻辑仿真器BACK23,Timing Analyzer Tool,BACK,24,Timing Analyzer ToolBACK24,Waveform Editor&Modelsim,BACK,25,Waveform Editor&ModelsimBACK25,四、五大设计思想,(1)Top-down结构化(2)乒乓操作(3)串并转换(4)流水线操
8、作(5)数据接口同步化,NEXT,26,四、五大设计思想(1)Top-down结构化NEXT26,(1)Top-down结构化,BACK,27,(1)Top-down结构化designsrccoresi,(2)乒乓操作,BACK,28,(2)乒乓操作BACK28,(3)串并转换,通过 DPRAM 实现数据流的串并转换,而且由于使用了 DPRAM ,数据的缓冲区可以开得很大,对于数量比较小的设计可以采用寄存器完成串并转换。是面积与速度互换原则的体现!,BACK,29,(3)串并转换 通过 DPRAM 实现,(4)流水线操作,BACK,30,(4)流水线操作BACK30,(5)数据接口同步化,1.
9、同步电路比较容易使用寄存器的异步复位/置位端,以使整个电路有一个确定的初始状态;2.在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定;3.同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;,31,(5)数据接口同步化1.同步电路比较容易使用寄存器的异步复,不同步的风险,32,不同步的风险32,双触发器同步器,33,双触发器同步器33,快时钟域信号到慢时钟域信号传输失败,34,快时钟域信号到慢时钟域信号传输失败 34,快时钟域信号到慢时钟域信号同步,上图,下图,35,快时钟域信号到慢时钟域信号同步上图下图35,多控
10、制信号下数据交换失败,36,多控制信号下数据交换失败36,多控制信号同步方法,37,多控制信号同步方法37,多数据交换方法,(1)握手机制,(2)FIFO方式,速度匹配或数据宽度匹配。,BACK,38,多数据交换方法(1)握手机制(2)FIFO方式速度匹配或数据,五、状态机,(1)设计状态机步骤(2)采用状态转移图或ASM设计(3)状态编码(4)状态机的类型(5)状态机的风格(6)其他注意事项,NEXT,39,五、状态机(1)设计状态机步骤NEXT39,(1)设计状态机步骤,1、深入的理解问题(Understand the problem)。2、获得一个对状态机的理论性的描述(Obtain a
11、n abstract representation of the FSM)。如状态转移图或时序图。3、对状态机进行优化(Perform state minimization. )。4、进行状态编码的赋值(Perform state assignment)。编码方式好坏决定了执行的速度。5、选择何种类型来实现状态机(Choose fit types for implementing the FSM)。6、实现有限状态机(Implement the finite state machine)。,BACK,40,(1)设计状态机步骤1、深入的理解问题(Understan,(2)采用状态转移图或ASM
12、设计,4位二进制同步计数器,状态转移图,ASM图,BACK,41,(2)采用状态转移图或ASM设计4位二进制同步计数器状态转移,(3)状态机编码,1顺序编码。2格雷码编码。3独热编码(one-hot)。4其他(江逊计数器等)。,在小设计中可以考虑使用Gray码或one-hot。大设计中,由于现在技术进步几乎不用考虑逻辑资源不够的问题,可以考虑使用one-hot编码以提高速度。至于顺序二进制编码,一般不予考虑。,BACK,42,(3)状态机编码 1顺序编码。2格雷码编码,(4)状态机类型,状态,组合逻辑,CLK,Input,Output,Current State,Next State,组合逻辑
13、,输出,外部输入,1、moore状态机 (与当前输入有关),43,(4)状态机类型状态组合逻辑CLKInputOutputCu,2、mealy状态机 (与当前输入无关),组合逻辑,状态,组合逻辑,CLK,Input,Current State,Output,Next State,外部输入,外部输出,BACK,44,2、mealy状态机 (与当前输入无关)组合逻辑状态组合,(5)状态机风格,一段式 一个always模块完成输出及状态转移; 必须要综合考虑现态在何种状态转移条件下会进入哪些次态,然后在每个现态的case 分支下分别描述每个次态的输出。 两段式 一个always 模块采用同步时序描述
14、状态转移;另一个模块采用组合逻辑判断状态转移条件。 三段式 在两段式基础上使用同步时序逻辑寄存FSM 的输出 ; 使FSM 做到了同步寄存器输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更利于时序路径分组 。,BACK,45,(5)状态机风格一段式BACK45,(6)其他注意事项,对于所有的输出信号在每一个时钟周期的取值,都必须作出非常明确的定义 case与default,if与else代码优化为4输入组合逻辑,BACK,46,(6)其他注意事项对于所有的输出信号在每一个时钟周期的取值,,FPGA设计的安全性,辐射效应主要有 :(1)总剂量效应 (2)单粒子翻转 (3)单离子闩锁(4)单-
15、粒子功能中断 (5)单粒子烧毁 (6)单粒子瞬态脉冲 (7)位移损伤,47,FPGA设计的安全性辐射效应主要有 :47,可靠性设计,整体屏蔽减少辐射 冗余设计,48,可靠性设计整体屏蔽减少辐射 48,可靠性设计,防止关键电路引起的抖动 A、内部复位电路尽可能使用同步复位;B、控制线尽可能配合使能信号线使用;C、组合逻辑数据在锁存时尽可能配合使能信号逻辑和算术运算的设计 Berber预测法、余数判断法检测法、奇偶校验等 自检模块 系统监控与重配置,49,可靠性设计防止关键电路引起的抖动 49,总结,FPGA是一种可编程硬件,深入理解器件的结构有助于设计严格遵守设计流程,充分利用工具在整个设计中贯
16、穿五大设计思想状态机的编码、类型、风格和设计思路决定了能否设计出高效的状态机FPGA在设计中需要考虑安全性,50,总结FPGA是一种可编程硬件,深入理解器件的结构有助于设计5,通讯表决电路设计,刘志凯2008年8月,51,通讯表决电路设计刘志凯51,一、实现的功能,1、基本功能:对 CPU1、CPU2向 BTM的通讯路径进行表决,CPU1和CPU2通过并行总线将需要表决的数据写入VOTER1,VOTER1在内部表决通过后以串行总线方式发送给BTM;对 CPU1、CPU2向 DMI的通讯路径进行表决,CPU1和CPU2通过并行总线将需要表决的数据写入VOTER1,VOTER1在内部表决通过后以串
17、行总线方式发送给DMI;生成同步脉冲信号和转速脉冲计数更新信号,在初始时刻延迟10s,随后每隔10ms向两CPU同时发送0.01ms的低电平同步脉冲;将ETHERNET和UART的中断信号IRQ及应答信号IACK通过数据线上报给CPU。2、安全功能:表决电路监测两个CPU 向BTM发送数据内容的一致性,当接收的数据内容不一致时,表决电路就发送给CPU故障诊断信息;表决电路监视两个CPU写入数据的时间差是否超时,当在一个周期内,表决电路在10ms之内没有接收到来自两个CPU传来的完整数据包时会报超时故障;为了检查数据的故障,内部具有CRC32校验器(BTM表决),CRC-CCITT校验器(DMI
18、表决);内部数据比较表决电路带有故障自诊断功能,在每次进行比较表决之前,先检查该电路是否存在故障(通过一组不同数据检测是否表决出不一致),当出现故障,故障诊断信息输出给CPU;监视通信是否超时,若在400ms内没有下发数据时,即在四个周期内上述故障连续发生时,将判断通信超时错误,切断通讯。,52,一、实现的功能1、基本功能:52,二、系统框图,53,二、系统框图53,三、内部模块框图,(1)同步脉冲产生模块Sync module;(2)译码模块DECODER module;(3)时钟模块CLOCK module;(4)BTM表决电路模块BTM voter module;(5)DMI表决电路模块
19、DMI voter module;(6)UART控制模块UART control module。,54,三、内部模块框图(1)同步脉冲产生模块Sync module,同步脉冲产生模块Sync module,BACK,55,同步脉冲产生模块Sync moduleBACK55,译码模块DECODER module,BACK,56,译码模块DECODER moduleBACK56,时钟模块CLOCK module,BACK,57,时钟模块CLOCK moduleBACK57,UART控制模块UART control module,BACK,58,UART控制模块UART control module
20、BAC,BTM表决电路模块BTM voter module,btm,_,cpuinterface,CPU,1,rst,_,n,控制总线,地址总线,btm,_,timer,btm,_,crc,btm,_,compare,btm,_,fault,btm,_,cpuinterface,CPU,2,rst,_,n,控制总线,地址总线,btm,_,communication,btm,_,dmi,_,clock,CPU,1,btm,_,dmi,_,ctr,CPU,2,btm,_,dmi,_,ctr,btm,_,crc,数据总线,数据总线,dout,btm,_,comtimer,59,BTM表决电路模块BT
21、M voter modulebtm_c,CPU接口模块btm_cpuinterface,BACK,60,CPU接口模块btm_cpuinterfaceBACK60,10ms定时监视模块btm_timer,BACK,61,10ms定时监视模块btm_timerBACK61,CRC校验模块btm_crc,BACK,62,CRC校验模块btm_crcBACK62,比较模块btm_compare,BACK,63,比较模块btm_compareBACK63,串行通讯模块btm_communication,BACK,64,串行通讯模块btm_communicationBACK64,通讯超时监视模块btm_comtimer,BACK,65,通讯超时监视模块btm_comtimerBACK65,故障报告模块btm_fault,BACK,66,故障报告模块btm_faultBACK66,