《FPGA数字电路设计.ppt》由会员分享,可在线阅读,更多相关《FPGA数字电路设计.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、FPGA 数字电路系统设计数字电路系统设计 刘刘 怡怡7158FPGA的特点SOC与硬件编程概念数字电路系统设计设计案例分析 (以ALTERA的FPGA为例)目 录并行处理记住下面的数:并行设计串行设计VS速度快 速度慢资源消耗多 资源消耗少设计难度大 设计难度小开发周期长 开发周期短 CPU DSP GPU FPGA处理器CPU(Central Processing Unit)冯诺依曼结构或哈佛结构多线程,操作系统调度的顺序处理流水线设计(时间并行设计)多核(空间并行设计)处理器DSP(Digital Signal Processor)哈佛结构/改进型的哈佛结构程序/数据分别独立存储/访问专
2、门的流水线(时间并行设计)多核(空间并行设计)处理器GPU(Graphic Processing Unit)最初用于3D图像渲染CUDA技术使GPU架构有了显著改进由GPU到General Purpose GPU独立ALU(Arithmetic Logic Unit 算术逻辑单元)非常适合并行计算G80(Geforce8)有128个单独ALU处理器Field Programmable Gate Array(现场可编程逻辑门阵列)FPGA资源单元独立!大规模集成电路,电路系统已固定,只能进行程序开发大规模可编程逻辑器件,提供资源,电路系统需要设计开发FPGACPU、DSP、GPU特 点并行设计串
3、行设计VS速度快 速度慢资源消耗多 资源消耗少设计难度大 设计难度小开发周期长 开发周期短 Cyclone III 3C16!高自由度设计片上系统SOCSOCSOC:System On Chip。SOCSOC是当前嵌入式系统的极致是当前嵌入式系统的极致SOCSOC最大的特点最大的特点:实现了软硬件无缝结合,直接在处理实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。器片内嵌入操作系统的代码模块。?体积和功耗小,可靠性高。体积和功耗小,可靠性高。SOCSOC往往是专用的,所以大部分都不往往是专用的,所以大部分都不为用户所知。为用户所知。AlteraAltera公司专门有一个工具软件公
4、司专门有一个工具软件-SOPC-SOPC BuilderBuilder,用于在其,用于在其FPGAFPGA产品上实现产品上实现SOCSOC。其处理器名为:其处理器名为:NIOSNIOS/NIOS II/NIOS II AlteraAltera提供提供NIOSNIOS处理器的软核版本处理器的软核版本SOC&SOPC系统的定义 为实现规定功能以达到某一目标而构成的相互关联的一个集合体或装置(部件)Quartus II 界面SOPC Builder 界面FPGA的SOC设计用写程序代替接线进行硬件设计用写程序代替接线进行硬件设计硬件编程本质是在写电路硬件编程本质是在写电路FPGAFPGA是可编程数字
5、器件是可编程数字器件FPGAFPGA工程师是在进行数字电路工程师是在进行数字电路系统设计系统设计 硬件编程是什么?可编程模拟器件可编程模拟器件(Programmable Analog DeviceProgrammable Analog Device)是近年来崭露头角的一类新型集成电路。它既是近年来崭露头角的一类新型集成电路。它既属于模拟集成电路,又同可编程逻辑器件一样,属于模拟集成电路,又同可编程逻辑器件一样,可由用户通过现场编程和配置来改变其内部连可由用户通过现场编程和配置来改变其内部连接和元件参数从而获得所需要的电路功能。接和元件参数从而获得所需要的电路功能。通用型可编程模拟器件主要包括现
6、场可编程模通用型可编程模拟器件主要包括现场可编程模拟阵列(拟阵列(FPAAFPAA)和在系统可编程模拟电路)和在系统可编程模拟电路(ispPACispPAC)两大类。)两大类。多了解一点FPGA硬件设计流程数字逻辑电路系统设计设计流程系统功能设计两个工作点1.系统需求分析2.功能模块分解控制模块设计要完成的工作:要完成的工作:并行控制并行控制1 1、完成各种信号的控制,即对数据流进行控制完成各种信号的控制,即对数据流进行控制(开关信号可视为开关信号可视为1bit1bit数据流数据流)。2 2、完成各种外设接口控制,即按满足外设协议完成各种外设接口控制,即按满足外设协议的时序进行数据流的控制。的
7、时序进行数据流的控制。*实时性要求不高的控制可用实时性不强的主处实时性要求不高的控制可用实时性不强的主处理器完成,如单片机等。对实时性要求特别高的理器完成,如单片机等。对实时性要求特别高的控制用控制用FPGAFPGA完成,如算法设计中数据读写。完成,如算法设计中数据读写。控制模块小结控制模块小结要掌握的知识:要掌握的知识:1 1、系统概念:系统是如何运作的?要完成如种功能、系统概念:系统是如何运作的?要完成如种功能?要控制什么数据流?要控制什么数据流?2 2、外设协议:各种外设的、外设协议:各种外设的DataSheetDataSheet,外设特性如,外设特性如何?接口时序怎样?何?接口时序怎样
8、?3 3、明白如何控制数据流。、明白如何控制数据流。算法模块设计完成数据流的变形,即数据流通过算子逻辑流出得到希望得到的结果算法模块设计要掌握的知识:要实现的算法功能:算法由哪些计算步骤组成?算法的特性:哪些是同时计算(并行)哪些是顺序计算(串行)?定点或浮点的差别?将算法进行分割:将并行计算与顺序计算进行分割,利用FPGA并行特性进行逻辑设计,包括逻辑设计、代码设计(开发环境或任意编辑器)、功能仿真(modelsim)及算法验证(matlab)算法算算法模块框架图范例算法模块时序设计VS与HS为数字14位输入时序。场20ms,行320Px256Line,共占用时间不足10ms;Hs_timi
9、ng为自己生成用于做算法的时序。共555行,每行正程320P,消隐160P。2256行:用VS、HS将数字14位图像缓存至RAM中;用hs_timing从RAM中读出,进行各级通道的高斯下采样;将各级通道的下采样结果缓存至各级通道buff;260516行:用hs_timing根据各级通道buff进行双线性放大;用hs_timing将各级通道放大后数据加权求和得到背景;用hs_timing将RAM中的原图与背景相减,得到前景;用hs_timing对前景进行锐化处理;用hs_timing将锐化后图像与原图相加得到增强图像;用hs_timing将增强图像进行高斯滤波,输至linkport联合仿真工具
10、算法模块仿真验证仿真验证方法:先将FPGA的.V程序改为M程序(程序2),比较经典算法的M程序(程序1)与之的差别。这两种程序都为逐行显示算法。一致说明在逐行显示情况下程序2与程序1等价。在程序2上增加修正参数,使之成为隔行显示程序(程序4),比较程序4与程序1的差别,找出修正参数引起的锯齿情况与图像形变情况。在Modelsim中仿真FPGA代码(程序5),比较与程序4的仿真结果之差。这两种都为隔行显示算法。一致说明在隔行显示情况下FPGA代码与程序4等价。得出结论,FPGA算法移植是否等价于隔行消旋算法。算法模块仿真验证程序1的旋转45度仿真结果程序4旋转45度的仿真结果算法模块仿真验证程序
11、5的旋转45度逐行仿真结果程序5的旋转45度隔行仿真结果结论:十字线图片进行比较,modelsim仿真结果与matlab仿真结果一致,FPGA算法设计验证结果:正确。算法模块仿真验证结论:十字线图片进行比较,modelsim仿真结果与matlab仿真结果一致,FPGA算法设计验证结果:正确。程序1 matlab处理结果程序5 modelsim处理结果算法模块仿真验证程序1运行结果像素灰度分析,左上角点为坐标G(360,144)的灰度 程序5运行结果像素灰度分析,左上角点为坐标G(360,144)的灰度 算法模块仿真验证程序1与程序5的灰度差值误差直方图结论:不考虑边界处理的情况下,FPGA定点
12、算法设计实现结果与浮点计算值相比较不到2%的值灰度值误差在2个灰度级以外(2/256=0.78%)协同设计1.LogicLOCK协同设计1.LogicLOCK协同设计1.LogicLOCK协同设计2.DesignPatition协同设计2.DesignPartition协同设计2.DesignPatitionNetlist Type有四个可选值Source File,Post-Synthesis,Post-fit,EmptySource File:如果源代码未修改,则仅不重新Analysis,还需进行Synthesis和Fitter;Post-Synthesis:如果源代码未修改,不需重新An
13、alysis、Synthesis,结果只进行Fitter;Post-Fit:如果源代码未修改,保留前次Analysis、Synthesis、Fitter结果;Empty:标志为空分区,编译时将忽略此分区。时序分析目的为了增加可编程逻辑器件电路工作的稳定性,一定要加强可编程逻辑器件设计的规范要求,要尽量采用同步电路设计。对于设计中的异步电路,要给出不能转换为同步设计的原因,并对该部分异步电路的工作可靠性(如时钟等信号上是否有毛刺,建立-保持时间是否满足要求等)作出分析判断,提供分析报告。电路设计的难点在时序设计,而时序设计的实质就是满足每一个触发器的建立/保持时间的要求。时序分析基础时序分析基础
14、对REG2而言:触发器的建立时间要求为:T_setup,保持时间要求为:T_hold,路径延时为:T1,路径延时为:T2,路径延时为:T3,时钟周期为:T_cycle,Ts(T_cycle T)T1,Th T1T,令 T T3T2,则条件1.如果T_setup Ts,即 T_setup (T_cycle T)T1,这说明信号比时钟有效沿超过T_setup 时间到达REG2的D端,满足建立时间要求。反之则不满足;条件2.如果T_hold Th,即T_hold 0 时,T_hold受影响;当T 0 时,T_setup 受影响。同步设计优点1.同步电路比较容易使用寄存器的异步复位/置位端,以使整个电
15、路有一个确定的初始状态;2.在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定;3.同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;4.同步电路可以很好地利用先进的设计工具,如静态时序分析工具等,为设计者提供最大便利条件,便于电路错误分析,加快设计进度。同步设计原则1.尽可能在整个设计中只使用一个主时钟,同时只使用同一个时钟沿,主时钟走全局时钟网络。2.在FPGA设计中,推荐所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑。3.当全部电路不能用同步电路思想设计时,即需要多个时钟来实现,则可以将全部电路分成若干局部同步电路(尽量以同一个时钟为一个模块),局部同步电路之间接口当作异步接口考虑。4.当必须采用多个时钟设计时,每个时钟信号的时钟偏差(T)要严格控制。5.电路的实际最高工作频率不应大于理论最高工作频率,留有设计余量,保证芯片可靠工作。时序约束TimeQuest时序分析工具时序约束TimeQuest时序分析工具时序约束TimeQuest时序分析工具时序约束TimeQuest时序分析工具实物调试分析SIGNALTAP II LOGIC Analyzer希望能和大家希望能和大家一起交流一起进步!一起交流一起进步!谢谢 谢谢!