版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 E D A技术与应用第第9章章 VerilogVerilog系统设计系统设计优化优化 E D A技术与应用9.1 资源优化资源优化在在ASIC设计中,面积设计中,面积(Area)指硬件设计资源。对于指硬件设计资源。对于FPGA/ CPLD,其芯片面积(逻辑资源)是固定的,但有资源利用率,其芯片面积(逻辑资源)是固定的,但有资源利用率的问题,这里的面积优化指的是的问题,这里的面积优化指的是资源利用优化资源利用优化: 通过优化,可以使用规模更小的可编程器件,从而降低系通过优化,可以使用规模更小的可编程器件,从而降低系统成本,提高性价比。统成本,提高性价比。 对于某些对于某些PLD器件,当耗用资源
2、过多时会严重影响优化的器件,当耗用资源过多时会严重影响优化的实现。实现。 为以后的技术升级,留下更多的可编程资源,方便添加产为以后的技术升级,留下更多的可编程资源,方便添加产品的功能。品的功能。 对于多数可编程逻辑器件,资源耗用太多会使器件功耗显对于多数可编程逻辑器件,资源耗用太多会使器件功耗显著上升。著上升。 E D A技术与应用9.1.1 资源共享资源共享问题问题:同样结构的模块需要反复被调用,但该结构模块需占:同样结构的模块需要反复被调用,但该结构模块需占用较多资源,这类模块往往是基于组合电路的算术模块。用较多资源,这类模块往往是基于组合电路的算术模块。 例例9-1:占用较多资源占用较多
3、资源 module multmux (A0, A1, B, S, R); input 3: 0 A0, A1, B; input S; output 7: 0 R; reg 7: 0 R; always (A0 or A1 or B or S) beginif (S=1b0) R=A0*B;else R=A1*B; endendmoduleS=0时时S=1时时共用共用B同一时刻只使用了一个乘法器同一时刻只使用了一个乘法器 E D A技术与应用9.1.1 资源共享资源共享问题问题:同样结构的模块需要反复被调用,但该结构模块需占:同样结构的模块需要反复被调用,但该结构模块需占用较多资源,这类模块往
4、往是基于组合电路的算术模块。用较多资源,这类模块往往是基于组合电路的算术模块。 例例9-2:共享乘法器共享乘法器 module multmux (A0, A1, B, S, R); input 3: 0 A0, A1, B; input S; output 7: 0 R; wire 7: 0 R; reg 3: 0 TEMP; always (A0 or A1 or B or S) beginif (S=1b0) TEMP=A0;else TEMP=A1; end assign R=TEMP*B;endmodule E D A技术与应用9.1.1 资源共享资源共享问题问题:同样结构的模块需要反
5、复被调用,但该结构模块需占:同样结构的模块需要反复被调用,但该结构模块需占用较多资源,这类模块往往是基于组合电路的算术模块。用较多资源,这类模块往往是基于组合电路的算术模块。解决解决:针对数据通路中耗费逻辑资源较多的模块,通过选择、:针对数据通路中耗费逻辑资源较多的模块,通过选择、复用的方式共享使用该模块,以减少该模块的使用个数,达复用的方式共享使用该模块,以减少该模块的使用个数,达到减少资源使用、优化面积的目的。到减少资源使用、优化面积的目的。注意注意:对输入:对输入与门与门之类之类的资源共享,通常是的资源共享,通常是无无意义意义的,有时甚至会增的,有时甚至会增加资源的使用(多路选加资源的使
6、用(多路选择器的面积大于与门)。择器的面积大于与门)。对于多位乘法器、快速进位加法器等算术模块,使用资源共对于多位乘法器、快速进位加法器等算术模块,使用资源共享技术能大大优化资源。享技术能大大优化资源。 E D A技术与应用9.1.2 逻辑优化逻辑优化 例例9-3:两输入乘法器,一个乘数为常数(耗用两输入乘法器,一个乘数为常数(耗用167个逻辑宏单元)个逻辑宏单元) module mult1 (clk, ma, mc); input clk; input 11: 0 ma; output 23: 0 mc; reg 23: 0 mc; reg11: 0 ta, tb; always (pose
7、dge clk) beginta=ma; mc=ta*tb;tb=12b100110111001; endendmodule E D A技术与应用9.1.2 逻辑优化逻辑优化 例例9-4:两输入两输入常数常数乘法器(耗用乘法器(耗用93个逻辑宏单元)个逻辑宏单元) module mult2 (clk, ma, mc); input clk; input 11: 0 ma; output 23: 0 mc; reg 23: 0 mc; reg11: 0 ta; parameter tb=12b100110111001; always (posedge clk) beginta=ma; mc=ta
8、*tb; endendmodule E D A技术与应用9.1.3 串行化串行化 例例9-5:耗用耗用4个个8位乘法器和一些加法器(位乘法器和一些加法器(460个逻个逻辑宏单元)辑宏单元)module pmultadd (clk, a0, a1, a2, a3, b0, b1, b2, b3, yout); input clk; input 7: 0 a0, a1, a2, a3, b0, b1, b2, b3; output 15: 0 yout; reg 15: 0 yout; always (posedge clk) beginyout=(a0*b0)+(a1*b1)+(a2*b2)+(
9、a3*b3); endendmodule串行化串行化是指把原来耗用资源巨大、单时钟周期内完成的并行是指把原来耗用资源巨大、单时钟周期内完成的并行执行的逻辑块分割开来,提取出相同的逻辑模块(一般为组执行的逻辑块分割开来,提取出相同的逻辑模块(一般为组合逻辑块),在时间上复用该逻辑模块,用多个时钟周期完合逻辑块),在时间上复用该逻辑模块,用多个时钟周期完成相同的功能,其代价是降低了工作速度。成相同的功能,其代价是降低了工作速度。 E D A技术与应用 例例9-6:耗用耗用1个个8位乘法器,位乘法器,1个个16位两输入加法器位两输入加法器和一些时序电路(和一些时序电路(186个逻辑宏单元)个逻辑宏单
10、元)module smultadd (clk, start, a0, a1, a2, a3, b0, b1, b2, b3, yout); input clk, start; input 7: 0 a0, a1, a2, a3, b0, b1, b2, b3; output 15: 0 yout; reg 15: 0 yout, ytmp; reg 2: 0 cnt; wire 7: 0 tmpa, tmpb; wire 15: 0 tmp; assign tmpa=(cnt=0)? a0: (cnt=1)? a1: (cnt =2)? a2: (cnt=3)? a3: a0; assign
11、tmpb=(cnt=0)? b0: (cnt=1)? b1: (cnt =2)? b2: (cnt=3)? b3: b0; assign tmp=tmpa*tmpb; always (posedge clk) beginif (start=1b1) begin cnt=3b000; ytmp=161b0; endelse if (cnt4) begin cnt=cnt+1; ytmp=ytmp+tmp; endelse if (cnt=4) begin yout=ytmp; end endendmodule E D A技术与应用9.2 速度优化速度优化对于大多数设计来说,速度优化比资源优化更重
12、要,需优先对于大多数设计来说,速度优化比资源优化更重要,需优先考虑。速度优化涉及因素较多,如考虑。速度优化涉及因素较多,如FPGA的结构特性,的结构特性,HDL综合器的性能,系统电路特性、综合器的性能,系统电路特性、PCB制版情况等。制版情况等。9.2.1 流水线设计流水线设计 流水线(流水线(Pipelining)技术)技术在速度优化中是最常用的技术之在速度优化中是最常用的技术之一。能显著提高设计电路的运行速度上限。一。能显著提高设计电路的运行速度上限。 事实上,在设计中加入流水线,并不会减少原设计中的总事实上,在设计中加入流水线,并不会减少原设计中的总延时,有时甚至还会略微增加插入的寄存器
13、的延时和信号延时,有时甚至还会略微增加插入的寄存器的延时和信号同步的时间差,但却可以提高总体的运行速度。同步的时间差,但却可以提高总体的运行速度。 E D A技术与应用未使用未使用流水线流水线使用流使用流水线结水线结构构从输入到输出需经过时间至少为从输入到输出需经过时间至少为Ta,即时钟,即时钟CLK周期不能小于周期不能小于Ta,最高工作频率,最高工作频率Fmax=1/Ta使用使用二级流水线,把延时较大的组合逻辑块分割二级流水线,把延时较大的组合逻辑块分割成两块延时较小的组合逻辑块,且成两块延时较小的组合逻辑块,且T1T2,Ta=T1+T2。时钟。时钟CLK周期可以接近周期可以接近T1(或(或
14、T2),),即最高工作频率即最高工作频率FmaxFmax1Fmax21/T1使用流水线使用流水线的速度提高的速度提高了近一倍了近一倍 E D A技术与应用使用流使用流水线结水线结构构流水线工流水线工作节拍作节拍一个信号从输入到输出需经两个寄存器(不考虑输入寄存一个信号从输入到输出需经两个寄存器(不考虑输入寄存器),共需时间器),共需时间T1+T2+Treg(Treg为寄存器延时),时间约为寄存器延时),时间约等于等于Ta(总延时不变)。但是每隔(总延时不变)。但是每隔T1时间,输出寄存器就输时间,输出寄存器就输出一个结果,同时输入寄存器输入一个新的数据。这时两个出一个结果,同时输入寄存器输入一
15、个新的数据。这时两个逻辑块处理的不是同一个信号,资源被优化利用了(速度提逻辑块处理的不是同一个信号,资源被优化利用了(速度提高了),而寄存器对信号数据做了暂存。高了),而寄存器对信号数据做了暂存。 E D A技术与应用 例例9-7:8位位普通加法器,普通加法器,EP3C5综合结果:综合结果:LCs=10,REG=0(纯组合逻辑)纯组合逻辑) ,T=7.748nsmodule ADDER8 (CLK, SUM, A, B, COUT, CIN); input 7: 0 A, B; input CLK, CIN; output COUT; output7: 0 SUM; reg COUT; reg
16、 7: 0 SUM; always (posedge CLK) beginCOUT, SUM7: 0=A+B+CIN; endendmodule E D A技术与应用 例例9-8:8位位流水线加法器,流水线加法器,EP3C5综合结果:综合结果:LCs=24,REG=22(时序逻辑),(时序逻辑),T=3.63nsmodule ADDER8 (CLK, SUM, A, B, COUT, CIN); input 7: 0 A, B; input CLK, CIN; output COUT; output7: 0 SUM; reg TC, COUT; reg 3: 0 TS, TA, TB; reg
17、7: 0 SUM; always (posedge CLK) begin TC, TS=A3: 0+B3: 0+CIN; SUM3: 0=TS; end always (posedge CLK) begin TA=A7: 4; TB=B7: 4; COUT, SUM7: 4=TA+TB+TC; endendmodule E D A技术与应用 例例9-8:流水器加法器,流水器加法器,EP3C5综合结果:综合结果:LCs=24,REG=22(时序逻辑),(时序逻辑),T=3.63ns8位加法器流水线结构(采用二级流位加法器流水线结构(采用二级流水线,水线,8位加法器分成两个位加法器分成两个4位加法
18、器位加法器 E D A技术与应用普通普通8位加法器结构时序仿真波形位加法器结构时序仿真波形流水线流水线8位加法器结构时序仿真波形位加法器结构时序仿真波形流水线加法器时钟流水线加法器时钟频率是普通加法器频率是普通加法器的的两倍(速度提高)两倍(速度提高)普通加法器计算结果在一个时钟后出现,普通加法器计算结果在一个时钟后出现,流水线加法器计算结果在两个时钟后出流水线加法器计算结果在两个时钟后出现,由于流水线加法器时钟频率是普通现,由于流水线加法器时钟频率是普通加法器两倍,所以计算结果总延时不变加法器两倍,所以计算结果总延时不变 E D A技术与应用9.2.2 寄存器配平寄存器配平不合理的不合理的电
19、路结构电路结构寄存器寄存器配平后配平后的结构的结构总体工作频率取决于总体工作频率取决于T1,整体性能受限,整体性能受限部分逻辑转部分逻辑转移,使移,使t1t2总体工作频率取决于总体工作频率取决于t1,因,因为为t1T1,所以速度提高了,所以速度提高了 E D A技术与应用9.2.3 关键路径法关键路径法关键路径关键路径示意示意 关键路径关键路径是指设计中从输入到输出经过的延时最长的逻辑是指设计中从输入到输出经过的延时最长的逻辑路径。一般从输入到输出的延时取决于信号所经过的延时路径。一般从输入到输出的延时取决于信号所经过的延时最长的路径,而与其他延时小的路径无关。优化关键路径最长的路径,而与其他
20、延时小的路径无关。优化关键路径是提高设计工作速度的有效方法。是提高设计工作速度的有效方法。 EDA工具中的综合器及设计分析器通常都提供关键路径的工具中的综合器及设计分析器通常都提供关键路径的信息以便设计者改进设计,提高速度。信息以便设计者改进设计,提高速度。Quartus II中的时序中的时序分析器可以帮助找到延时最长的关键路径。分析器可以帮助找到延时最长的关键路径。 E D A技术与应用9.2.4 乒乓操作法乒乓操作法乒乓操作数据缓存结构示意图乒乓操作数据缓存结构示意图 乒乓操作法乒乓操作法是是FPGA开开发中的一种数据缓冲优化设计技术,发中的一种数据缓冲优化设计技术,可看成另一种形式的流水
21、线技术。可看成另一种形式的流水线技术。 原理原理:输入数据流在通过:输入数据流在通过“输入数据流选择单元输入数据流选择单元”时,时时,时间等分地将数据流分配到两个数据缓冲模块内。数据缓冲间等分地将数据流分配到两个数据缓冲模块内。数据缓冲模块可以是模块可以是FPGA中的任何存储模块,如双口中的任何存储模块,如双口RAM、单口、单口RAM和和FIFO等。等。 E D A技术与应用9.2.4 乒乓操作法乒乓操作法 特点特点: 通过通过“输入数据流选择单元输入数据流选择单元”和和“输出数据流选择单元输出数据流选择单元”按节按节拍、相互配合的切换,将经过缓冲的数据拍、相互配合的切换,将经过缓冲的数据没有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网贵州省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(基础+提升)
- 2026秋季国家管网集团西北公司高校毕业生招聘考试备考试题(浓缩500题)含答案详解(轻巧夺冠)
- 2025国网浙江省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(各地真题)
- 2026国网山西高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(完整版)
- 2026秋季国家管网集团东部原油储运公司高校毕业生招聘笔试参考题库(浓缩500题)含答案详解(新)
- 2026国网江苏省电力校园招聘(提前批)笔试模拟试题浓缩500题及答案详解(名校卷)
- 2026秋季国家管网集团北京管道有限公司高校毕业生招聘笔试参考题库(浓缩500题)含答案详解(夺分金卷)
- 2026年黄石市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试备考试题(浓缩500题)及答案详解(全优)
- 国家管网集团高校毕业生招聘考试题库(浓缩500题)及参考答案详解(满分必刷)
- 2025年春新道德与法治九年级下册教学课件 第四课 第1课时 中国的机遇与挑战
- 金融机构舆情风险应急预案
- 十大常用管理工具
- 2024年度储能电站在建项目收购合作协议范本3篇
- 护士ECMO进修总结
- 花键计算公式DIN5480
- 2024年医院体检中心绩效考核方案
- 2024年度湖南省高校教师资格证之高等教育学每日一练试卷A卷含答案
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
- 期中测试卷-2024-2025学年统编版语文四年级上册
- 2024版成人术中非计划低体温预防与护理TCNAS 44─20242
评论
0/150
提交评论