一....盡量不要使用"大于""小于"這樣的判斷語句, 這樣會明顯增加使用的邏輯單元數(shù)量 .看一下報告,資源使用差別很大.
???? 例程:always@(posedge clk)?? begin??? count1=count1+1;?? if(count1==10000000)???? feng=1;??? //no_ring??? else if(count1==90000000)???? begin????? feng=0;?? //ring????? count1=0;??? endend??????????? //這么寫會用107個邏輯單元
// 如果把這句話if(count1==10000000)改成大于小于,報告中用了135個邏輯單元
二.....一定要想盡辦法減少reg寄存器的長度
???? 上次把[30:0]改到[50:0],報告里邏輯單元從100多直升到2000多!!!太嚇人了,至于為什么我就不知道了哈!
三....case語句里一定要加default??? if一定要加else
????? 如果是組合邏輯的設計,不加default或else的話,不能保證所有的情況都有賦值,就會在內部形成一個鎖存器,不再是一個純粹的組合邏輯了,電路性能就會下降.
???? 例如:case({a,b})
????????????????? 2'b11 e=b;
???????????????? 2'b10?? e=a;???
???????????? endcase
??????????? //不加default,雖然只關心a=1時的結果,但是a=0的時候,e就會保存原來的值,直到a變?yōu)?
?????????? //那么e要保存原來的值,就要在內部生成鎖存器了.
?
四....盡量使用Case語句?? 而不是if--else語句
????? 復雜的if--else語句通常會生成優(yōu)先級譯碼邏輯,這將會增加這些路徑上的組合時延用來產(chǎn)生復雜邏輯的Case語句通常會生成不會有太多時延的并行邏輯
五...組合邏輯的always塊中,要注意所有的輸入全部放入敏感變量表里
????? 比如:always@(a or b)
???????????????????????? begin
?????????????????????????????????????? out=(a&b&c);
???????????????????????? end
此時生成的不是純的組合邏輯,因為當C變化時,??? out不會立刻發(fā)生變化(需要等到a或b變化,c的變化才會顯現(xiàn)),??? 所以需要生成一個寄存器來保存C的值.
連續(xù)賦值語句的綜合:從賦值語句右邊提取出邏輯,用于驅動賦值語句左邊的net
過程賦值語句的綜合:從賦值語句右邊提取出的邏輯,用于驅動賦值語句左邊的reg型變量。注意:initia語句僅用于仿真,不綜合。只有在always中才能被綜合。
建議組合邏輯用阻塞語句,時序邏輯用非阻塞語句,任何延時控制(如#5)都被綜合工具器忽略。一個模塊中同一個變量不能既有阻塞賦值,又有非阻塞賦值。
always語句的綜合
1對于組合邏輯,事件列表必須包括所有always語句中引用的變量,否則會造成綜合的結果與設計功能不匹配。
2臨時變量可以不用在事件列表中列出。
if語句的綜合
特別要注意綜合出鎖存器。always中,某個變量沒有在所有的條件分支中被賦值,就會綜合出鎖存器。
case語句綜合
和if語句一樣,不完整的case分支語句也會導致鎖存器的綜合。
避免方法:
1)在case語句前,對要賦值的變量賦予初值
always @ (state or a or b) begin
q =0;
case(state)
?3'b000: q =? A & B;
……
2)使用default分支語句
3)使用綜合指令,具體用法在case關鍵字行的注釋中插入”synthesis full_case“
并行CASE語句
通常情況下case語句和if語句一樣會綜合出代有優(yōu)先權解碼的硬件電路,從上大俠選項優(yōu)先級逐漸降低。但如果設計者知道case語句中的所有項是互斥的,這時候就使用”parallel_case"綜合指令。
always @(key)
?case(key)???? //synthesis parallel_case
??? 4'b0001: a? = 0;
?endcase
如何寫代碼減少邏輯單元的使用數(shù)量
- 代碼(66456)
- 邏輯單元(5077)
相關推薦
如何寫AAR記錄?
''}; while(TT4_AddAAR(& aAAR)!= SUCCESS); 是否有任何smaple代碼來測試AAR讀/寫。還有各種NDEF格式?提前致謝!RGDS,盧比#android-app #nfc#m24sr
2019-08-16 14:24:07
如何寫DA轉化代碼
解如何寫DA轉化代碼:s: 即startADDRESS: 即器件地址(0表示為寫)A:表示等待回應CONTROL BYTE: 表示控制字(第二個發(fā)送的字節(jié))A:表示等待回應DATE BYTE: 表示寫入的電壓值(注意如果寫入255,其實結果是5v,以此來換算)A:表示等待回應s:
2022-02-16 07:48:44
如何寫c代碼才能讓程序的執(zhí)行效率更高?
怎樣寫c代碼才能讓程序的執(zhí)行效率更高?同樣結構和功能的代碼,只是其中的變量的定義方式不同,但程序的執(zhí)行效率卻又天壤之別!能相差10倍!!!所以,想問問怎樣寫代碼,可以讓代碼的執(zhí)行效率更高?
2020-07-14 08:00:20
如何寫一個中斷函數(shù)
目錄1、中斷2、復位3、通用I/O及其中斷:I/O寄存器I/O中斷寄存器默認狀態(tài)如何寫一個中斷函數(shù)總結所整理歸納僅做分享與記錄,從自身角度分析自己身為學生曾在學習中所遇到的問題與需要特別注意的地方
2021-11-29 07:30:15
如何寫入指令?
連接是沒有問題的。但是我寫入*AC? 時儀器報錯。我看了說明還是不會如何寫?所以請教1.若我要測量市電220vac要怎樣寫指令,儀器才可以響應測量AC的指令呢?2.附件有34401A的說明書,能否對幾個典型的命令做詳細的說明。3.請教一下,有沒有相關如何寫入指令的教程或書籍介紹。
2014-04-30 12:58:03
如何寫出可以讓人理解的代碼(以verilog語言為例)?
如何寫出可以讓人理解的代碼(以verilog語言為例)?1. 代碼要比較好理解,最容易做到的就是把代碼寫短,因此在每個always語句塊盡可能只處理一個信號,或者只處理一組相關度很高的信號(例如
2012-02-01 11:39:56
如何寫好狀態(tài)機
的硬件和邏輯工程師面試中,狀態(tài)機設計幾乎是必選題目。本章在引入狀態(tài)機設計思 想的基礎上,重點討論如何寫好狀態(tài)機。 本文主要內容如下: 狀態(tài)機的基本概念; 如何寫好狀態(tài)機; 使用 Synplify Pro 分析 FSM。[hide] [/hide]
2011-10-24 11:43:11
如何寫帶大緩沖區(qū)和內部中斷的uart函數(shù)?
字節(jié)而不是128字節(jié)。有時也丟失了字節(jié)。在PSoC Creator好的例子中,沒有使用大緩沖區(qū)的UART。請你幫助我,告訴你如何寫這個函數(shù)。AuthyScB.Cyrkk.Access 02.Zip1.1兆字節(jié)
2019-10-14 10:32:36
Cyclone IV 器件的邏輯單元和邏輯陣列模塊
這個章節(jié)包含了定義邏輯單元 (LE) 和邏輯陣列模塊 (LAB) 的特性。具體信息體現(xiàn)在 LE如何運作,LAB 如何容納 LE 組,以及 LAB 接口如何與 Cyclone? IV 器件中的其他模塊連接。
2017-11-13 11:25:48
DSP C6713用McBSP0中的中斷程序向FPGA發(fā)數(shù)據(jù)代碼咋寫?
大家好:DSP C6713用McBSP0中的中斷程序向FPGA發(fā)數(shù)據(jù),或者向CE0寫數(shù)據(jù),(注意:發(fā)送數(shù)據(jù)用EMIF,接收用McBSP0)C語言代碼該如何寫?緊急多謝!
2020-07-29 09:29:38
FPGA實戰(zhàn)演練邏輯篇45:減少關鍵路徑的邏輯等級
減少關鍵路徑的邏輯等級本文節(jié)選自特權同學的圖書《FPGA設計實戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 下面要列舉的代碼示例是一些能夠起到
2015-07-02 22:17:18
STC90C58AD自帶AD程序如何寫?
STC90C58AD自帶AD程序如何寫?1、初始化哪些指令?2、如何設置?3、如何采集及送到LCD屏16284希望高手都來指點下!
2013-01-07 11:14:09
USET模塊的數(shù)量突然減少到只有兩個
我有一個當前的項目,目錄中列出的USET模塊的數(shù)量突然減少到只有兩個。有什么想法嗎? 以上來自于百度翻譯 以下為原文I have a current project and suddenly
2019-03-21 09:26:00
[求助] 關于如何寫模塊化的程序?
reg52.h的重復定義。這是我第一次嘗試寫模塊化程序,不知道各個.h文件和.c文件開頭怎么寫,我是參照一個模板寫的,但編譯還是出錯,請各位大俠指出錯誤,教小弟如何寫模塊化程序。能不能把我的程序改一下傳給我,或者您給我傳一份可以正確編譯的模塊化程序,讓我參考參考,在此謝謝過了!
2013-01-01 19:17:58
[求助] 關于如何寫模塊化的程序?
reg52.h的重復定義。這是我第一次嘗試寫模塊化程序,不知道各個.h文件和.c文件開頭怎么寫,我是參照一個模板寫的,但編譯還是出錯,請各位大俠指出錯誤,教小弟如何寫模塊化程序。能不能把我的程序改一下傳給我,或者您給我傳一份可以正確編譯的模塊化程序,讓我參考參考,在此謝謝過了!
2013-01-01 19:20:53
[求助] 關于如何寫模塊化的程序?
reg52.h的重復定義。這是我第一次嘗試寫模塊化程序,不知道各個.h文件和.c文件開頭怎么寫,我是參照一個模板寫的,但編譯還是出錯,請各位大俠指出錯誤,教小弟如何寫模塊化程序。能不能把我的程序改一下傳給我,或者您給我傳一份可以正確編譯的模塊化程序,讓我參考參考,在此謝謝過了!
2013-01-01 20:13:36
[求助] 關于如何寫模塊化的程序?
reg52.h的重復定義。這是我第一次嘗試寫模塊化程序,不知道各個.h文件和.c文件開頭怎么寫,我是參照一個模板寫的,但編譯還是出錯,請各位大俠指出錯誤,教小弟如何寫模塊化程序。能不能把我的程序改一下傳給我,或者您給我傳一份可以正確編譯的模塊化程序,讓我參考參考,在此謝謝過了!
2013-01-01 20:15:05
fpga邏輯資源
;"小于"這樣的判斷語句, 這樣會明顯增加使用的邏輯單元數(shù)量 .看一下報告,資源使用差別很大.例程:always@(posedge clk)begincount1=count1+1
2018-03-24 11:04:41
msp430g2553定時一秒的程序如何寫(沒有外部晶振)
``msp430g2553開發(fā)板在沒有外部晶振的情況下,如何寫定時一秒的程序??想用12864做個電子鐘,但不能準確定時一秒,希望大家?guī)蛶兔`
2014-05-01 19:49:13
ubuntu linux操作系統(tǒng)上如何寫一個讓圖隨機移動的程序,打.....
ubuntu linux操作系統(tǒng)上如何寫一個讓圖隨機移動的程序,打印出來?
2014-04-18 16:03:13
什么控制邏輯單元接受PWM后能產(chǎn)生幾個頻率穩(wěn)定邏輯脈沖?
本人新手,問一個問題。什么控制邏輯單元接受PWM后能產(chǎn)生幾個頻率穩(wěn)定的邏輯脈沖?
2012-07-24 08:59:48
什么是Modbus協(xié)議?如何寫穩(wěn)定的Modbus代碼?
什么是Modbus協(xié)議?Modbus協(xié)議有哪些分類?使用Modbus時有哪些注意事項?如何寫穩(wěn)定的Modbus代碼?
2021-07-02 06:54:34
關于如何寫模塊化的程序?
定義。這是我第一次嘗試寫模塊化程序,不知道各個.h文件和.c文件開頭怎么寫,我是參照一個模板寫的,但編譯還是出錯,請各位大俠指出錯誤,教小弟如何寫模塊化程序,不勝感激!!!
2012-12-30 15:51:55
基于rdk 4.1 單獨編譯ko文件,如何寫make?
本帖最后由 人間煙火123 于 2018-6-15 11:45 編輯
請教下專家們我用的IPNC rdk 4.1編寫了一個自己的驅動,我想把它單獨編譯成一個ko文件,如何寫make?
2018-06-15 01:16:41
如何在LUT和邏輯元件之間以及邏輯元件和邏輯單元之間進行交換
嗨,我目前正在對設計進行初步分析。我正在研究關于實現(xiàn)不同功能所需資源的不同F(xiàn)PGA。我找不到一種方法來將設計使用的LUT數(shù)量相關聯(lián),并將其轉換為virtex和spartan范圍的邏輯單元格。如果可能
2019-01-08 10:18:36
我在以前的代碼基礎上,又加入部分的代碼,邏輯單元使用量竟然減少了,求告知
我在以前的代碼基礎上,又加入部分的代碼。加入的部分代碼只是為了增加部分的新功能(原來的代碼沒有改動),編輯后邏輯單元使用量竟然比原代碼的使用量減少了,求告知使用語言: verilog環(huán)境: quartusii芯片: CPLDAltera
2016-08-13 09:40:24
數(shù)字邏輯功能單元
數(shù)字邏輯功能單元數(shù)字邏輯最終是需要通過數(shù)字電路的形式來實現(xiàn)的緩沖門:是僅具有緩沖功能的基本門電路,僅有一個輸入端口,也僅有一個輸出端口功能:將輸入端口的信號電平原封不動地搬移到輸出端口,輸入為0
2021-07-29 08:04:47
是否可以使用邏輯單元的verilog代碼?
我想知道我是否可以使用邏輯單元(Spartan 6)的verilog代碼,這樣我就不必花時間為邏輯單元編寫verilog代碼。這可以節(jié)省我的時間,讓我專注于其他部分內容,因為我有一個很短的時間來完成
2020-03-10 09:45:39
求助。ssrp主板。如何寫程序。有賞服務。
求助。ssrp主板。如何寫程序。有賞服務。我有一個維基站,在國內可以用。拿到加拿大,頻率不一樣,需要更新程序。有會的大牛嗎。有賞服務。***微信同號。
2021-08-19 08:19:19
特殊命令轉碼用labview如何寫呢?
23 DBCD 11)發(fā)送給MCU。比如,原命令是16位hex命令包,轉碼完后會變成18位的命令包,這樣的情況,用labview如何寫呢?有個大體思路,是先拆分數(shù)據(jù),然后一位一位比較,若遇到特殊數(shù)據(jù)就轉碼,最后把這些比較完的數(shù)據(jù)再合成。用for循環(huán),實在是寫不出來,請大神幫想想法子。
2019-08-29 23:25:15
藍橋杯中模塊相應代碼該如何寫
本文不說底層原理,只說藍橋杯中模塊相應代碼該如何寫,一定要自己敲出來,測試出相應的結果。模塊練熟了再去敲往年的賽題,畢竟九尺之臺,起于累土main主函數(shù)部分,這個把各個模塊融合在一起,可以最后再看
2022-01-12 07:06:30
解析一下普通的Io按鍵驅動如何寫和實現(xiàn)
,解析一下普通的Io按鍵驅動如何寫和實現(xiàn),如果有大神看出有錯誤的東西,請指教。此篇作為學習和交流之用。謝謝大家。 首先普通的io 口按鍵來說的話,主要分為兩種情況,一種是低推...
2021-12-10 08:13:03
請教一個關于U盤邏輯單元設置的問題?
我在獲取最大邏輯單元時返回了01, 按理說應該有兩個盤符啊,怎么只有一個呢,奇怪。枚舉都成功了有大俠幫忙指點指點,謝了!如圖所示: 2013-3-25 17:30 上傳下載附件 (907.61 KB) 邏輯單元返回值為1
2013-03-26 16:18:21
請問CAN中斷接收的初始化、接收部分代碼如何寫?
請教一下各位:在TL2515_CAN例程中,CAN接收采用查詢方式,能不能提示一下CAN中斷接收的初始化、接收部分代碼如何寫?
2020-05-20 07:17:30
請問CC2530多對1要如何寫?
, pTxData, APP_PAYLOAD_LENGTH)的RECEIVE_ADDR 可以決定哪一個接收端但如果是多對1 要如何寫,因為在1對1裡 接收端的程式好像沒有
2018-06-01 02:04:55
請問STM32F103如何寫捕獲的中斷回調函數(shù)
項目需要用同一個定時器的兩個輸入捕獲通道,現(xiàn)在分配的是TIM1 的CH3 和CH4,芯片為 STM32F103C8T6,用CUBEMX生成的代碼,現(xiàn)在不知如何寫捕獲的中斷回調函數(shù)。有誰能給個基于HAL的例子嗎?萬分感謝!
2018-11-19 08:46:05
請問vivado如何減少BRAM瓦片這一數(shù)量?如何操作?
嗨,我的設計在合成中使用141.5 BRAM瓦片。但是,在Zynq中可以使用140 BRAM瓦片。實施后,這個數(shù)量下降到133瓦。我的問題是vivado如何減少這一數(shù)量?實施?這點可以導致未來
2018-10-31 16:17:40
請問“邏輯單元”的意思是什么?
我想知道“邏輯單元”的意思..我知道“Block RAM”,“分布式RAM”“CLB”......以及ETC ..但是,我不知道“Logic Cell”..請讓我知道..謝謝!
2019-11-08 16:38:38
請問有多少門數(shù)等于1個邏輯單元?
嗨朋友們, 我想知道在Virtex 5 LX110中有多少門數(shù)等于1個邏輯單元?此外,從邏輯單元計算柵極數(shù)量的公式也是必須的。請盡快發(fā)給我。還要把附件文件和我的問題的答案一起發(fā)給我。再見,MUTHU
2020-05-28 17:18:52
請問這種情況在c語言里面該如何寫啊?
用的ads1231, 其測量正電壓值范圍0-0.5VREF/128,我取參考電壓2.5V這樣電壓值voltage=AD_DATA*0.009765625/83886077fffff=8388607這個在c 語言里面該如何寫啊??這樣子寫恐怕是不好處理的啊
2019-06-12 08:18:13
如何寫好狀態(tài)機
如何寫好狀態(tài)機:狀態(tài)機是邏輯設計的重要內容,狀態(tài)機的設計水平直接反應工程師的邏輯功底,所以許多公司的硬件和邏輯工程師面試中,狀態(tài)機設計幾乎是必選題目。本章在引入
2009-06-14 19:24:4996
如何寫代碼減少邏輯單元的使用數(shù)量?
盡量不要使用"大于""小于"這樣的判斷語句, 這樣會明顯增加使用的邏輯單元數(shù)量 .看一下報告,資源使用差別很大.
2017-02-11 11:31:11941
數(shù)字電路的基本邏輯單元—門電路
內容提要: 本章系統(tǒng)地介紹數(shù)字電路的基本邏輯單元門電路,及其對應的邏輯運算與圖形描述符號,并針對實際應用介紹了三態(tài)邏輯門和集電極開路輸出門,最后簡要介紹TTL集成門和CMOS集成門的邏輯功能、外特性
2017-10-26 17:27:599
可配置邏輯單元(CLC)
本視頻介紹了可配置邏輯單元(CLC),該靈活外設可用于整合片上和片外邏輯信號,用來產(chǎn)生不同的輸出值,可以在多種條件下將器件從低功耗休眠模式喚醒。嵌入式設計人員還可以利用時序邏輯特性開發(fā)簡單的狀態(tài)機,而無需CPU干預。此外,CLC還具有系統(tǒng)信號互連與路由功能,包括時鐘源、片外事件和外設輸出或中斷信號。
2018-06-07 02:46:004224
如何寫一個簡短的Python代碼做一個換臉程序的詳細概述
在這篇文章中將介紹如何寫一個簡短(200行)的 Python 腳本,來自動地將一幅圖片的臉替換為另一幅圖片的臉。
2018-07-09 10:48:474198
一文詳解xilinx CLB基本邏輯單元
CLB是xilinx基本邏輯單元,每個CLB包含兩個slices,每個slices由4個(A,B,C,D)6輸入LUT和8個寄存器組成。
2022-04-24 14:48:553407
詳解邏輯單元的內部結構
邏輯單元(Logic Element,LE)在FPGA器件內部,用于完成用戶邏輯的最小單元。一個邏輯陣列包含16個邏輯單元以及一些其他資源, 在一個邏輯陣列內部的16個邏輯單元有更為緊密的聯(lián)系,可以實現(xiàn)特有的功能。
2022-06-15 16:50:212604
評論
查看更多