<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > SOC參數自動(dòng)配置設計方法與功耗優(yōu)化

SOC參數自動(dòng)配置設計方法與功耗優(yōu)化

作者: 時(shí)間:2012-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

在 :…… : > 中的就是Eperl 代碼,以 開(kāi)始的是Vperl 代碼, 如ModuleBeg 表示模塊的開(kāi)始。 在FIFO 中,可配置的主要是2 個(gè): FIFO 深度和FIFO 寬度,所以dma_fif.evp 文件對外只有2 個(gè)可調, 而其他的比如定義信號所需要的FIFO 寄存器的最高位width_msb 、head 指針的寬度ptr_width 等都可以用Eperl 腳本生成。 這與宏定義相比體現了Eperl 的靈活性。再比如可以通用寄存器組gpr.evp 文件利用for 循環(huán)來(lái)例化每一個(gè)寄存器,更充分地體現了使用Eperl 的靈活性。 for 循環(huán)的代碼如下所示。

for($i = 0;$i$reg _num;$i++) {

printInstance (iu_register,iu_register_$i );n ;

}

: >

……

3.evp 格式的文件經(jīng)過(guò)Eperl 解析后生成

3.vp格式的文件。 dma _fifo.evp 經(jīng)過(guò)Eperl 解析后生成的3.vp 文件如下所示。

∥Synchronous FIFO.fifo_depth x fifo _width bit words。

ModuleBeg ;

Ports ;

Regs ;

Wires ;

Force (mem ,fifomem ,15 ,0 ,3 ,0) ;

……

∥Update FIFO memory。

always @(posedge clk) begin

if (rstp== 1′b0 writep==1′b1 fullp==1′b0)

fifomem [head]= din [15 :0] ;

end

∥Update the head register。

always @(posedge clk) begin

if (rstp = = 1′b1)

head [1 :0 ] = 2′b0 ;

else

if (writep = = 1′b1 fullp = = 1′b0)

head [1 :0 ] = head [1 :0 ] + 1 ;

end

……

當然IP 模塊的不同配置會(huì )造成 系統信號的不同。 如向系統中添加通用異步收發(fā)器(UART)模塊, 系統就要增加輸入輸出端口,并且要增加很多內部的連線(xiàn),比如把IP 總線(xiàn)引入UART.Vperl 程序可以解決這個(gè)問(wèn)題。

Vperl 的工作原理是通過(guò)分析模塊內使用的信號的屬性來(lái)確定模塊的信號定義。 HDL 具有一定的語(yǔ)法結構,比如Verilog 有2 種信號類(lèi)型,always 塊中的= 操作符左邊一定是reg 類(lèi)型信號,由此取reg 類(lèi)型的補集就是wire 類(lèi)型,除非顯式地通過(guò)Force()聲明為其他類(lèi)型,如在dma_fifo.vp 中的第6 行代碼,聲明為二維reg 數組類(lèi)型。 分析模塊也可以確定模塊的輸入輸出,如果一個(gè)信號在模塊中自始至終沒(méi)有被賦值過(guò),那么這個(gè)信號必然是input信號;同理,如果一個(gè)信號被賦值但從來(lái)沒(méi)被使用過(guò),就是output 信號; 如果既被賦值過(guò),又被使用過(guò),那么這個(gè)信號有很大可能是這個(gè)模塊的內部信號,不是模塊的端口,除非顯式地通過(guò)Force ( ) 聲明為inout類(lèi)型。 對于模塊中例化的子模塊(在3.vp 中用Instance() 語(yǔ)句聲明) ,Vperl 程序首先分析模塊間的從屬關(guān)系,并先處理最底層的子模塊代碼,在分析子模塊接口的輸入輸出屬性后,缺省地把子模塊的輸入輸出信號作為上層模塊的接入信號,并在上層模塊中進(jìn)行連接,當然Vperl 也提供了Connect () 語(yǔ)句來(lái)更改子模塊接入上層模塊的信號名。 所以用Vperl 的格式書(shū)寫(xiě)的文件3.vp不需要在文件頭部定義信號名。 如下所示是dma_fifo.vp 文件的示例代碼。



關(guān)鍵詞: SOC 參數 自動(dòng) 設計方法

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>