晶元設計之CDC非同步電路 三

2021-10-17 23:13:44 字數 2225 閱讀 8159

晶元設計之cdc非同步電路(二)

晶元設計之cdc非同步電路(一)

上面兩篇簡單總結了非同步電路設計,下面接著介紹gray碼轉換。格雷碼的特點就是任意兩個相鄰碼只有一位元不同。

我們接下來介紹二進位製碼、格雷碼的轉換原理、不同**實現風格比較。

(一)二進位製碼 -> 格雷碼

二進位製碼的最高位作為格雷碼的最高位;二進位製碼的高位、次高位相異或得到次高位格雷碼;格雷碼其餘位依此類推;

直接上圖,簡單明瞭:

編碼風格1://code style 1:

integer i;always @(*)begingray[ptr-1]=bin[ptr-1];for(i=0; i編碼風格2://code style 2:

assign gray = (bin >> 1) ^ bin;

兩種rtl編碼對比:**推崇:大道至簡!編碼風格1:

編碼風格2:

資源對比:其實一樣,都5個異或門;

時序對比:關鍵路徑是多長?有意思的是,可以和下文格雷碼轉二進位製碼的關鍵路徑pk下。

(二)格雷碼 -> 二進位制

格雷碼最高位作為二進位製碼的最高位,二進位製碼的高位與格雷碼次高位相異或,得到次高位的二進位製碼,其餘位依此類推;

直接上圖,簡單明瞭:

編碼風格1://code style 1:

integer i;always @(*)beginbin[ptr-1]= gray[ptr-1];for(i=ptr-2; i>=0; i=i-1)bin[i]=bin[i+1]^gray[i];end
編碼風格2://code style 2:

generategenvar i0;for(i0=0; i0**我們嘗試用generate來實現,效果和編碼風格1本質是相同的,都是複製硬體電路;

細品一下,就會發現我們省略了下面一行:

bin[ptr-1]= gray[ptr-1];

那麼當編碼風格2的i0=ptr-1時,不存bin[ptr],**如何編譯呢?

綜合電路告訴了我們答案:

兩種rtl編碼對比:**推崇:大道至簡!不過,值得細品的東西來了。

編碼風格1:

編碼風格2:

資源對比:風格1有5個異或門,風格2有6個異或門;

時序對比:細品!兩種電路critical path都是誰?幾級combo path?

所以,**精簡的寫法,資源不一定少,時序也不一定好。

只有心中有電路,rtl才最優,這就需要經驗的積攢和反覆打磨了。

感謝閱讀文章,如果文章有用,麻煩點個「在看」或**分享。

晶元設計之CDC非同步電路 二

上文晶元設計之cdc非同步電路 一 對比講述了非同步電路在前 中的行為與實際晶元的行為區別,本文繼續講幾種常用的非同步電路處理。一 單bit訊號同步器 最經典的2dff 1 bit同步器如下,下圖結構通常用於單bit控制訊號的非同步處理 絕大數情況下,當第乙個暫存器r1進入亞穩態後,在第二級暫存器r...

電路設計 物聯網晶元資訊 GPRS

物聯網體系包含三部分 手機端,雲端,單車端 產品終端 gsm,gps,藍芽。共享單車 小藍車,bluegogo 聯發科技 mt2503 可穿戴裝置設計的晶元,單核設計,頻率260 mhz。支援藍芽3.0,整合2g數據機。其最大特色在於支援gps和北斗多重衛星定位系統,具有全球衛星導航系統 gnss ...

復位電路設計 非同步復位 同步釋放

以下內容摘自正點原子的 邏輯設計開發指南 復位電路是數字邏輯設計中非常常用的電路,不管是 fpga 還是 asic 設計,都會涉及到復位,一般 fpga或者 asic 的復位需要我們自己設計復位方案。復位指的是將暫存器恢復到預設值。一般復位功能包括同步復位和非同步復位。復位一般由硬體開關觸發引起,也...