色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

數電什么的到底有沒有用

方一強2年前17瀏覽0評論

數電什么的到底有沒有用?

什么是數字電路

用數字信號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由于它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。現代的數字電路由半導體工藝制成的若干數字集成器件構造而成。邏輯門是數字邏輯電路的基本單元。存儲器是用來存儲二進制數據的數字電路。從整體上看,數字電路可以分為組合邏輯電路和時序邏輯電路兩大類。

學習數字電路的重要性

隨著社會的進步和科學技術的發展,數字系統和數字設備已廣泛應用于各個領域,大規模,超大規模集成電路技術的不斷完善使得數字電路在現代電子系統的比重越來越大,數字電路建立了根本是信號的數字處理,這門學科現在發展的很快,隨之,數字電路的設計理念也日新月異,可以說現在設備之間的競爭很大程度上就是其數字處理能力的抗衡,是數電工程師在推動系統的變遷,他們是系統的核心競爭力量。

現在的超大規模集成芯片已經向系統級芯片的方向發展,FPGA(Field Programmable Gate Array即現場可編程門陣列,它是在PAL、GAL、PLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點) 已經可以達到ASIC(ApplicaTIon Specific Intergrated Circuits即專用集成電路,是指應特定用戶要求和特定電子系統的需要而設計、制造的集成電路) 的水平(如XILINX的V2 pro),所以工程師們有了更大發揮空間。說句半玩笑的話,一旦實現軟件無線電,模電的工程師就可以下崗了。因而電子信息技術、計算機技術以及相關技術領域的工程師和技術人員必須掌握數字系統的基礎知識。挑戰和機遇并存,作為當代大學生和有志青年,儲備知識、培養能力是當務之急,因此學好數字電子技術是非常必要的。

數字電路的特點

1、同時具有算術運算和邏輯運算功能

數字電路是以二進制邏輯代數為數學基礎,使用二進制數字信號,既能進行算術運算又能方便地進行邏輯運算(與、或、非、判斷、比較、處理等),因此極其適合于運算、比較、存儲、傳輸、控制、決策等應用。

2、實現簡單,系統可靠

以二進制作為基礎的數字邏輯電路,可靠性較強。電源電壓的小的波動對其沒有影響,溫度和工藝偏差對其工作的可靠性影響也比模擬電路小得多。

3、集成度高,功能實現容易

集成度高,體積小,功耗低是數字電路突出的優點之一。電路的設計、維修、維護靈活方便,隨著集成電路技術的高速發展,數字邏輯電路的集成度越來越高,集成電路塊的功能隨著小規模集成電路(SSI)、中規模集成電路(MSI)、大規模集成電路(LSI)、超大規模集成電路(VLSI)的發展也從元件級、器件級、部件級、板卡級上升到系統級。電路的設計組成只需采用一些標準的集成電路塊單元連接而成。對于非標準的特殊電路還可以使用可編程序邏輯陣列電路,通過編程的方法實現任意的邏輯功能。

數字電路的優點

1、穩定性好

數字電路不像模擬電路那樣易受噪聲的干擾。

2、可靠性高

數字電路中只需分辨出信號的有與無,故電路的組件參數,可以允許有較大的變化(漂移)范圍。

3、可長期存儲

數字信息可以利用某種媒介,如磁帶、磁盤、光盤等進行長時期的存儲。

4、便于計算機處理

數字信號的輸出除了具有直觀、準確的優點外,最主要的還是便于利用電子計算機來進行信息的處理。

5、便于高度集成化

由于數字電路中基本單元電路的結構比較簡單,而且又允許組件有較大的分散性,這就使我們不僅可把眾多的基本單元做在同一塊硅片上,同時又能達到大批量生產所需要的良率。

數字電路的學習方法

數字電路所需的先修課程是電路分析基礎和模擬電路,后續課程是微機原理、微型計算機、接口技術等。

數字電路在研究的對象和方法上都跟模擬電路有很大的不同,表1把它們作了一個簡單的對比。

顯然,模擬電路和數字電路的差異是很大的,初學者應當在學習方法上作一些改變,以適應數字電路的特點,才能取得良好的效果。

1、在數字電路中,所有的變量都歸結為0和1兩個對立的狀態。通常,我們只需關心信號的有或無,電平的高或低,開關的通或斷,等等,而不必理會某個變量的詳細數值。比如電平幅值的微小變化就可能毫無意義。

2、數字電路的研究方法以邏輯代數(又稱布爾代數)作為數學基礎。它主要研究輸入,輸出變量之間的邏輯關系,并建立了一套邏輯函數運算及化簡的方法。布爾代數又稱雙值代數,由于其變量取值只有0和1兩種可能,比之模擬電路,數字電路中沒有復雜的計算問題。

3、由于數字集成電路技術的高度發展,數字電路更鮮明地體現了管路合一的特點。初學者應充分注意這一特點。一般來說,學習電路結構不是我們的目的,目的是掌握電路功能。

數字電路學習要點

1、數字電路基礎

要知道:數字信號中的1和0所表示的廣泛含義,十進制數二進制數十六進制數的表示方法和相互之間的轉換方法;8421bcd碼的表示方法及其與十進制數的轉換方法,邏輯函數邏輯變量邏輯狀態的含義,與或非所表示的邏輯事件邏輯函數真值表的含義及表示規律和方法。

會寫出:邏輯與、或、非、與非、或非、與或非、異或、同或等的邏輯表達式,真值表、邏輯符號及其規律;邏輯函數式、真值表及其邏輯圖三者之間的轉化,負邏輯符號的邏輯式。 會使用:邏輯代數化簡邏輯函數式;最小項及其編號表示邏輯函數式,卡諾圖化簡邏輯函數式。

2、集成邏輯門電路

要知道:邏輯電路高電平低電平與正負邏輯狀態的關系。cmos反相器閾值電壓uth的含義與所表示的性能。邏輯符號控制端符號上非號、小圓圈含義及其門電路上小圓圈符號含義的區別。三態門使能控制的作用及輸出高阻的含義。

會畫出:od門oc門傳輸門三態門的邏輯符號。與門、或門、非門、與非門、或非門輸入波形所對應的輸出波形。

會使用:oc門od門傳輸門三態門的功能。 會處理:cmos集成邏輯電路的存放和焊接的措施,各種門電路空余的輸入端,各種門電路系列間的接口。

3、組合邏輯電路

要知道:組合邏輯電路的特點,組合邏輯電路的分析步驟和設計步驟,編碼器譯碼器數據分配器和數據選擇器的含義。

會分析:用邏輯函數化簡表達式、真值表描述的組合邏輯電路的邏輯功能。

會設計:根據邏輯事件設定輸入和輸出變量及其邏輯狀態的含義,根據因果關系列出真值表,寫出邏輯函數式并進行化簡后的邏輯圖。

會使用:用功能表表示的各種中規模集成器件的編碼器、優先編碼器、譯碼器、數碼顯示七段譯碼管、數據選擇器的引腳功能。

4、集成觸發器

要知道:觸發器的工作特點、基本rs觸發器功能、同步觸發器特點、脈沖邊沿觸發器工作的特點,t和t’觸發器的功能。

會畫出:與非門、或非門組成基本rs觸發器的電路及邏輯符號圖,上升邊沿觸發的d觸發器、下邊沿觸發的jk觸發器和邏輯符號圖及其輸出波形圖,用jk和d觸發器構成t’觸發器的連線圖。

會寫出:rs觸發器,d觸發器,jk觸發器的狀態方程式。

會背出:jk觸發器的輸出q的狀態在cp下降沿作用下與輸入jk狀態下的關系。

會使用:集成觸發器的直接置位,復位端sd、rd的狀態在各種情況下的設置方法。

5、時序邏輯電路

要知道:時序邏輯電路的工作特點、同步時序邏輯電路的分析方法, 寄存器和移位存儲器及計數器的功能,同步和異步的含義。

會使用:由功能表所反映的雙向移位寄存器、各種類型各種型號中規模集成設計器引腳功能、異步和同步清零或置數。

會畫出:用反饋清零、反饋置數方法在異步或同步情況下的n進制計數器電路連線。

6、脈沖電路

要知道:微分積分電路功能;555定時器各引腳功能、閾值輸入端及輸出端電壓的邏輯規律;單穩態觸發器、多諧振蕩器和施密特觸發器三種電路的基本功能。 會選用:實現脈寬定時,延時控制脈沖,脈寬調制、波形變換、整形、聲響電源、時鐘脈沖、標準時基脈沖信號等功能的電路結構類型。 會識別:各類結構單穩態觸發器對輸入觸發脈寬的要求和有效觸發的沿口類型。

會畫出:施密特觸發器的波形變換或整形的輸出波形。

會計算:各類結構觸發器的輸出脈寬、各類結構多諧振蕩器的振蕩頻率。

7、半導體存儲器

要知道:只讀存儲器(rom)和隨機存儲器(ram)的邏輯功能和兩者性能的區別,存儲器地址譯碼器的功能,地址輸入線與字線w下標i數值的關系,字線位線存儲單元的區別。

prom的三種類型及其工作性能的區別,ram中兩類存儲單元結構的區別。

會計算:半導體存儲器的存儲容量。

會畫出:ram存儲容量字擴展和位擴展的電路連線。

8、數/模和模/數轉換器

要知道:數/模和模/數轉換器的功能、r~2r倒t形電阻網路dac輸入數字量與輸出電壓關系式;數模轉換器的采樣保持量化和編碼含義、v~t型雙積分式和逐次逼近型兩種ad轉換器的基本工作原理和特點。

會計算:用電壓值表示不同位數的adc或dac的分辨率和允許最大誤差。

9、數字電路與模擬電路學習中的區別

數字電路所需的先修課程是電路分析基礎和模擬電路,后續課程是微機原理、微型計算機、接口技術等。

學習數字電路的注意事項

1、注重掌握基本概念、基本原理、基本分析和設計方法

數字電子技術發展很快,各種用途的電路千變萬化,但它們具有共同的特點,所包含的基本原理和基本分析和設計方法是相通的。我們要學習的不是各種電路的簡單羅列,不是死記硬背各種電路,而是要掌握它們的基本概念、基本原理、基本分析與設計方法。只有這樣才能對給出的任何一種電路進行分析,或者根據要求設計出滿足實際需要的數字電路。

2、抓重點,注重掌握功能部件的外特性

數字集成電路的種類很多,各種電路的內部結構及內部工作過程千差萬別,特別是大規模集成電路的內部結構更為復雜。學習這些電路時,不可能也沒有必要一一記住它們,主要是了解電路結構特點及工作原理,重點掌握它們的外部特性(主要是輸入和輸出之間的邏輯功能)和使用方法,并能在此基礎上正確地利用各類電路完成滿足實際需要的邏輯設計。

3、注意歸納總結

數字集成電路的應用廣泛,學好數字電子技術課程需要掌握一些典型電路,因為這些典型電路是構成數字系統的部件。掌握它們包括了解它們的功能、結構特點及應用背景,并注意總結歸納,掌握其本質。例如,譯碼器和數據選擇器都可以實現邏輯函數,但兩者的區別是,一個n位二進制輸入端的譯碼器,只能用于產生變量數不大于n的組合邏輯函數,它可以附加門電路,實現多個輸出的組合邏輯電路二一個n個地址輸人端的數據選擇器,可以實現變量數為n+1的邏輯函數。由于數據選擇器只有一個輸出端,所以只能實現單個輸出的邏輯函數。

4、注意理論聯系實際

電子技術基礎課程學習的最終落腳點是對實際電路的分析和設計。經過理論分析和計算得到 的設計結果還必須搭建實際電路進行測試,以檢驗是否滿足設計要求。由于電子器件的電氣特性具有分散性,理論設計出的電路在實際中也會出現意想不到的現象。例如用實驗驗證計數器74161和一些門構成的六十進制計數譯碼顯示電路。一些同學的理論設計和線路連接均沒有問題,但實驗中出現了由競爭冒險產生的錯誤計數,此時只要在反饋門的輸出端與地之間接一個小電容。即可消除競爭冒險。

5、注意新技術的學習

電子技術的發展是以電子器件的發展為基礎的,新的器件層出不窮,舊的器件隨時被淘汰。因此教材中出現的集成電路芯片有可能已不生產,要用發展的觀點使用教材。

真值表/卡諾圖

1.建立時間和保持時間

Setup time, Tsu 建立時間 在時鐘沿到來之前數據穩定不變的時間,如果建立的時間不滿足,那么數據將不能在這個時鐘上升沿被穩定的打入觸發器

Hold time, Th 保持時間 時鐘沿到來之后數據穩定不變的時間,如果保持時間不滿足,那么數據同樣也不能被穩定的打入觸發器

Clock-to-Output Delay,Tco 數據輸出延遲,輸出響應時間 當時鐘有效沿變化后,數據從輸入端到輸出端的最小時間間隔。

觸發器輸出的響應時間,也就是觸發器的輸出在clk時鐘上升沿到來之后多長的時間內發生變化,也即觸發器的輸出延時。

數據到達時間Tda:

數據建立時間Tsu:

建立時間裕量(Setup Slack):

保持時間裕量(hold slack):

上述時序關系也解釋了為什么時鐘頻率過快或者數據延時太大,都會導致錯誤的時序。(與STA靜態時序分析有關)

2.施密特觸發器

當輸入電壓高于正向閾值電壓,輸出為高;當輸入電壓低于負向閾值電壓,輸出為低;當輸入在正負向閾值電壓之間,輸出不改變。

這種雙閾值動作被稱為遲滯現象,表明施密特觸發器有記憶性。

施密特觸發器有兩個穩定狀態,可以把邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。例如將三角波、正弦波等變成矩形波。

3.格雷碼

任意兩個相鄰的碼字只有一位二進制數不同。

可以使裝置做數字步進時只改動最少的位元數以降低誤碼率。

4.鎖存器(latch)和觸發器(flip-flop)

都是時序邏輯(輸出不但與當前輸入有關還和上一次的輸出有關)

Latch是電平觸發,輸出同所有輸入信號有關,輸入信號變化,latch就變化;

Flip-flop受時鐘控制,只有在時鐘觸發時才采樣當前輸入,產生輸出。

區別:latch沒有時鐘端,無法做到同步,輸出容易產生毛刺;如果用門電路來搭建,latch消耗的門資源比ff要少。

觸發器的電路圖由邏輯門組合而成,其結構均由R-S鎖存器派生而來。

在R-S鎖存器的前面加一個由兩個與門和一個非門構成的附加電路,則構成D觸發器。

為什么需要觸發器:觸發器能保存數據,保存電路狀態;觸發器是在時鐘邊沿觸發,用時鐘同步是讓整個電路能同步整齊劃一的工作;乘法器的計算部分是組合邏輯,不需要觸發器,計算后的結果可以用觸發器保存起來。

5.阻塞賦值(=)和非阻塞賦值(<=)

在同一個always塊中,阻塞賦值先計算RHS表達式,不允許其他verilog語句干擾,然后賦值給LHS,才允許其他賦值語句執行。(其后的賦值語句是在前一句賦值語句結束后再開始賦值的)

非阻塞賦值開始時計算RHS的表達式,同時就更新LHS,賦值結束時停止更新。(也可以理解為一直在計算RHS,最后時刻更新LHS)這個過程中,其他verilog語句都能同時操作。

注意:

1.非阻塞賦值只能對寄存器變量賦值(reg),只能在initial和always塊中。

2.時序電路/鎖存器 建模——非阻塞賦值

用always塊建立組合邏輯電路——阻塞賦值

在同一個always塊建立時序和組合邏輯電路——非阻塞賦值

3.在一個always塊中不要既用阻塞由用非阻塞;不要在一個以上always塊中對同一個變量賦值

6.同步電路與異步電路

這里指的是時序電路。

組合邏輯電路:任意時刻的輸出僅僅取決于該時刻的輸入,與電路原來的狀態無關。

時序邏輯電路:任意時刻的輸出不僅取決于當時的輸入,還取決于電路原來的狀態。(具有記憶功能)

根據各級觸發器時鐘端的連接方式可以將時序電路分為同步/異步。

同步時序電路所有操作都是在同一時鐘嚴格的控制下步調一致地完成的。

異步時序電路,不存在單一的主控時鐘,主要是用于產生地址譯碼器、FIFO和異步RAM的讀寫控制信號脈沖。

關于延時:

異步電路的延時:buffer或者兩級非門

同步電路的延時:大的延時:計數器;小的延時:D觸發器打節拍

7.跨時鐘域數據交換

進行同步處理。

單bit數據:打兩拍(兩級并不能完全消除亞穩態危害,但是大大減少其發生概率)

多bit數據:異步FIFO(或雙口RAM)(以某個時鐘讀,在以某個時鐘寫,空/滿標志是關鍵)

多位數據也可以采用保持寄存器加握手信號的方法(多數據,控制信號,地址信號)

8.關于亞穩態

原因:在FPGA系統中,如果數據傳輸中不滿足觸發器的Tsu和Th,或者復位過程中復位信號的釋放相對于有效時鐘沿的恢復時間(recovery time)不滿足,就可能產生亞穩態,此時觸發器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態,在這段時間里Q端在0和1之間處于振蕩狀態,而不是等于數據輸入端D的值。這段時間稱為決斷時間(resolution time)。經過resolution time之后Q端將穩定到0或1上,但是穩定到0或者1,是隨機的,與輸入沒有必然的關系。

只要系統中有異步元件,亞穩態就無法避免

1.數據傳輸:數據在目的寄存器Tsu-Th時間窗口發生變化

2.異步復位:異步復位信號的撤銷時間在Trecovery(恢復時間)和Tremoval(移除時間)之內

3.同步復位:輸入端Din為高電平,而且復位信號的撤銷時間在clk的Tsu和Th內時候

常用FPGA器件的Tsu+Th約等于1ns,復位移除和恢復時間相加約等于1ns。

亞穩態發生概率 = (建立時間 + 保持時間)/ 采集時鐘周期

——>

(1) 降低系統工作時鐘,增大系統周期,亞穩態概率就會減小;

(2) 采用工藝更好的FPGA,也就是Tsu和Th時間較小的FPGA器件;

解決方法:

1.降低系統時鐘頻率

2.用反應更快的FF(Tsu和Th時間較小)

3.對異步信號進行同步處理:

多級D觸發器級聯:大部分資料都說的是第一級寄存器產生亞穩態后,第二級寄存器穩定輸出概率為90%,第三極寄存器穩定輸出的概率為99%(一般就搞個兩級);

采用FIFO對跨時鐘域數據通信進行緩沖;

4.對復位電路采用異步復位、同步釋放方式處理。

最終用sys_rst_n做系統的復位信號

5.改善時鐘質量,用邊沿變化快速的時鐘信號

9.靜態功耗與動態功耗

靜態:晶體管狀態穩定不變時的功耗(漏電流導致)

動態:晶體管開關狀態變化(電路翻轉)產生的功耗(大頭 70%~90%)

10.同步復位和異步復位

也可能綜合出:

優點:保證信號同步;綜合為更小的觸發器;復位時時鐘可以過濾毛刺

使用同步復位可能使綜合工具無法分辨分辨復位信號和其他控制信號,導致進行復位的控制邏輯遠離觸發器:

不好的:

優點:復位路徑上沒有延時;綜合工具能自動推斷出異步復位而不必加入任何綜合指令

異步復位的同步釋放:

11.補碼

在計算機系統中,數值一律用補碼來表示和存儲。原因在于,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬件電路。

12.低功耗設計(系統問題)

設計層次越高,功耗改善的程度越大:

工藝級

版圖和晶體管級

PTL級和邏輯級

系統級

RTL級:

時鐘是大頭:門控時鐘:無計算任務的部分時鐘停下

預計算技術:在一定的輸入條件下,使所有或部分輸入寄存器的負載無效,從而降低功耗

邏輯優化:減少信號的翻轉

組合邏輯優化:提取重復出現表達式、表達式替換、選擇性消除節點

路徑平衡:幾個輸入通過不同的路徑到達同一個門,要想辦法使各個路徑差不多長

系統級:

軟硬件劃分

指令級優化

電源管理

cache低功耗設計

總線低功耗設計

總線信號編碼,減少翻轉 例如格雷碼

算法的優化,包括流水線設計,并行設計

13.狀態機

以幾何圖形的方式描述時序邏輯的狀態轉移。

分類:

Moore:輸出(下一狀態)只與當前狀態有關

Mealy:輸出不僅與當前狀態有關,還與當前輸入有關

狀態編碼:

二進制編碼、 格雷碼 (Gray) 、獨熱碼 (one-hot) 、自定義編碼。

在小設計中可以考慮使用 Gray 碼或 one-hot。大設計中,不擔心邏輯資源不夠的話,可以考慮使用one-hot 編碼以提高速度。至于順序二進制編碼,一般不予考慮。但是要達到最佳性能,需要使用更高級的編碼算法,針對給定的狀態機進行分析。

描述方法:

兩段式:兩個always模塊,其中一個always模塊采用同步時序的方式描述狀態轉移,而另一個模塊采用組合邏輯的方式判斷狀態轉移條件、描述狀態轉移規律

三段式:

三個 always 模塊,一個 always 模塊采用同步時序的方式描述狀態轉移,一個采用組合邏輯的方式判斷狀態轉移條件、描述狀態轉換規律,第三個 always模塊使用同步時序電路描述每個狀態的輸出

電梯:

當前狀態current status——事件event——轉移狀態next status

自動售貨機

14.FPGA內部的資源

IOB:可編程輸入輸出單元,芯片與外界電路接口,完成不同電氣特性下對輸入輸出信號的驅動與匹配要求

CLB:可編程邏輯快,多個Slice和附加邏輯構成(Xilinx),可以實現組合邏輯、時序邏輯、配置成分布式RAM(LUT配置成)

BRAM:塊RAM,靈活,可以配置成單端口RAM,雙端口RAM,FIFO,CAM(內容地址存儲器)等,可以根據需要改變位寬和長度

DCM:數字時鐘管理模塊,

專用硬核:CPU,乘法器,DSP等

【 存儲資源:Block RAM(一些固定大小的存儲塊,要用就用一整塊,不占用邏輯資源,速度快);分布式RAM(靈活)】

【 可以實現RAM/ROM/CAM 的資源:block ram,flip-flop,LUT 】

15.FPGA開發流程

個人習慣:分析系統劃分模塊——個子模塊HDL實現——各子模塊前仿真——組成系統功能仿真——邏輯綜合——布局布線——靜態時序分析——后仿真——上板測試

盡量在底層模塊做邏輯,在高層盡量做例化,頂層模塊只做例化

前仿真:純粹的功能仿真,驗證電路的功能是否符合設計要求,不考慮電路門延遲與線延遲。

后仿真:綜合后的功能仿真和布局布線后的時序仿真。是指電路已經映射到特定的工藝環境下,綜合考慮電路的路徑延遲與門延遲的影響,驗證電路是否在一定時序條件下滿足設計構想的過程,是否存在時序違規。(必做)

16.FPGA——乘法器的設計

常見的有移位相加法,加法樹法,查表法,混合法……

1.移位相加

begin

dout=0;

for(i=0;i

dout=dout+((din_a_buf[i]==1)?(din_b_buf<

end

2.加法樹

上面的設計中,會產生大量組合邏輯,這就帶來了大量的延遲從而使乘法器的速率受到限制,為了提高速度,可以采用流水線的方法,將組合邏輯分割成一個一個小的組合邏輯,中間加上觸發器用來鎖存數據,這樣就可以大大提高頻率,引入觸發器僅僅是帶來了延遲而已

begin//流水線實現

din_a_buf<=din_a;

din_b_buf<=din_b;

buf0<=din_b_buf[0]?din_a_buf:0;

buf1<=din_b_buf[1]?din_a_buf<<1:0;

buf2<=din_b_buf[2]?din_a_buf<<2:0;

buf3<=din_b_buf[3]?din_a_buf<<3:0;

buf4<=din_b_buf[4]?din_a_buf<<4:0;

buf5<=din_b_buf[5]?din_a_buf<<5:0;

buf6<=din_b_buf[6]?din_a_buf<<6:0;

buf7<=din_b_buf[7]?din_a_buf<<7:0;

buf01<=buf0+buf1;

buf23<=buf2+buf3;

buf45<=buf4+buf5;

buf67<=buf6+buf7;

buf02<=buf01+buf23;

buf46<=buf45+buf67;

dout<=buf02+buf46;

end

3.查找表

查表法,就是建一個表,里面存放了所有的乘法結果,乘數和被乘數用來作為地址去查找里面的乘積,此種方法可以大大提高乘法的速率,但是當乘法位數很大時會要求產生很大的表格,所以此種方法適合位數較小的乘法,特別適合有一個乘數為固定的乘法,如濾波器中的乘法就可以采用此種方法設計

【查找表本質上是一個RAM,例如4輸入的LUT可以看成有4位地址線的16x1的RAM,使用時輸入地址-查表-輸出】

17.FPGA——除法器的設計

對于2:長除法: 比較 相減 移位(狀態機實現)

16位 / 8位https://blog.csdn.net/stanary/article/details/77426697

首先被減數16位在前邊拼接7位0,拼接后不會改變被除數的大小,而且方便向下操作。拼接后將此23位數稱為mid。之后取mid的高8位與除數作比較,若大于除數,則減去除數,結果低位拼接一。若小于除數,則驗證最高位是不是0,若是則左移一位,結果拼接0.若不是則用高九位減去除數,結果拼接兩個0.然后將差和后15位以及末尾一個0拼接,實現結果循環向前。在計算的同時用計數器計數來確定運行到的位數。在進行以上操作,最終得到結果。

將被除數,擴展成16位的數據,低8位為被除數的值,高八位的值全為0。有開始信號,對16位數據data賦值,然后開始運算。比較data的高八位和除數的值,如果大于0,說明被除數大,將此時商置1,賦值給data的最低位,然后將被除數高八位減去除數。然后將data向左移位一位,繼續比較。最終計算8次后。Data的高8位數據就為所求的余數,低八位就為所求的商。

或者把除法轉換成了查表、乘法和移位:

18.奇數分頻

19.靜態時序分析

STA,Static Timing Analysis

靜態時序分析(STA)告訴我們電路的實際表現如何,而提供約束(SDC文件,對時序的一些要求)來告訴分析工具我們希望電路的表現應該是怎樣。

20.競爭與冒險

某一輸入變量經過不同的傳播路徑,到達電路某個匯合點的時間有先有后,這種現象叫競爭;

由于競爭使輸出發生瞬時錯誤的現象叫冒險。

判斷方法:代數法(布爾表達式中有相反的信號);卡諾圖(有兩個相切的卡諾圈,并且相切處沒有被其他的卡諾圈包圍);實驗法:示波器觀察

解決方法:加濾波電路,消除毛刺;加選通信號,避開毛刺;增加冗余項,消除邏輯冒險