




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第四章第四章 基于基于Xilinx芯片芯片Verilog進階設計進階設計v面向硬件電路的設計方法面向硬件電路的設計方法v代碼風格與可綜合設計代碼風格與可綜合設計 通用代碼風格通用代碼風格 專用代碼風格專用代碼風格 企業(yè)代碼風格企業(yè)代碼風格v企業(yè)級大規(guī)模企業(yè)級大規(guī)模FPGA應用設計方法應用設計方法v原語的使用原語的使用面向硬件電路的設計方法面向硬件電路的設計方法v將具體功能形成硬件的將具體功能形成硬件的RTL級模型級模型 編寫代碼始終要考慮硬件如何實現(xiàn)編寫代碼始終要考慮硬件如何實現(xiàn)v基于基于FPGA實現(xiàn)的實現(xiàn)的Verilog設計特點設計特點 并行化并行化 同步控制同步控制 實現(xiàn)代價實現(xiàn)代價面向硬
2、件電路的設計方法面向硬件電路的設計方法v硬件實現(xiàn)的并行化硬件實現(xiàn)的并行化 從電路上來看:從電路上來看: 只要芯片上電,所有邏輯就開始工作。只要芯片上電,所有邏輯就開始工作。 從代碼上來看:從代碼上來看: 所有的描述語句之間是并行執(zhí)行的;所有的描述語句之間是并行執(zhí)行的; always語句在邊沿觸發(fā)條件下的行為描述均采用非阻塞語句在邊沿觸發(fā)條件下的行為描述均采用非阻塞賦值,并行執(zhí)行;賦值,并行執(zhí)行; 面向面向RTL級電路的電路設計易于實現(xiàn)流水操作;級電路的電路設計易于實現(xiàn)流水操作; 與一般高級語言的順序代碼為主的設計方法有本質的區(qū)與一般高級語言的順序代碼為主的設計方法有本質的區(qū)別。別。面向硬件電路
3、的設計方法面向硬件電路的設計方法時序延遲信號時序延遲信號reg a, a_d1, a_d2;always (posedge clk or negedge rst)beginif (rst)begina_d1 = #TP 0; a_d2 = #TP 0;endelsebegina_d1 = #TP a; a_d2 = #TP a_d1; endend面向硬件電路的設計方法面向硬件電路的設計方法v基于全局時鐘的同步設計基于全局時鐘的同步設計 數(shù)據(jù)存儲在數(shù)據(jù)存儲在FPGA的寄存器或存儲器中,時鐘可看作執(zhí)的寄存器或存儲器中,時鐘可看作執(zhí)行控制器;行控制器; 串行算法的執(zhí)行可以按照時鐘節(jié)拍的順序進行控制
4、,串行算法的執(zhí)行可以按照時鐘節(jié)拍的順序進行控制,寄存器輸出以及組合邏輯通常作為控制條件。寄存器輸出以及組合邏輯通常作為控制條件。例如:采用計數(shù)器控制狀態(tài)變化或數(shù)據(jù)處理過程。例如:采用計數(shù)器控制狀態(tài)變化或數(shù)據(jù)處理過程。面向硬件電路的設計方法面向硬件電路的設計方法v實現(xiàn)代價實現(xiàn)代價 “面積面積”和和“速度速度”的綜合考慮:的綜合考慮: “面積面積”指所占用的指所占用的FPGA資源(資源(FF和和LUT);); “速度速度”指芯片穩(wěn)定運行所達到的最高頻率。指芯片穩(wěn)定運行所達到的最高頻率。 “面積面積”和和“速度速度”是一對矛盾,可相互轉化:是一對矛盾,可相互轉化: “面積面積”優(yōu)先:資源復用;優(yōu)先:
5、資源復用; “速度速度”優(yōu)先:冗余同構部件。優(yōu)先:冗余同構部件。 ISE 的的Map選項:選項:優(yōu)化策略可選擇優(yōu)化策略可選擇Area和和Speed的優(yōu)化策略的優(yōu)化策略代碼風格與可綜合設計代碼風格與可綜合設計vVerilog HDL語言本身的規(guī)范只面向仿真語言本身的規(guī)范只面向仿真 不使用綜合工具不支持的不使用綜合工具不支持的Verilog結構結構 除了除了wire、reg的多數(shù)數(shù)據(jù)類型的多數(shù)數(shù)據(jù)類型 開關級原語開關級原語 deassign、wait等行為語句等行為語句 UDP和和specify模塊模塊v遵循可綜合設計原則遵循可綜合設計原則 代碼綜合出預想的邏輯代碼綜合出預想的邏輯 行為描述的完整
6、性行為描述的完整性代碼風格與可綜合設計代碼風格與可綜合設計v 同步電路設計同步電路設計 優(yōu)點優(yōu)點 容易使用寄存器的異步復位容易使用寄存器的異步復位/置位端,以使整個電路有一個確置位端,以使整個電路有一個確定的初始狀態(tài);定的初始狀態(tài); 有效避免毛刺,提高可靠性;有效避免毛刺,提高可靠性; 簡化時序分析過程;簡化時序分析過程; 減少對工作環(huán)境的依賴性,提高可移植性;減少對工作環(huán)境的依賴性,提高可移植性; 原則原則 盡可能使用單時鐘(全局時鐘)盡可能使用單時鐘(全局時鐘) 盡可能使用單時鐘沿觸發(fā)(盡可能使用單時鐘沿觸發(fā)(posedge clk) 避免使用門控時鐘(組合邏輯驅動的時鐘)避免使用門控時鐘
7、(組合邏輯驅動的時鐘) 若使用分頻時鐘應當統(tǒng)一管理若使用分頻時鐘應當統(tǒng)一管理代碼風格與可綜合設計代碼風格與可綜合設計v同步電路設計同步電路設計代碼風格與可綜合設計代碼風格與可綜合設計v 同步電路設計的模塊劃分同步電路設計的模塊劃分 信息隱蔽、抽象:信息隱蔽、抽象: 避免跨模塊控制,邊界清晰;避免跨模塊控制,邊界清晰; 端口明確:端口明確: 禁制多重功能和無用接口;禁制多重功能和無用接口; 時鐘域區(qū)分:時鐘域區(qū)分: 異步異步FIFO或雙端口或雙端口RAM實現(xiàn)多時鐘域隔離;實現(xiàn)多時鐘域隔離; 低頻時鐘域盡可能劃分到一個模塊中;低頻時鐘域盡可能劃分到一個模塊中; 資源優(yōu)化:資源優(yōu)化: 盡量使用廠商提
8、供的原語盡量使用廠商提供的原語 寄存器劃分:寄存器劃分: 模塊的輸出盡可能采用寄存器輸出(模塊的輸出盡可能采用寄存器輸出(reg型)型)代碼風格與可綜合設計代碼風格與可綜合設計v 代碼風格(包括書寫規(guī)范和描述方法)代碼風格(包括書寫規(guī)范和描述方法) 通用代碼風格通用代碼風格 Verilog HDL語言規(guī)范,硬件無關,性能未必最優(yōu);語言規(guī)范,硬件無關,性能未必最優(yōu); 專用代碼風格專用代碼風格 基于具體芯片的結構和資源,性能優(yōu)化,移植性可能受影響?;诰唧w芯片的結構和資源,性能優(yōu)化,移植性可能受影響?!叭A為華為Verilog HDL設計規(guī)范設計規(guī)范”Sun公司公司 “Verilog Style a
9、nd Coding Guidelines”“Actel HDL Coding Style Guider”注重代碼的硬件實現(xiàn)質量。注重代碼的硬件實現(xiàn)質量。 目標:功能正確,性能最優(yōu)目標:功能正確,性能最優(yōu)通用代碼風格通用代碼風格v邏輯復用邏輯復用 Synplify提供邏輯復用選項,但若要獲得最佳的復用提供邏輯復用選項,但若要獲得最佳的復用效果,在源代碼設計中應采用顯式的復用控制邏輯;效果,在源代碼設計中應采用顯式的復用控制邏輯; 節(jié)約面積。節(jié)約面積。v邏輯復制邏輯復制 Synplify提供最大扇出選項,如果扇出過大(驅動過提供最大扇出選項,如果扇出過大(驅動過多后續(xù)邏輯),需增加緩沖器提高驅動能
10、力,但信號多后續(xù)邏輯),需增加緩沖器提高驅動能力,但信號延遲增大;延遲增大; 增加面積。增加面積。通用代碼風格通用代碼風格v邏輯結構邏輯結構 樹狀結構優(yōu)于鏈式結構,縮短延遲級數(shù)。樹狀結構優(yōu)于鏈式結構,縮短延遲級數(shù)。vif語句和語句和case語句使用原則語句使用原則 if語句面積小,延遲大;語句面積小,延遲大;case語句面積大,速度快。語句面積大,速度快。 if適合對速度無特殊要求的場合;適合對速度無特殊要求的場合;case適合高速編解碼適合高速編解碼電路。電路。 if分支具有優(yōu)先級,分支具有優(yōu)先級,case分支無優(yōu)先級。分支無優(yōu)先級。 if不可嵌套技術過多,一般不超過不可嵌套技術過多,一般不
11、超過3-4層。層。 兼顧面積和速度,兼顧面積和速度,if和和case混合使用?;旌鲜褂?。通用代碼風格通用代碼風格v關鍵路徑信號處理關鍵路徑信號處理 引起電路建立時間不足的信號路徑成為關鍵路徑引起電路建立時間不足的信號路徑成為關鍵路徑 組合電路關鍵路徑提取采用邏輯拆分方式,降低關鍵組合電路關鍵路徑提取采用邏輯拆分方式,降低關鍵信號的組合延遲級數(shù)。信號的組合延遲級數(shù)。 分析下面語句中分析下面語句中b所經(jīng)過的所經(jīng)過的LUT級數(shù)。級數(shù)。assign y = a & b & c | d & e & b;assign t = a & c | d & e;as
12、sign y = b & t;通用代碼風格通用代碼風格vif和和case不完整分支造成的意外鎖存器不完整分支造成的意外鎖存器 當當always語句使用電平觸發(fā)時有可能產(chǎn)生鎖存器。語句使用電平觸發(fā)時有可能產(chǎn)生鎖存器。參見參見P106例例3-12和例和例3-13 當當always語句使用時鐘沿觸發(fā)時不會產(chǎn)生,此時只產(chǎn)語句使用時鐘沿觸發(fā)時不會產(chǎn)生,此時只產(chǎn)生寄存器。生寄存器。通用代碼風格通用代碼風格vreg型信號只能在一個型信號只能在一個always語句中賦值語句中賦值 最常見的最常見的HDL行為描述建模錯誤之一行為描述建模錯誤之一v避免避免assign不確定語句不確定語句 assign s
13、ignal_a = #4 signal_a; #4被綜合工具忽略掉被綜合工具忽略掉專用代碼風格專用代碼風格v時鐘信號分配原則時鐘信號分配原則 使用全局時鐘,通過使用全局時鐘,通過BUFG驅動,時鐘信號到達各個寄驅動,時鐘信號到達各個寄存器的延遲相同。存器的延遲相同。 減少時鐘信號種類減少時鐘信號種類 避免時鐘毛刺信號(不使用門控時鐘)避免時鐘毛刺信號(不使用門控時鐘)專用代碼風格專用代碼風格vSRL16的使用的使用 SRL16是一種基于是一種基于LUT的移位寄存器;的移位寄存器; 可生成任意位寬和深度的移位寄存器;可生成任意位寬和深度的移位寄存器;srl16_based_ram my_shif
14、t_ram(.clk ( ),.d ( ),.q ( );專用代碼風格專用代碼風格v觸發(fā)器資源分配觸發(fā)器資源分配 盡量使用庫中的觸發(fā)器資源;盡量使用庫中的觸發(fā)器資源; 狀態(tài)機編碼盡可能采用狀態(tài)機編碼盡可能采用“獨熱碼獨熱碼”(one-hot)。)。 (synplify綜合工具可提供相關功能綜合工具可提供相關功能)v反向信號反向信號 盡量使用符號盡量使用符號,而不使用,而不使用not原語;原語; 不要嘗試用多個反向器級聯(lián)來增加需要的信號延遲;不要嘗試用多個反向器級聯(lián)來增加需要的信號延遲; 反向信號驅動多個負載可采用分散反向。反向信號驅動多個負載可采用分散反向。 (綜合工具可自動優(yōu)化)(綜合工具可
15、自動優(yōu)化)企業(yè)代碼風格企業(yè)代碼風格v1.基本書寫規(guī)則基本書寫規(guī)則 用有意義而有效的名字;用有意義而有效的名字; 用連貫的縮寫;用連貫的縮寫;Clk Rst 用最右邊(左邊)的字符下劃線表示低電平有效,高用最右邊(左邊)的字符下劃線表示低電平有效,高電平有效的信號不得以下劃線表示;電平有效的信號不得以下劃線表示;Rst_ Trdy_ 名字一般首字符大寫,其余小寫(但名字一般首字符大寫,其余小寫(但parameter, integer 定義的數(shù)值名可全部用大寫),兩個詞之間要定義的數(shù)值名可全部用大寫),兩個詞之間要用下劃線連接用下劃線連接Packet_addr Data_in企業(yè)代碼風格企業(yè)代碼風
16、格v1.基本書寫規(guī)則基本書寫規(guī)則 全局信號名字中應包含信號來源的一些信息;全局信號名字中應包含信號來源的一些信息; 同一信號在不同層次應保持一致性;同一信號在不同層次應保持一致性; 自己定義的常數(shù)類型等用大寫標識自己定義的常數(shù)類型等用大寫標識parameter CYCLE = 100; 避免使用保留字作為信號、模塊名稱;避免使用保留字作為信號、模塊名稱; 添加有意義的后綴使信號名更加明確。添加有意義的后綴使信號名更加明確。企業(yè)代碼風格企業(yè)代碼風格v2.Module 頂層模塊應只是內(nèi)部模塊間的互連,除了內(nèi)部的互連頂層模塊應只是內(nèi)部模塊間的互連,除了內(nèi)部的互連和模塊的調(diào)用外盡量避免再做邏輯(如不能
17、再出現(xiàn)對和模塊的調(diào)用外盡量避免再做邏輯(如不能再出現(xiàn)對reg變量的變量的always賦值,不能再用賦值,不能再用assign語句完成復語句完成復雜邏輯);雜邏輯); 每一個模塊應在開始處注明文件名功能描述引用模塊每一個模塊應在開始處注明文件名功能描述引用模塊設計者設計時間及版權信息(設計者設計時間及版權信息(ISE生成模板);生成模板); 不要對不要對input進行驅動進行驅動, 在在module 內(nèi)不要存在沒有驅動內(nèi)不要存在沒有驅動的信號,更不能在模塊端口中出現(xiàn)沒有驅動的輸出信的信號,更不能在模塊端口中出現(xiàn)沒有驅動的輸出信號,避免在仿真或綜合時產(chǎn)生號,避免在仿真或綜合時產(chǎn)生warning,干
18、擾錯誤定位;干擾錯誤定位;(避免由于未驅動產(chǎn)生的(避免由于未驅動產(chǎn)生的x,z)企業(yè)代碼風格企業(yè)代碼風格v2.Module 每行應限制在每行應限制在80個字符以內(nèi)以保持代碼的清晰美觀和個字符以內(nèi)以保持代碼的清晰美觀和層次感;層次感; 模塊實例名應采用模塊實例名應采用”U_xx”命名,端口采用顯式關聯(lián)命名,端口采用顯式關聯(lián)而非隱式關聯(lián);而非隱式關聯(lián); 用一個時鐘的上沿或下沿采樣信號,不能混合使用;用一個時鐘的上沿或下沿采樣信號,不能混合使用; 如果一定要使用時鐘雙沿,可使用如果一定要使用時鐘雙沿,可使用180度相位時鐘;度相位時鐘; 在模塊中增加注釋;在模塊中增加注釋; Module 名要用大寫標
19、示,且應與文件名保持一致;名要用大寫標示,且應與文件名保持一致;企業(yè)代碼風格企業(yè)代碼風格v2.Module 嚴格芯片級模塊的劃分,只有頂層包括嚴格芯片級模塊的劃分,只有頂層包括IO引腳;引腳; 模塊輸出寄存器化,對所有模塊的輸出加以寄存,輸模塊輸出寄存器化,對所有模塊的輸出加以寄存,輸出的驅動強度和輸入的延遲可以預測,從而使得模塊出的驅動強度和輸入的延遲可以預測,從而使得模塊的綜合過程更簡單;的綜合過程更簡單; 將關鍵路徑邏輯和非關鍵路徑邏輯放在不同模塊,實將關鍵路徑邏輯和非關鍵路徑邏輯放在不同模塊,實施不同的優(yōu)化策略。施不同的優(yōu)化策略。企業(yè)代碼風格企業(yè)代碼風格v3.線網(wǎng)與寄存器線網(wǎng)與寄存器
20、一個一個reg變量只能在一個變量只能在一個always語句中賦值;語句中賦值; 向量有效位順序的定義一般是從大數(shù)到小數(shù);向量有效位順序的定義一般是從大數(shù)到小數(shù); 模塊輸出端口,對線網(wǎng)和寄存器類型的要做聲明;模塊輸出端口,對線網(wǎng)和寄存器類型的要做聲明; 使用克綜合的的線網(wǎng)和寄存器類型。使用克綜合的的線網(wǎng)和寄存器類型。企業(yè)代碼風格企業(yè)代碼風格v4.表達式表達式 用括號來表示執(zhí)行的優(yōu)先級,使優(yōu)先級閱讀更清晰;用括號來表示執(zhí)行的優(yōu)先級,使優(yōu)先級閱讀更清晰;(注意不要造成額外的延遲)(注意不要造成額外的延遲) 用一個函數(shù)用一個函數(shù)(function)來代替表達式的多次重復,仿真來代替表達式的多次重復,仿
21、真中經(jīng)常使用的一組描述可以寫到一個任務中經(jīng)常使用的一組描述可以寫到一個任務(task)中;中;企業(yè)代碼風格企業(yè)代碼風格v5. if語句語句 向量比較時比較的向量寬度要相等,不相等時建議采向量比較時比較的向量寬度要相等,不相等時建議采用顯示擴展;用顯示擴展; 每一個每一個if 都應有一個都應有一個else 和它相對應;和它相對應; 應注意應注意if .else if .else if .else 的優(yōu)先級;的優(yōu)先級; 如果變量在如果變量在if-else 或或case 語句中做非完全賦值則應給語句中做非完全賦值則應給變量一個缺省值。變量一個缺省值。(always語句的自身要求)語句的自身要求)企業(yè)
22、代碼風格企業(yè)代碼風格v6. case語句語句 case語句通常綜合成一級多路復用器,語句通常綜合成一級多路復用器,if-then-else則則綜合成優(yōu)先編碼的串接的多個多路復用器;綜合成優(yōu)先編碼的串接的多個多路復用器; 所有的所有的Case 應該有一個應該有一個default case 允許空語句允許空語句Default : ;企業(yè)代碼風格企業(yè)代碼風格v7.函數(shù)函數(shù) 在在function的最后給的最后給function賦值;賦值; 函數(shù)中避免使用全局變量,否則容易引起函數(shù)中避免使用全局變量,否則容易引起HDL行為級行為級仿真和門級仿真的差異。仿真和門級仿真的差異。注意:函數(shù)與任務的調(diào)用均為靜態(tài)
23、調(diào)用注意:函數(shù)與任務的調(diào)用均為靜態(tài)調(diào)用企業(yè)代碼風格企業(yè)代碼風格v8.賦值賦值 Verilog 支持兩種賦值:過程賦值支持兩種賦值:過程賦值(procedural) 和連續(xù)和連續(xù)賦值賦值(continuous) ,過程賦值用于過程代碼,過程賦值用于過程代碼(initial, always, task or function)中給中給reg和和integer變量變量timerealtime、real賦值,而連續(xù)賦值一般給賦值,而連續(xù)賦值一般給wire變變量賦值;量賦值;(reg型與型與wire型賦值問題)型賦值問題) always (敏感表敏感表要完整如果不完整將會引起仿敏感表敏感表要完整如果不完
24、整將會引起仿真和綜合結果不一致;真和綜合結果不一致;(電平觸發(fā)的意外鎖存器問題)(電平觸發(fā)的意外鎖存器問題)企業(yè)代碼風格企業(yè)代碼風格v8.賦值賦值 force/release 僅用于僅用于debug,對寄存器和線網(wǎng)均有用;,對寄存器和線網(wǎng)均有用; 避免使用避免使用Disable assign/deassign 僅用于仿真加速僅對寄存器有用;僅用于仿真加速僅對寄存器有用;(可綜合設計問題)(可綜合設計問題) 對任何對任何reg賦值用非阻塞賦值代替阻塞賦值,賦值用非阻塞賦值代替阻塞賦值, reg 的非的非阻塞賦值要加單位延遲,但異步復位可加可不加。阻塞賦值要加單位延遲,但異步復位可加可不加。(re
25、g賦值問題,仿真賦值延遲問題)賦值問題,仿真賦值延遲問題)企業(yè)代碼風格企業(yè)代碼風格v9.組合邏輯與時序邏輯組合邏輯與時序邏輯 如果一個事件持續(xù)幾個時鐘周期設計時就用時序邏輯如果一個事件持續(xù)幾個時鐘周期設計時就用時序邏輯代替組合邏輯;代替組合邏輯; 內(nèi)部總線不要懸空,在內(nèi)部總線不要懸空,在default狀態(tài)要把它上拉或下拉。狀態(tài)要把它上拉或下拉。企業(yè)代碼風格企業(yè)代碼風格v10.宏與參數(shù)宏與參數(shù) 為了保持代碼的可讀性常用為了保持代碼的可讀性常用 define做常數(shù)聲明;做常數(shù)聲明; 把把define放在一個獨立的文件中;放在一個獨立的文件中; 參數(shù)參數(shù)parameter 必須在一個模塊中定義,不要
26、傳替參必須在一個模塊中定義,不要傳替參數(shù)到模塊;數(shù)到模塊; 如果希望宏的作用域僅在一個模塊中就用參數(shù)來代替。如果希望宏的作用域僅在一個模塊中就用參數(shù)來代替。企業(yè)代碼風格企業(yè)代碼風格v11.注釋注釋 對更新的內(nèi)容更新要做注釋;對更新的內(nèi)容更新要做注釋; 在語法塊的結尾做標記;在語法塊的結尾做標記; 每一個模塊都應在模塊開始處做模塊級的注釋;每一個模塊都應在模塊開始處做模塊級的注釋; 在模塊端口列表中出現(xiàn)的端口信號都應做簡要的功能在模塊端口列表中出現(xiàn)的端口信號都應做簡要的功能描述。描述。企業(yè)代碼風格企業(yè)代碼風格v12.有限狀態(tài)機(有限狀態(tài)機(FSM) VerilogHDL描述狀態(tài)機時由描述狀態(tài)機時
27、由parameter分配好狀態(tài);分配好狀態(tài); 組合邏輯和時序邏輯分開用不同的進程:組合邏輯和時序邏輯分開用不同的進程: 組合邏輯包括狀態(tài)譯碼和輸出;組合邏輯包括狀態(tài)譯碼和輸出; 時序邏輯則是狀態(tài)寄存器的切換;時序邏輯則是狀態(tài)寄存器的切換; 必須包括對所有狀態(tài)都處理不能出現(xiàn)無法處理的狀態(tài)必須包括對所有狀態(tài)都處理不能出現(xiàn)無法處理的狀態(tài)使狀態(tài)機失控;使狀態(tài)機失控; Mealy機的狀態(tài)和輸入有關,而機的狀態(tài)和輸入有關,而Moore機的狀態(tài)轉換和機的狀態(tài)轉換和輸入無關。輸入無關。(Mealy機使用的較多)機使用的較多)企業(yè)代碼風格企業(yè)代碼風格v13.testbench 在在testbench中避免使用絕
28、對的時間,如中避免使用絕對的時間,如#20,#15或或#(CYC+15)等,應該在文件前面使用等,應該在文件前面使用parameter定義一定義一些常量,使得時間的定義象些常量,使得時間的定義象#(CYC+OFF0)的形式,便的形式,便于修改;于修改; 觀測結果可以輸出到波形文件或數(shù)據(jù)文件觀測結果可以輸出到波形文件或數(shù)據(jù)文件 ; 對大的設計的頂層仿真一般不要對所有信號跟蹤波形對大的設計的頂層仿真一般不要對所有信號跟蹤波形文件會很大仿真時間延長可以有選擇的觀測一些信號;文件會很大仿真時間延長可以有選擇的觀測一些信號;企業(yè)代碼風格:常見代碼問題企業(yè)代碼風格:常見代碼問題v在在for-loop中包括
29、不變的表達式浪費運算時間中包括不變的表達式浪費運算時間for (i=0;i4;i=i+1)beginSig1 = Sig2;DataOuti = DataIni;endfor-loop中第一條語句始終不變,浪費運算時間。中第一條語句始終不變,浪費運算時間。(注意,這是仿真代碼)(注意,這是仿真代碼)企業(yè)代碼風格:常見代碼問題企業(yè)代碼風格:常見代碼問題v資源共享問題資源共享問題條件算子中不存在資源共享條件算子中不存在資源共享,如如z = (cond) ? (a + b) : (c + d);必須使用兩個加法器必須使用兩個加法器;而等效的條件而等效的條件if-then-else語句則可以資源共享如
30、語句則可以資源共享如if (Cond)z = a + b;elsez = c + d;只要加法器的輸入端復用只要加法器的輸入端復用,就可以實現(xiàn)加法器的共享就可以實現(xiàn)加法器的共享,使用使用一個加法器實現(xiàn)一個加法器實現(xiàn)企業(yè)代碼風格:常見代碼問題企業(yè)代碼風格:常見代碼問題v由于組合邏輯位置不同而引起過多的觸發(fā)器綜合由于組合邏輯位置不同而引起過多的觸發(fā)器綜合 組合邏輯單獨使用一個組合邏輯單獨使用一個電平觸發(fā)的電平觸發(fā)的always語句,語句,寄存器減少一個。寄存器減少一個。注注:(:(1)需根據(jù)具體需要)需根據(jù)具體需要 (2)少用)少用always描述描述組合邏輯組合邏輯企業(yè)代碼風格:常見代碼問題企業(yè)代碼風格:常見代碼問題v謹慎使用異步邏輯謹慎使用異步邏輯 避免門控時鐘避免門控時鐘always (posedge GATED_Clk or posedge Rst) begin if (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 壓緊氣缸采購合同范本
- 縣勞務輸出合同范本
- 化肥賒欠合同范例
- 辦公電腦訂購合同范本
- 出國出境勞務合同范本
- 北京土方備案合同范本
- 廠房水電安裝合同范本
- 副食進貨合同范本
- 合同范本模板收費
- 南園新村租房合同范本
- 2024解析:第五章透鏡及其應用-講核心(解析版)
- 《子宮肉瘤》課件
- 地熱能利用技術的原理與應用考核試卷
- 《機器人驅動與運動控制》全套教學課件
- 大班科學活動小實驗
- 新能源汽車概論課件 2.1認知新能源汽車動力電池技術
- 湖南財政經(jīng)濟學院《中國文化史》2021-2022學年第一學期期末試卷
- 2024屆清華大學強基計劃數(shù)學學科筆試試題(附答案)
- 偵查學總論學習通超星期末考試答案章節(jié)答案2024年
- 公司關于進一步深化“法治公司”建設的實施方案
- (完整版)安全技術交底的范本(全套)
評論
0/150
提交評論