數字設計中的時鐘與約束

2021-02-19 芯司機

微信的規則進行了調整

希望大家看完文章多點「在看」和「點讚」,喜歡的話也點個分享

這樣芯司機的推送才能繼續出現在你的訂閱列表裡

才能繼續跟大家分享集成電路設計行業的優質內容啦~

來源:內容來自http://www.cnblogs.com/IClearner/ ,作者:IC_learner,謝謝。

做完了synopsys的DC workshop,涉及到時鐘的建模/約束,這裡就來聊聊數字中的時鐘(與建模)吧。主要內容如下所示:

    補充:時鐘分配策略

首先來談談同步電路與異步電路。那麼首先就要知道什麼是同步電路、什麼是異步電路?

對於同步時序電路,不同的文章有不同的說法,大致有下面的定義方法:

①對於比較嚴格的定義:一個電路是同步電路,需要滿足以下條件:

每一個電路元件是寄存器或者是組合電路

至少有一個電路元件是是寄存器

所有寄存器都接收同一個時鐘電路

若有環路,則環路至少包含一個寄存器

在上面的嚴格定義下,可以得到下面的電路不是同步電路:


是組合邏輯,不符合定義

是組合邏輯和鎖存器,不符合定義

下面的形式肯定是同步電路:

寄存器的時鐘都是CLK

下面的電路嚴格上說不算是同步電路:

因為右邊的時鐘經過兩個反相器的延時,時鐘信號不同

②對於不算很嚴格的同步電路定義有:

所有時鐘的時鐘來自同一個時鐘源:比如下面的(分頻)電路

        

CLKA、CLKC、CLKD、CLKE都是由300M這個時鐘源分頻而來,因此這個系統屬於同步電路系統。

當不是來自同一個時鐘源時,只要CLOCK的周期有倍數關係並且相互之間的相位關係是固定的就可以算是同步電路,比如, 電路中用了10ns, 5ns, 2.5ns 三個時鐘,這三個時鐘不是由同一個時鐘源分頻來的,但是這三個時鐘的周期有倍數關係並且相位關係固定:10ns是5ns的2倍,是2.5ns的兩倍,之間是整數倍關係;相位關係是固定的,因此也算是同步電路。

CLOCK之間沒有倍數關係或者相互之間的相位關係不是固定的,比如電路中用5ns, 3ns 兩個CLOCK,這兩個時鐘不是來自同一個時鐘源,兩者之間沒有周期關係,因此是異步電路。

關於是不是同步時鐘的問題,還要具體情況具體分析,在後面的垮時鐘域也會涉及有關同步時鐘的問題,這裡就不再繼續闡述了,以免越解釋越麻煩。

此外也有的資料顯示:同步電路是由時序電路(寄存器和各種觸發器)和組合邏輯電路構成的電路。同步時序邏輯電路的特點是各觸發器的時鐘端全部連接在一起,並接在系統時鐘端,只有當時鐘脈衝到來時,電路的狀態才能改變。改變後的狀態將一直保持到下一個時鐘脈衝的到來,此時無論外部輸入 x 有無變化,狀態表中的每個狀態都是穩定的。

一般的時鐘,我們都指的是全局時鐘,全局時鐘在晶片中的體現形式是時鐘樹。

時鐘樹,是個由許多緩衝單元(buffer cell)平衡搭建的時鐘網狀結構,如下圖所示:

               

首先不得不說,實際的時鐘除了周期/頻率、相位、沿、電平屬性外,還有其他的屬性,也就是:不是下面這樣子規規整整的:

             

為什麼呢?那是因為時鐘有下面的屬性(「實際的buff」):

①時鐘的偏移(skew):時鐘分支信號在到達寄存器的時鐘埠過程中,都存在有線網等延時,由於延時,到達寄存器時鐘埠的時鐘信號存在有相位差,也就是不能保證每一個沿都對齊,這種差異稱為時鐘偏移(clock skew),也叫時鐘偏斜。時鐘的偏移如下圖所示:

 

此外,時鐘skew與時鐘頻率並沒有直接關係,skew與時鐘線的長度及被時鐘線驅動的時序單元的負載電容、個數有關。

 

②時鐘抖動(jitter):相對於理想時鐘沿實際時鐘存在不隨時間積累的、時而超前、時而滯後的偏移稱為時鐘抖動,簡稱抖動,如下圖所示:

                 

時鐘的抖動可以分為隨機抖動(Random Jitter,簡稱Rj)和固有抖動(Deterministic jitter):

 

時鐘的偏移和時鐘的抖動都影響著時鐘網絡分枝的延遲差異(相位差異),在Design  Compiler裡面,我們用時鐘的不確定性(uncertainty)來表示這兩種情況的影響。

 

③時鐘的轉換時間(transition) :時鐘的上升沿跳變到下降沿或者時鐘下降沿跳變到上升沿的時間,這個時間並不是如左下圖所示那樣完全沒有跳變時鐘的,而是像右下圖那樣,時鐘沿的跳變時間就是時鐘的轉換時間(後面約束的時候會有相關的解釋)。


 

理想

帶轉換時間的時鐘

 

時鐘的轉換時間與與單元的延時時間(也就是器件特性)還有電容負載有關。

 

④時鐘的延時(latency) :時鐘從時鐘源(比如說晶振)出發到達觸發器時鐘埠的延時,稱為時鐘的延時,包含時鐘源延遲(source latency)和時鐘網絡的延遲(network latency),如下圖所示:

             

  

時鐘源延遲(clock source latency),也稱為插入延遲(insertion delay),是時鐘信號從其實際時鐘原點到設計中時鐘定義點(時鐘的輸入引腳)的傳輸時間,上圖是3ns。

時鐘網絡的延遲( clock network latency)是時鐘信號從其定義的點(埠或引腳)到寄存器時鐘引腳的傳輸,經過緩衝器和連線產生的延遲(latency),上圖是1ns。

OK,時鐘的附加的buff屬性差不多就是這樣了。

記得我剛剛學習FPGA的時候,在verilog代碼中,經常使用內部產生的時鐘,也就是用內部的一個信號充當另外一個always塊的時鐘沿敏感列表,如下圖所示:

       

 

實際上,這種內部時鐘不建議使用,一個是因為產生內部時鐘的邏輯是有延時的,導致A_clk產生也會延時,Data與A_clk會有延時,就會有亞穩態的穩壓;另外一個就是由觸發器生成A_clk的驅動能力問題。

在一個系統裡面,很有可能會用到多個時鐘輪流驅動一些觸發器,為了適應不同的數據速率要求,進行時鐘切換。有時為了節約功耗,也會把高速時鐘切換到低速時鐘,或者進行時鐘休眠操作,多路時鐘如下圖所示:

               

這樣的時鐘一般情況下也會導致一些問題,比如時鐘切換時導致後面驅動的寄存器建立時間不足,當滿足一定的條件時,這種多路復用器的時鐘也是可以使用的,要滿足的要求有:

時鐘復用電路一旦上電工作之後,就不要對復用邏輯進行更改,以免更改之後產生不確定錯誤。

在測試的時候,設計電路繞過時鐘多路邏輯來選擇普通的時鐘,也就是使用普通的時鐘進行測試。

在時鐘進行切換的時候,寄存器要處於復位的狀態,以免在切換之後建立時間不夠而進入亞穩態。

在時鐘切換的時候,可能會產生一些短暫的錯誤,但是這些錯誤對整個系統沒有影響。


對於系統要求非常嚴格的,比如時鐘切換很頻繁,有不能夠在復位的時候切換,而且也不允許有短暫的錯誤,那麼時鐘就不能這樣子進行切換了,就要使用其他的時鐘切換方案或者進行時鐘同步了。至於多時鐘切換的方案,以後有時間再學習補充。

 

門控時鐘可是低功耗設計的寵兒,關於門控時鐘的資料也有一大堆,下面就來寫寫門控時鐘吧。

門控時鐘也就是在使能信號有效的時候,把時鐘打開;使能信號無效的時候,時鐘關閉。時鐘關閉之後,它所驅動的寄存器就不會反正,因此也就降低了動態功耗。

門控時鐘最開始的電路是:

         

 

這種門控時鐘bug多,我們先來看看這種電路的bug波形是怎麼樣的,也就是知道問題所在,好讓我們改進:

           

從波形圖中可以看到,門控使能信號如果在時鐘的高電平的時候開啟或者關閉,就會導致產生的門控時鐘高電平被截斷,變成毛刺;門控使能信號對在時鐘低電平時跳變對產生的門控時鐘沒有影響。因此我們的針對點就是高電平時的翻轉。

因此我們就可以通過設置一種電路,讓門控使能信號在通過這個邏輯電路之後,僅僅在時鐘低電平的時候進行翻轉,而在時鐘高電平的時候,不能翻轉也就是保持。從而我們就想到了低電平觸發的鎖存器,使能信號通過低電平的鎖存器之後,如果使能信號在高電平跳變,鎖存器的輸出信號是不會改變的,電路圖如下所示:

           

 

波形如下所示:

           

這裡需要注意的是:

PS:當涉及毛刺的問題的時候,特別是由於使能信號與時鐘而產生的毛刺,鎖存器起很大的作用。

一般情況,在進行晶片設計的時候,我們不必自己設計門控時鐘,大多是ASIC/SoC生產商都有對應的門控時鐘單元。

行波時鐘,也就是一個觸發器的輸出用作另一個觸發器的時鐘輸入,經常用在異步計數器和分頻電路設計中,如下圖所示:

           

異步計數器/分頻時鐘雖然原理簡單、設計方便,但級連時鐘(行波時鐘)最容易造成時鐘偏差,級數多了,很可能會影響其控制的觸發器的建立時間和保持時間,使設計難度加大;轉換的方法是採用同步計數器。


雙邊沿時鐘的系統是指在時鐘的上升沿和下降沿都進行數據傳輸:

             

很顯然,這樣子數據的傳輸速率就增加一倍了。DDR就是採用雙邊沿傳輸數據的技術,傳輸示意圖如下所示:

             

然而一般情況下,我們不建議使用雙邊沿時鐘,這是因為:

由於上下沿都用,要求時鐘的質量很高,一般的時鐘源很難達到,成本高。

由於時鐘的抖動等不確定因素的存在,容易使時鐘的佔空比發生改變,因此容易引起建立時間和保持時間的違規。

當使用的雙沿時鐘之後,時鐘的約束變得複雜,此外當某處發生違規之後,違規的路徑的查找難度比單沿時鐘大。

還有一點就是測試難度比較大,雙沿電路的測試電路必定有別與單沿的測試電路。進行掃描測試時,上下沿的時鐘先都得插入多路復用器進行選擇。

對實際的時鐘進行建模/約束了,實際上就是對這幾個屬性進行設置,下面講解在Design Compiler中怎麼進行約束。

在默認的情況下,邏輯綜合時,即使一個時鐘要驅動很多寄存器,DC也不會在時鐘的連線上加時鐘緩衝器(clock buffer)以加強驅動能力,時鐘輸輸入端直接連接到所有寄存器的時鐘引腳,也就是說,對於高扇出(high fanout)的時鐘連線,DC不會對它做設計規則的檢查和優化,如下左圖所示。在時鐘連線上加上時鐘緩衝器或作時鐘樹的綜合(clock tree synthesis)一般由後端(back end)工具完成,後端工具根據整個設計的物理布局(placement)數據,進行時鐘樹的綜合。加入時鐘緩衝器後,使整個時鐘樹滿足skew, latency和transition的目標。時鐘樹綜合後的電路如右下圖所示。

                

 

左上圖的時鐘網絡是理想的,其延遲(latency)和時鐘的偏差(skew)及轉變時間(transition)默認值為零。顯然,理想時鐘網絡與實際的情況不同,使用理想時鐘網絡將產生過於樂觀的時間結果。為了能在綜合時比較準確地描述時鐘樹,我們需要為實際的時鐘樹建模,使邏輯綜合的結果能與版圖(layout)的結果相匹配。

好吧,上面都不是重點,下面才是內容:

我們用下面的命令建立時鐘那幾個屬性模型:

create_cloclk、set_clock_uncertainty、set_clock_latency、set_clock_transition分別進行時鐘的周期、偏移、延時、轉換約束:

                

時鐘偏差的建模:

set_clock_uncertainty:對時鐘的偏移和抖動進行建模,也就是對時鐘的偏差進行建模,具體使用為:

 

假設時鐘周期為10ns,時鐘的建立偏差為0. 5ns,用下面命令來定義進行約束:

create_clock -period 10 [get_ports  CLK]

set_ clock_ uncertainty  -setup  0.5  [get_clocks CLK]

理想的時鐘:

             

 

只對建立時間的偏差時鐘建模:

             

 

如果對建立時間和保持時間都進行偏差建模,則有:

               

 

在默認的情況下,"set-clock_uncertainty」命令如果不加開關選項「-setup」或「-hold",那麼該命令給時鐘賦予相同的建立和保持偏差值。

這是一種對偏差建模的方式,也就是對建立時間和保持時間進行建模的方式;除此之外,還可以對時鐘的上升沿和下降沿進行偏差建模,比如上升沿的偏差是0.2ns,下降沿的偏差是0.5ns,則有:

                 

 

set_ clock_ uncertainty  -rise  0.2 -fall 0.5  [get_clocks CLK]

一般情況下,我們只約束建立時間,也就是只用第一種方式進行時鐘偏差建模。

當對建立時間偏差建模之後,這時,時鐘周期、時鐘偏差和建立時間的關係如下圖所示:

             

假設時鐘周期是10ns,建立時間偏差是0.5ns,觸發器的建立時間是0.2ns,這時候從圖中就可以看到,留給寄存器間的路徑的裕量就減少了,也就是說,對寄存器間的約束就變得更加嚴格了,寄存器的翻轉延時、組合邏輯延時與線網延時等這些延時的和必須小於9.3ns,否則就違反了FF2的建立時間。這一點是要注意的。

對於保持時間,在未考慮時鐘偏移之前,前面說了,組合邏輯的延時要大於觸發器的保持時間(具體原因參考前面的描述),當對時鐘偏差建模之後,這時,時鐘周期、時鐘偏差和保持時間的時序關係如下所示:

                

 

時鐘轉換時間的建模:

由於時鐘並不是理想的方波,用set_ clock_ transition來模擬時鐘的轉換(transition)時間。默認的上升轉換時間為從電壓的20%上升至80%的時間,下降的轉換時間為從電壓的80%下降至20%的時間。如果set_clock_transition命令中不加開關選項「-setup」或「-hold" ,那麼該命令給時鐘賦予相同的上升和下降轉換時間。一般情況下,我們只約束最大的轉換時間,如最大轉換時間是0.2ns,那麼就加上-max選項:

set_clock_transition  -max    0.2    [get_clocks  CLK]

時鐘延遲的建模:

時鐘從時鐘源(比如說晶振)出發到達觸發器時鐘埠的延時,稱為時鐘的延時,包含時鐘源延遲(source latency)和時鐘網絡的延遲(network latency)。我們使用set_clock_latency進行時鐘延時的建模。一般情況下,我們把時鐘源延遲(source latency)和時鐘網絡的延遲(network latency)分開來,因為時鐘源延時需要建模,是因為DC是真的不知道這延時是多大,但是對於時鐘網絡的延遲,DC在布局布線前不知道,但是在布局布線後就可以計算出來時鐘網絡的延時了,因此在布局布線之後進行綜合時,就沒有必要對時鐘網絡進行延時,因此就要把這兩個延時分開來進行約束。

先說布局布線之前:時鐘周期為10ns,時鐘源到晶片的時鐘埠時間是3ns,時鐘埠都內部觸發器的時間是1ns,如下圖所示:

             

那麼就用下面的命令進行建模:

create_clock  -period  10  [get-ports CLK]

set_clock_latency  -source  3  [get_clocks CLK]

set_clock_latency 1  [get_clocks CLK]

通常情況下,我們約束最大的延時,也就是加上-max的選項,表示最大延時是多少(如set_clock_latency  -source -max  3  [get_clocks CLK] 就是時鐘源到晶片時鐘埠最大的時間是3ns)。

布局布線之後:就可以計算實際的線網延時,就要使用

set_propagated_clock  [ get_clocks CLK] 這個命令代替上面的

set_clock_latency 1  [get_clocks CLK]這個命令。

基本的時鐘建模就OK了,下面進行總結並給出我們這個例子中使用的約束腳本,理想時鐘和實際時鐘的對比,如下圖所示:

                    

因此總結就是,對實際時鐘的建模/約束如下所示:      

  

                  

 

補充1:時鐘分配策略

時鐘的分頻從規劃初始就應該考慮,也就是從系統層面上去考慮,而不是等到後端設計時再考慮。時鐘分配策略考慮因素有:

系統的時鐘分配計劃(主要是時鐘樹方案、各個模塊的時鐘頻率等);

時鐘的最小延時(主要是根據系統運行的速度來定義最小的延時要求,這個與時鐘分配計劃應該是有重疊的地方,具體我不是很了解);

時鐘緩衝(這個是考慮負載的問題,往往也是在設計時鐘樹時應該考慮的問題);

消除時鐘偏移(時鐘偏移總是存在的,如何降到最小或使其達到預期的效果,也是要考慮的);

門控時鐘、軟硬體協同設計等省電模式的考慮(這個需要具體問題具體分析了,還可以從低功耗設計的角度進行觀察)。

 

 

E課網(www.eecourse.com)是摩爾精英旗下專業的集成電路教育平臺,致力於半導體行業高質量集成電路專業人才的培養。平臺以集成電路企業崗位需求為導向,提供貼合企業環境的實訓平臺,通過線上線下的培訓方式, 快速培養學員符合企業需求。

E課網擁有成熟的培訓平臺、完善的課程體系、強大的師資力量,規劃中國半導體精品課程體系168門,涵蓋整個集成電路產業鏈,並擁有4個線下實訓基地。至今深度培養總人數15367人,為行業直接輸送專業人才4476名。與143所高校建立深度合作關係,共舉辦企業專場IC培訓240場。

相關焦點

  • XDC約束技巧——時鐘篇
    Xilinx的新一代設計套件Vivado中引入了全新的約束文件XDC,在很多規則和技巧上都跟上一代產品ISE 中支持的UCF 大不相同,給使用者帶來許多額外挑戰。Xilinx 工具專家告訴你,其實用好XDC 很容易,只需掌握幾點核心技巧,並且時刻牢記:XDC 的語法其實就是Tcl 語言。
  • 數字時鐘設計電路圖匯總(七款數字時鐘電路圖)
    打開APP 數字時鐘設計電路圖匯總(七款數字時鐘電路圖) 發表於 2018-01-26 11:14:30   數字時鐘設計電路圖(一)   本設計主要採用中斷的方式,採用INT0,INT1中斷,分別由按鍵s1,s2觸發。
  • 前端設計-JavaScript簡單數字時鐘開發實例
    01所需素材本數字時鐘設計實現格式為00:00:00類型結構的數字時鐘,因此需要準備時鐘顯示相關數字及間隔符號的素材。動態數字時鐘整體設計按照顯示格式要求,使用div展示每一位數字或者間隔符。在計時周期內調用處理函數獲取系統當前的時間,並根據當前時間計算出每一個div中應當展示的內容,最終實現時鐘的動態效果。主要設計階段如下:1、整體HTML頁面布局設置這個階段主要完成時鐘構成的8個DIV的布局設計,為下一步顯示時鐘提供基礎。
  • 學數字設計的軟體工程師該了解的時鐘知識
    編譯:伯樂在線/聽風如果你有軟體工程師背景,想找一份數字設計工程師的工作,那麼你需要做的第一件事就是儘可能早的學習時鐘概念。對很多從軟體工程師轉來的初級硬體設計工程師來說,時鐘概念都是一件惱人的事情。如果沒有時鐘,他們就可以將HDL(Hardware Description Language,硬體描述語言)轉換為一種程式語言,如$ display,if和for循環,如同其他的任何程式語言一樣。 然而,這些初級設計師所忽視的時鐘,通常是數字設計中最基礎的部分。沒有什麼時候會比在審查初級HDL 設計工程師第一次設計的產品的時候,所發現的問題更多。
  • FPGA設計小技巧(時鐘/性能/編程)
    只用一個時鐘沿來寄存數據,使用時鐘的兩個沿是不可靠的,如果時鐘沿「漂移」,就會導致時序錯誤。 不要隨意將內部信號作為時鐘,如門控時鐘和分頻時鐘,而要使用CLKDLL或者DCM產生的時鐘,或者可以通過建立時鐘使能或者DCM產生不同的時鐘信號。
  • 採用FPGA設計SDH設備時鐘
    該晶片還提供微處理器接口,用於各數字鎖相環的參考源選擇、工作模式的設置以及晶片內部工作狀態的查詢。1.1 系統時鐘的設計實現  從圖1可以看出,晶片輸出的系統時鐘sysclkout,主要由一路全數字鎖相環(ADPLL)[4]、主備互鎖模塊(實際上也是一路ADPLL)和FPGA的內部PLL (鎖相環2)共同完成。
  • 約束、時序分析的概念介紹
    很多人詢問關於約束、時序分析的問題,比如:如何設置setup,hold時間?如何使用全局時鐘和第二全局時鐘(長線資源)?如何進行分組約束?如何約束某部分組合邏輯?如何通過約束保證異步時鐘域之間的數據交換可靠?如何使用I/O邏輯單元內部的寄存器資源?如何進行物理區域約束,完成物理綜合和物理實現?為了解決大家的疑難,我們將逐一討論這些問題。
  • 你和數字後端設計大師的差距原來在這裡。
    我相信很多工作兩三年的數字後端工程師也不是很清楚,更不用說那些正準備或剛踏入數字後端這個family中的新成員。之所以想跟大家分享下這個topic,原因有兩點。第一,了解大牛所謂的定義(小編自己花了半個小時總結列出了幾點)。第二,讓大家明確自己的努力方向,使自己也變成傳說中的牛人,哥就是要變成傳說。只要夠努力,不斷往本篇所講的方向努力,終有一天你們一定可以的。
  • 北京天良數字網絡時鐘系統
    1、系統概述:天良全數字子母鍾系統主要為醫院提供準確、標準的時間,系統採用GPS與北鬥衛星導航定位系統中的時標信號作為標準時間源對母鐘的時鐘信號源進行校準,向醫療場所的時鐘及區域網內的計算機提供準確的時鐘信號
  • 如何使用參數約束編輯器進行PCB布局布線設計
    如何使用參數約束編輯器進行PCB布局布線設計 佚名 發表於 2020-04-08 15:14:31 如今PCB設計考慮的因素越來越複雜,如時鐘、串擾、阻抗、檢測、製造工藝等等
  • FPGA設計開發軟體Quartus II的使用技巧之: 約束及配置工程
    設計好工程文件後,首先要進行工程的約束。約束主要包括器件選擇、管腳分配及時序約束等。時序約束屬於較為高級的應用,通過時序約束可以使工程設計文件的綜合更加優化。下面對這幾種約束方式進行介紹。按照用戶的設計需求進行管腳定義,然後再編譯整個工程文件,即可進行下載。
  • VerilogHDL概述與數字IC設計流程
    毫無疑問,就是用它來進行數字邏輯設計了,主要是在FPGA(field programer gate array ,現場可編程邏輯門陣列)的邏輯設計和數字集成電路設計前端的邏輯設計中用到。下面就來談談FPGA的設計流程和數字IC設計的流程吧。這個設計流程我就不展開說了,畢竟有一部分是跟後面的數字IC設計流程重複。
  • 數字時鐘小部件
    數字時鐘小部件 生活工具 大小: 196.29KB
  • 安徽京準NTP數字網絡時鐘系統
    1、系統概述:安徽京準數字子母鍾系統主要為醫院提供準確、標準的時間,系統採用GPS與北鬥衛星導航定位系統中的時標信號作為標準時間源對母鐘的時鐘信號源進行校準,向醫療場所的時鐘及區域網內的計算機提供準確的時鐘信號,監視所有時鐘的工作狀態,從而使網絡和每個有安裝該子鐘的位置均能顯示與衛星時間信號保持一致的北京時間
  • 時鐘抖動對光纖接入數字中頻系統的影響分析
    圖1  對於常見的數字中頻系統,例如RRU、數字光纖直放站,遠端設備中的時鐘信號都是從近端通過光纖傳輸過來的,由於光纖傳輸的色散影響,原有時鐘參考信號在通過光口晶片恢復出來後,其抖動指標會惡化。而在遠端設備中(如圖1),這個時鐘信號將會作為整個系統的參考時鐘,包括ADC,DAC,調製器和鎖相環等等。如果這個參考時鐘信號的抖動性能不佳,將會造成系統中上述器件的性能惡化。所以在光纖接入的數字中頻系統中,時鐘抖動設計非常重要。  ■時鐘相噪對ADC性能的影響分析  對於數字中頻系統中的ADC,SNR指標是我們非常關注的指標之一。這個指標會影響系統的動態範圍。
  • FPGA+DSP導引頭信號處理中FPGA設計關鍵技術
    FPGA+DSP的數字硬體系統正好結合了兩者的優點,兼顧了速度和靈活性。本文以導引頭信號處理系統為例說明FPGA+DSP系統中FPGA的關鍵技術。  2 系統組成  本系統南一片FPGA和一片DSP來組成,FPGA在實時並行計算實現標準數位訊號處理算法的能力遠強於DSP,因此數字接收系統信號處理要用到的FIR濾波、FFT、IFFT等算法,在FPGA中實現要遠快於用DSP,且FPGA廠商提供了非常豐富易用的能實現數位訊號處理的參數Core.可以大大簡化開發過程。
  • 10個日本大師設計的時鐘,時間真的太美了!
    1972年,渡邊力受邀為日本東京日比谷火車站設計大鐘,並最終完成了世界經典名作Pole clock。鐘盤設計保持了渡邊力一貫的極簡主義風格,白色背景上用簡單清晰的灰色方塊示意數字。時鐘中央12點的位置有一個紅色小燈不斷閃爍,象徵著時間的分秒流逝。清晰的讀表方式將功能發揮到了極致,可稱為公共時鐘設計的典範。
  • TextyClock用文本替換了越獄iPhone上的數字時鐘
    如上面的示例所示,該調整以英語拼寫了當前時間,而不是顯示您可能現在已經習慣的數字時鐘。TextyClock可在鎖定屏幕時鐘和狀態欄時鐘上使用,因此無論您在iOS的哪個位置,您都將看到基於文本的時間指示器:TextyClock是完全可定製的,因此您可以在「設置」應用中找到一個首選項窗格,您可以在其中根據自己的喜好對其進行個性化設置
  • 數字電路設計之需要注意的幾個點
    這是一個在邏輯設計中注意事項列表,由此引起的錯誤常使得設計不可靠或速度較慢,為了提高設計性能和提高速度的可靠性,必須確定設計通過所有的這些檢查。內部鎖存器常常會引入門控時鐘,門控時鐘會產生毛刺使得設計變得不可靠。  性能  1. 邏輯級的時延不要超過時序預算的百分之五十  每個路徑邏輯級時延可以在邏輯級時序報告或布局後時序報告中找到,詳細分析了每個路徑之後,時序分析器將生成每個路徑時延的統計量,檢查一下總共的邏輯級時延,確保不超過時序預算的百分之五十。
  • 諾獎書摘:人為設計拍賣機制,在270萬約束條件中發現價格
    米爾格羅姆發現,當存在「關聯評價」,即競標者們在出價過程中了解彼此的估計價值時,拍賣人就可能通過交易機制的設計來提高自身的期望收益。米爾格羅姆用「市場設計」這個術語概括自己的研究方向。為什麼有必要用人為設計的拍賣機制替代原生市場的自發配置機制?