FPGA 及數位電路基礎小知識(一)

2021-08-21 07:10:05 字數 2814 閱讀 8838

布斯演算法:輸入兩個訊號a,b。輸出是乙個數值m = a x b。

對於n位乘數y,布斯演算法檢查其2的補碼形式的最後1位和乙個隱含的低位,命名為yi-1,對於不同的i,考察yi和yi-1,當兩位相同時,存放積的累加器p值不變,當yi=0且yi-1 = 1時,被乘數乘以2的i次方加到p中,當yi = 1且yi-1 = 0時,從p中減去被乘數乘以2的i次方。演算法結束後,p中得數即為乘法的結果。

布斯演算法還有另一種變形,「見一左位走,遇零移位減」

綜合:fpga的綜合指從硬體描述檔案生成網表的過程。也就是說如何實現邏輯已經定下來了。

也就是說,綜合之後就可以看到rtl結構圖了。但是綜合之後還沒有與目標晶元連線。也就是說管腳指定和邏輯分布在哪些區域仍然是未知的

綜合就是把hdl語言轉換成綜合網表的過程。

綜合網表就是綜合的結果,除了包含從hdl語言中infer的與非門等組合邏輯和暫存器等時序邏輯,還包含fpga特有的各種原語如lut等以及這些模組的屬性和約束資訊。

//丶unread

一、鎖存器

鎖存器(latch)---對脈衝電平敏感,在時鐘脈衝的電平作用下改變狀態

鎖存器是電平觸發的儲存單元,資料儲存的動作取決於輸入時鐘(或者使能)訊號的電平值,僅當鎖存器處於使能狀態時,輸出才會隨著資料輸入發生變化。

鎖存器不同於觸發器,它不在鎖存資料時,輸出端的訊號隨輸入訊號變化,就像訊號通過乙個緩衝器一樣;一旦鎖存訊號起鎖存作用,則資料被鎖住,輸入訊號不起作用。鎖存器也稱為透明鎖存器,指的是不鎖存時輸出對於輸入是透明的。

鎖存器(latch):我聽過的最多的就是它是電平觸發的,呵呵。鎖存器是電平觸發的儲存單元,資料儲存的動作取決於輸入時鐘(或者使能)訊號的電平值,當鎖存器處於使能狀態時,輸出才會隨著資料輸入發生變化。(簡單地說,它有兩個輸入,分別是乙個有效訊號en,乙個輸入資料訊號data_in,它有乙個輸出q,它的功能就是在en有效的時候把data_in的值傳給q,也就是鎖存的過程)。

應用場合:資料有效遲後於時鐘訊號有效。這意味著時鐘訊號先到,資料訊號後到。在某些運算器電路中有時採用鎖存器作為資料暫存器。

缺點:時序分析較困難。

不要鎖存器的原因有二:1、鎖存器容易產生毛刺,2、鎖存器在asic設計中應該說比ff要簡單,但是在fpga的資源中,大部分器件沒有鎖存器這個東西,所以需要用乙個邏輯門和ff來組成鎖存器,這樣就浪費了資源。

優點:面積小。鎖存器比ff快,所以用在位址鎖存是很合適的,不過一定要保證所有的latch訊號源的質量,鎖存器在cpu設計中很常見,正是由於它的應用使得cpu的速度比外部io部件邏輯快許多。latch完成同乙個功能所需要的門較觸發器要少,所以在asic中用的較多。

二、觸發器

觸發器(flip-flop,簡寫為 ff),也叫雙穩態門,又稱雙穩態觸發器。是一種可以在兩種狀態下執行的數字邏輯電路。觸發器一直保持它們的狀態,直到它們收到輸入脈衝,又稱為觸發。當收到輸入脈衝時,觸發器輸出就會根據規則改變狀態,然後保持這種狀態直到收到另乙個觸發。

觸發器(flip-flops)電路相互關聯,從而為使用記憶體晶元和微處理器的數字積體電路(ic)形成邏輯門。它們可用來儲存一位元的資料。該資料可表示音序器的狀態、計數器的價值、在計算機記憶體的ascii字元或任何其他的資訊。

有幾種不同型別的觸發器(flip-flops)電路具有指示器,如t(切換)、s-r(設定/重置)j-k(也可能稱為jack kilby)和d(延遲)。典型的觸發器包括零個、乙個或兩個輸入訊號,以及時鐘訊號和輸出訊號。一些觸發器還包括乙個重置當前輸出的明確輸入訊號。第乙個電子觸發器是在2023年由w.h.eccles和f.w.jordan發明的。

觸發器(flip-flop)---對脈衝邊沿敏感,其狀態只在時鐘脈衝的上公升沿或下降沿的瞬間改變。

t觸發器(toggle flip-flop,or trigger flip-flop)設有乙個輸入和輸出,當時鐘頻率由0轉為1時,如果t和q不相同時,其輸出值會是1。輸入端t為1的時候,輸出端的狀態q發生反轉;輸入端t為0的時候,輸出端的狀態q保持不變。把jk觸發器的j和k輸入點連線在一起,即構成乙個t觸發器。

應用場合:時鐘有效遲後於資料有效。這意味著資料訊號先建立,時鐘訊號後建立。在cp上公升沿時刻打入到暫存器。

三、暫存器

暫存器(register):用來存放資料的一些小型儲存區域,用來暫時存放參與運算的資料和運算結果,它被廣泛的用於各類數字系統和計算機中。其實暫存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含儲存電路。暫存器的儲存電路是由鎖存器或觸發器構成的,因為乙個鎖存器或觸發器能儲存1位二進位制數,所以由n個鎖存器或觸發器可以構成n位暫存器。 工程中的暫存器一般按計算機中位元組的位數設計,所以一般有8位暫存器、16位暫存器等。

對暫存器中的觸發器只要求它們具有置1、置0的功能即可,因而無論是用同步rs結構觸發器,還是用主從結構或邊沿觸發結構的觸發器,都可以組成暫存器。一般由d觸發器組成,有公共輸入/輸出使能控制端和時鐘,一般把使能控制端作為暫存器電路的選擇訊號,把時鐘控制端作為資料輸入控制訊號。

暫存器的應用

1. 可以完成資料的並串、串並轉換;

2.可以用做顯示資料鎖存器:許多裝置需要顯示計數器的記數值,以8421bcd碼記數,以七段顯示器顯示,如果記數速度較高,人眼則無法辨認迅速變化的顯示字元。在計數器和解碼器之間加入乙個鎖存器,控制資料的顯示時間是常用的方法。

3.用作緩衝器;

4. 組成計數器:移位暫存器可以組成移位型計數器,如環形或扭環形計數器。

四、移位暫存器

移位暫存器:具有移位功能的暫存器稱為移位暫存器。

暫存器只有寄存資料或**的功能。有時為了處理資料,需要將暫存器中的各位資料在移位控制訊號作用下,依次向高位或向低位移動1位。移位暫存器按數碼移動方向分類有左移,右移,可控制雙向(可逆)移位暫存器;按資料輸入端、輸出方式分類有序列和並行之分。除了d邊沿觸發器構成移位暫存器外,還可以用諸如jk等觸發器構成移位暫存器

FPGA 及數位電路基礎小知識(二)

verilog coding錯誤型別 命名1.訊號 n一般表示低有效,訊號定義 暫存器溢位 一定要寫default,以防跑飛 封裝成ip 1.新建乙個工程 2.屬性設定 3.synthesis 生成ngc.file 4.生成乙個只含埠訊號的頂層檔案 5.工程b中 同步復位和非同步復位 復位訊號起作用...

數位電路基礎草稿

zynq名詞術語 ps 處理系統 processing system 就是與fpga無關的arm的soc的部分。pl 可程式設計邏輯 progarmmable logic 就是fpga部分。mio multiuse i o.與ps部分相連,對pl部分透明 不可見 純ps操作。emio extenda...

FPGA入門到精通系列1 數位電路基礎知識

本文主要介紹數位電路基礎知識,用最簡潔的內容介紹最核心的知識。1 數位電路是什麼?數位電路是利用電源電壓的高電平和低電平分別表示1和0,進而實現資訊的表達。模擬訊號 隨時間連續變化的訊號。處理模擬訊號的電路就是模擬電路。數碼訊號 隨時間不連續變化的訊號,離散變化。處理數碼訊號的電路就是數位電路。2 ...