版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
9.其他議題一、重命名模塊名稱二、命名規(guī)則三、重命名模塊內(nèi)信號名稱四、參數(shù)化的Bundle五、FixedPoint六、assert七、總結(jié)目錄
2一、重命名模塊名稱
3一、重命名模塊名稱Chisel生成Verilog的模塊名默認使用Chisel中的類名。通過重寫desiredName方法重命名生成Verilog的模塊名。模塊和黑盒都適用。
4一、重命名模塊名稱例:ChiselVerilogclassCoffeeextendsBlackBox{
valio=IO(newBundle{
valI=Input(UInt(32.W))
valO=Output(UInt(32.W))
})
overridedefdesiredName="Tea"
}
classSaltextendsModule{
valio=IO(newBundle{})
valdrink=Module(newCoffee)
overridedefdesiredName="SaltDrink"
}moduleSaltDrink(
inputclock,
inputreset
);
wire[31:0]drink_I;
wire[31:0]drink_O;
Teadrink(
.I(drink_I),
.O(drink_O)
);
assigndrink_I=32'h0;
endmodule
5二、命名規(guī)則
6二、命名規(guī)則Chisel難以可靠地捕獲信號名稱是一個歷史性問題,主要是因為Chisel依靠反射來查找名稱。Chisel3.4引入了一個Scala編譯器插件,它能可靠地捕獲信號名稱。插件的作用:
①給中間變量名加前綴
②函數(shù)調(diào)用或者作用域里面定義的信號名生成 Verilog時使用Chisel變量名
7三、重命名模塊內(nèi)信號名稱
8三、重命名模塊內(nèi)信號名稱chisel3.experimental包里的prefix和noPrefix可以用來增加自定義前綴和去除前綴: prefix用來增加自定義前綴,但是會保留前綴中的左側(cè)變量名; noPrefix可以去掉前綴中的左側(cè)變量名;如果只想生成自定義的前綴,先使用prefix加自定義前綴,再使用noPrefix去除前綴中的左側(cè)變量名。注:如果先使用noPrefix再使用prefix只能去掉前綴中的左側(cè)變量名,不會添加自定義前綴名。3.1前綴
9三、重命名模塊內(nèi)信號名稱如果想更改生成Verilog的信號名稱,可以使用suggestName方法。如果在生成中間變量過程中使用suggestName,會生成相應(yīng)的前綴。如果想去掉該前綴,使用noPrefix去除。
suggestName添加的名字可能不會出現(xiàn)在Verilog中,比如該信號被優(yōu)化掉。三、重命名模塊內(nèi)信號名稱3.2suggestName
10重命名模塊內(nèi)信號名稱
forceName是chisel3.util.experimental里的單例對象,它可以更改信號名、端口名、實例名。用法是foceName(信號名/端口名/實例名,字符串)注:使用時需要importchisel3.util.experimental.forceName三、重命名模塊內(nèi)信號名稱3.3forceName
11四、參數(shù)化的Bundle
12當一個Bundle類的對象用于創(chuàng)建線網(wǎng)、IO等操作時,它并不是把自己作為參數(shù),而是交出自己的一個復(fù)制對象,也就是說編譯器需要知道如何來創(chuàng)建當前Bundle對象的復(fù)制對象。Chisel提供了一個內(nèi)部的API函數(shù)cloneType,任何繼承自Data的Chisel對象,要復(fù)制自身時,都是由cloneType負責(zé)返回該對象的復(fù)制對象。四、參數(shù)化的Bundle
13當自定義的Bundle的主構(gòu)造方法沒有參數(shù)時,Chisel會自動推斷出如何構(gòu)造Bundle對象的復(fù)制。但是,如果自定義的Bundle帶有參數(shù)列表,那么Chisel就可能無法推斷了。此時需要自己重寫B(tài)undle類的cloneType方法,其形式如下:overridedefcloneType=(newCustomBundle(arguments)).asInstanceOf[this.type]四、參數(shù)化的Bundle
14五、FixedPoint
15五、FixedPoint在設(shè)計電路中有時需要用到定點數(shù),在chisel3.util.experimental包里定義了FixedPoint密封類和伴生對象。構(gòu)造FixedPoint需要兩個參數(shù):
FixedPoint(width:Width,binaryPoint:BinaryPoint) width:定點數(shù)的位寬 binaryPoint:尾數(shù)位位寬
FixedPoint類也定義了很多方法,包括算術(shù)運算、位操作、比較操作等,詳情見API文檔和源碼。
16六、assert
17六、assert
有時需要在構(gòu)建電路時限制參數(shù)條件,或者對電路內(nèi)信號進行斷言,如果信號不滿足斷言的條件則報錯,實現(xiàn)上述功能可以使用chisel3包中的assert方法。assert方法可以接受一個參數(shù)、兩個參數(shù)、多個參數(shù)。一個參數(shù):只有判斷條件,可以是Bool類型或者是Boolean類型,也就是說assert同時支持scala和chisel的邏輯判斷。兩個參數(shù):判斷條件和字符串,如果判斷條件不成立,報錯信息會輸出這個字符串。多個參數(shù):判斷條件、字符串和信號名,當判斷條件是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 17954-2025工業(yè)鍋爐經(jīng)濟運行
- 2025年中職鐵道運輸服務(wù)(鐵路客運服務(wù))試題及答案
- 2025年高職新能源汽車結(jié)構(gòu)原理(汽車構(gòu)造分析)試題及答案
- 2025年中職(廣告產(chǎn)品銷售)宣傳效果階段測試卷
- 2025年高職生態(tài)保護運營應(yīng)用(應(yīng)用技術(shù))試題及答案
- 2025年高職(大數(shù)據(jù)與會計)財務(wù)共享服務(wù)期末測試題及答案
- 2025年大學(xué)大三(財政學(xué))稅收籌劃階段測試題及答案
- 2025年高職(西餐工藝)牛排制作試題及答案
- 2025年中職倫理學(xué)(道德理論)試題及答案
- 2025年中職無人機應(yīng)用技術(shù)(無人機操作)技能測試題
- 店鋪污水排放整改通知書
- 2024-2025學(xué)年安徽省安慶市安慶四中九年級上學(xué)期1月份期末英語考試試題
- 磁懸浮柔性傳輸行業(yè)研究報告 2024
- 2025年腎臟內(nèi)科實際操作技能綜合考核答案及解析
- 車間落地品管理辦法
- 2.2氣候課件-八年級地理上學(xué)期人教版
- 知道智慧樹醫(yī)療糾紛的防范與處理滿分測試答案
- 接處警培訓(xùn)課件
- 小區(qū)道閘廣告合同(標準版)
- 2025年山西鐵道單招試題及答案
- DB42T 831-2012 鉆孔灌注樁施工技術(shù)規(guī)程
評論
0/150
提交評論