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