第7章Verilog设计的优化PPT课件下载推荐.ppt
《第7章Verilog设计的优化PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《第7章Verilog设计的优化PPT课件下载推荐.ppt(36页珍藏版)》请在冰豆网上搜索。
n在在Verilog模块中,模块中,任务任务(task)通常被综)通常被综合成组合逻辑的形式;
每个合成组合逻辑的形式;
每个函数函数(function)在调用时通常也被综合为一个)在调用时通常也被综合为一个独立的独立的组合电路模块。
组合电路模块。
7.2流水线设计流水线设计技术技术o流水线设计是经常用于提高所设计系统运行速度的流水线设计是经常用于提高所设计系统运行速度的一种有效的方法。
为了保障数据的快速传输,必须一种有效的方法。
为了保障数据的快速传输,必须使系统运行在尽可能高的频率上,但如果某些复杂使系统运行在尽可能高的频率上,但如果某些复杂逻辑功能的完成需要较长的延时,就会使系统难以逻辑功能的完成需要较长的延时,就会使系统难以运行在高的频率上,在这种情况下,可使用流水线运行在高的频率上,在这种情况下,可使用流水线技术,即在长延时的逻辑功能块中插入触发器,使技术,即在长延时的逻辑功能块中插入触发器,使复杂的逻辑操作分步完成,减小每个部分的延时,复杂的逻辑操作分步完成,减小每个部分的延时,从而使系统的从而使系统的运行频率得以提高运行频率得以提高。
流水线设计的代流水线设计的代价是增加了寄存器逻辑,增加了芯片资源的耗用。
价是增加了寄存器逻辑,增加了芯片资源的耗用。
流水线操作的概念流水线操作的概念o如某个复杂逻辑功能的实现需较长的延时,可如某个复杂逻辑功能的实现需较长的延时,可将其分解为几个(如将其分解为几个(如3个)步骤来实现,每一步个)步骤来实现,每一步的延时变小,在各步间加入寄存器,以暂存中的延时变小,在各步间加入寄存器,以暂存中间结果,这样可大大提高整个系统的最高工作间结果,这样可大大提高整个系统的最高工作频率。
频率。
流水线操作的概念示意图流水线操作的概念示意图流水线操作的概念示意图流水线操作的概念示意图非流水线方式非流水线方式88位全加器位全加器moduleadder8(cout,sum,ina,inb,cin,clk);
input7:
0ina,inb;
inputcin,clk;
output7:
0sum;
outputcout;
reg7:
0tempa,tempb,sum;
regcout,tempc;
always(posedgeclk)begintempa=ina;
tempb=inb;
tempc=cin;
end/输入数据锁存输入数据锁存always(posedgeclk)begincout,sum=tempa+tempb+tempc;
endendmodule两级流水实现的两级流水实现的88位加法器位加法器moduleadder_pipe2(cout,sum,ina,inb,cin,clk);
outputreg7:
outputregcout;
reg3:
0tempa,tempb,firsts;
regfirstc;
always(posedgeclk)beginfirstc,firsts=ina3:
0+inb3:
0+cin;
tempa=ina7:
4;
tempb=inb7:
endalways(posedgeclk)begincout,sum7:
4=tempa+tempb+firstc;
sum3:
0=firsts;
endendmodule将将8位数每四位分位数每四位分2次相加,形成两级流水线运算过程。
次相加,形成两级流水线运算过程。
四级流水线实现的四级流水线实现的88位加法器位加法器modulepipeline(cout,sum,ina,inb,cin,clk);
regtempci,firstco,secondco,thirdco,cout;
reg1:
0firsts,thirda,thirdb;
0seconda,secondb,seconds;
reg5:
0firsta,firstb,thirds;
tempci=cin;
end/输入数据缓存输入数据缓存always(posedgeclk)beginfirstco,firsts=tempa1:
0+tempb1:
0+tempci;
/第一级加(低第一级加(低2位)位)firsta=tempa7:
2;
firstb=tempb7:
/未参加计算的数据缓存未参加计算的数据缓存endalways(posedgeclk)beginsecondco,seconds=firsta1:
0+firstb1:
0+firstco,firsts;
seconda=firsta5:
secondb=firstb5:
/数据缓存数据缓存endalways(posedgeclk)beginthirdco,thirds=seconda1:
0+secondb1:
0+secondco,seconds;
thirda=seconda3:
thirdb=secondb3:
/数据缓存数据缓存endalways(posedgeclk)begincout,sum=thirda1:
0+thirdb1:
0+thirdco,thirds;
/第四级加(高两位相加)第四级加(高两位相加)endendmodule将将8位数每两位分位数每两位分4次相加,形成四级流水线运算过程。
次相加,形成四级流水线运算过程。
设计综合到不同器件的最高工作频率设计综合到不同器件的最高工作频率2222个加法器和个加法器和个加法器和个加法器和1111个选择器的实现方式个选择器的实现方式个选择器的实现方式个选择器的实现方式moduleresource1(sum,a,b,c,d,sel);
parameterSIZE=4;
inputsel;
inputSIZE-1:
0a,b,c,d;
outputregSIZE:
always(*)/使用通配符使用通配符beginif(sel)sum=a+b;
elsesum=c+d;
endendmodule7.3资源共享(资源共享(ResourceSharing)资源共享可用来减少系统所耗用的器件资源,尤其是将一些资源共享可用来减少系统所耗用的器件资源,尤其是将一些耗用资源较多的模块进行共享,能有效降低整个系统耗用的耗用资源较多的模块进行共享,能有效降低整个系统耗用的资源。
资源。
22个选择器和个选择器和11个加法器的实现方式个加法器的实现方式moduleresource2(sum,a,b,c,d,sel);
regSIZE-1:
0atemp,btemp;
always(*)/使用通配符使用通配符beginif(sel)beginatemp=a;
btemp=b;
endelsebeginatemp=c;
btemp=d;
endsum=atemp+btemp;
endendmodule资源共享(资源共享(ResourceSharing)器件资源的消耗对比器件资源的消耗对比资源共享(资源共享(ResourceSharing)方方式式一一需需要要2个个加加法法器器,而而方方式式二二通通过过增增加加一一个个MUX,共共享享一一个个加加法法器器,由由于于加加法法器器耗耗用用的的资资源源比比MUX更更多多,因因此此方方式式二二更更节节省省资资源源。
所所以以在在电电路路设设计计中中,应应尽尽可可能能使使硬硬件件代代价价高高的的功功能能模模块块资资源源共共享享,从从而而降降低低整整个个系系统统的的成成本本。
计计算算位位数数越越多多,耗用的资源差别越大。
耗用的资源差别越大。
资源共享(资源共享(ResourceSharing)结结论论7.4过程过程o在在Verilog语言中,过程语句包括语言中,过程语句包括always和和initial。
always过程反复执行其中的块语句,而过程反复执行其中的块语句,而initial过程中的语过程中的语句块只执行一次。
句块只执行一次。
always过程可综合,过程可综合,initial语句只能用语句只能用于仿真。
于仿真。
oalways过程语句与过程语句与VHDL语言的进程语句语言的进程语句Process非常相非常相像,像,它既可以用来描述时序电路,也可以用来描述组合电路它既可以用来描述时序电路,也可以用来描述组合电路。
一个一个Verilog模块中的模块中的不同不同always过程语句是并行运行过程语句是并行运行的。
的。
oassign赋值语句、实例元件的调用也都是并行运行的,我赋值语句、实例元件的调用也都是并行运行的,我们可以这样理解:
这些语句最终都综合或翻译成为具体的电们可以这样理解:
这些语句最终都综合或翻译成为具体的电路结构,而这些电路结构是同时在运行或动作的。
路结构,而这些电路结构是同时在运行或动作的。
在进行数字系统设计的时候应注意在进行数字系统设计的时候应注意o将组合逻辑实现的电路和用时序逻辑实现的电将组合逻辑实现的电路和用时序逻辑实现的电路应尽量分配到不同的路应尽量分配到不同的always过程中。
过程中。
o一个一个always过程中过程中只允许描述对应于一个时只允许描述对应于一个时钟信号的同步时序逻辑。
钟信号的同步时序逻辑。
oalways过程必须由过程必须由敏感信号的变化来启动敏感信号的变化来启动,因此应精心选择进程敏感表达式中的敏感变量。
因此应精心选择进程敏感表达式中的敏感变量。
o多个多个always过程间可通过过程间可通过信号线信号线进行通信和进