理解了寄存器的原理,在了解實(shí)際電路設(shè)計(jì)方法之前,先讓我們了解一下,在數(shù)字集成電路設(shè)計(jì)時(shí),需要處理一些什么樣的信號(hào)類型,并且如何通過(guò)常用的電路結(jié)構(gòu)實(shí)現(xiàn)對(duì)這些信號(hào)的處理,以便應(yīng)用到實(shí)際電路的設(shè)計(jì)工程中。
時(shí)鐘信號(hào)
RTL設(shè)計(jì)以同步電路設(shè)計(jì)為基礎(chǔ),這意味著在某個(gè)局部電路中,所有寄存器都被同一個(gè)時(shí)鐘驅(qū)動(dòng)。
這里所說(shuō)的時(shí)鐘,是一種規(guī)律性的邏輯電平信號(hào),每隔一個(gè)固定周期,就會(huì)進(jìn)行一次電平的翻轉(zhuǎn)。如下圖所示:
一般說(shuō)來(lái),時(shí)鐘信號(hào)包含以下四個(gè)關(guān)鍵屬性:
- 周期(Period)/頻率(Frequency)
時(shí)鐘信號(hào)一次邏輯1和隨后一次邏輯0總共持續(xù)的時(shí)間,被稱之為該時(shí)鐘的時(shí)鐘周期(Clock Period),測(cè)量時(shí)一般是從某個(gè)上升沿50%VDD到下一個(gè)上升沿50%VDD之間的時(shí)間,如上圖中的TP1和TP2。而周期的倒數(shù),則稱之為該時(shí)鐘工作頻率(Clock Frequency)。
比如說(shuō),一個(gè)時(shí)鐘信號(hào)的時(shí)鐘周期如果是1ns,則其工作頻率就是1/1ns=1GHz。 - Duty Cycle
在一個(gè)時(shí)鐘周期內(nèi),該時(shí)鐘信號(hào)電平信號(hào)保持為邏輯1的時(shí)間,占用整個(gè)時(shí)鐘周期的比例。比如說(shuō),一個(gè)時(shí)鐘信號(hào)的時(shí)鐘周期是1ns,而邏輯1的持續(xù)時(shí)間是0.3ns,則該時(shí)鐘信號(hào)的duty cycle為0.3/1=30%。
一般來(lái)說(shuō),我們希望使用的時(shí)鐘,是一個(gè)duty cycle為50%的驅(qū)動(dòng)信號(hào)。原因是如果使用該時(shí)鐘的反相時(shí)鐘,則其反相時(shí)鐘的duty cycle仍然能保持50%,這在電路設(shè)計(jì)或時(shí)序收斂時(shí),會(huì)更容易實(shí)現(xiàn),電路設(shè)計(jì)的工作頻率也更容易提高。 - 時(shí)鐘抖動(dòng)(Jitter)
時(shí)鐘抖動(dòng),Jitter,有2種概念:
一種是相鄰周期時(shí)鐘抖動(dòng),即相鄰2個(gè)周期的時(shí)鐘周期差值。以上圖所示,即為,這種差值主要會(huì)影響時(shí)序分析中setup timing的計(jì)算,需要添加在時(shí)鐘路徑上。
另一種是時(shí)鐘源最大抖動(dòng),即某時(shí)鐘產(chǎn)生源,比如說(shuō)晶體振蕩器(Oscillator)、鎖相環(huán)(PLL、DLL)等,在不同工作環(huán)境(如溫度、電壓、濕度、負(fù)載等)、不同生產(chǎn)批次(生產(chǎn)工藝偏差),同一個(gè)配置條件下,可能產(chǎn)生的最大時(shí)鐘周期與最小時(shí)鐘周期的差值。該數(shù)值主要用于評(píng)估時(shí)鐘產(chǎn)生源的質(zhì)量。 - 變換時(shí)間(Transition Time)
字面理解transition time即時(shí)鐘變換時(shí)間,可以理解為時(shí)鐘上升或下降需要的時(shí)間,這與其他邏輯信號(hào)中transition time是一個(gè)概念。如圖中所示TRise以及TFall,分別表示時(shí)鐘信號(hào)的上升時(shí)間和下降時(shí)間。一般工程上認(rèn)定的測(cè)量方式,是10%VDD與90%VDD之間的變換時(shí)間。實(shí)際在標(biāo)準(zhǔn)單元庫(kù)的時(shí)序建模時(shí),一部分測(cè)量點(diǎn)使用了30%VDD和70%VDD并進(jìn)行數(shù)學(xué)延展,可以參考標(biāo)準(zhǔn)單元庫(kù)的使用說(shuō)明文件來(lái)進(jìn)一步理解。
與普通邏輯信號(hào)的transition time相比,為了更好的控制時(shí)鐘質(zhì)量,需要盡可能減小其數(shù)值,以減小對(duì)setup或hold時(shí)序違背的影響。其次在設(shè)計(jì)時(shí)鐘驅(qū)動(dòng)電路時(shí),需要盡可能的平衡輸出端PMOS和NMOS的驅(qū)動(dòng)能力,已獲得相當(dāng)?shù)纳仙睾拖陆笛刈儞Q時(shí)間,由此提高驅(qū)動(dòng)電路輸出信號(hào)的噪聲容限。
在RTL設(shè)計(jì)當(dāng)中,只要是驅(qū)動(dòng)時(shí)序邏輯元件(如寄存器、鎖存器)時(shí)鐘輸入端的信號(hào),都會(huì)被默認(rèn)為時(shí)鐘信號(hào)。如下圖所示,流經(jīng)S-D1和S-D2兩段路徑的信號(hào)都會(huì)被看做時(shí)鐘信號(hào),
而針對(duì)驅(qū)動(dòng)每一個(gè)時(shí)序邏輯元件的時(shí)鐘輸入端,則額外存在以下2個(gè)關(guān)鍵屬性:
- 時(shí)鐘延時(shí)(Clock Latency)
時(shí)鐘延時(shí),即從時(shí)鐘源到達(dá)該元件時(shí)鐘驅(qū)動(dòng)端的延時(shí)。如T1與T2,會(huì)因?yàn)榻?jīng)過(guò)不同的邏輯,到達(dá)所需驅(qū)動(dòng)時(shí)序元件的延時(shí)有所不同。控制T1和T2以及同樣從S端到達(dá)其他寄存器延時(shí)盡量相同,叫做時(shí)鐘樹(shù)平衡(Clock Tree Balance),是時(shí)序收斂的重要手段。
- 時(shí)鐘延時(shí)差(Clock Skew)
可以看出,從同一個(gè)時(shí)鐘源,到達(dá)不同元件的時(shí)鐘驅(qū)動(dòng)端,都會(huì)有所不同。則T1與T2的差值,就可以看成兩個(gè)寄存器的時(shí)鐘延時(shí)差,即Clock Skew,當(dāng)然對(duì)于從S端到達(dá)所有需要驅(qū)動(dòng)的寄存器,時(shí)鐘延時(shí)最大值與最小值只差,就是這顆時(shí)鐘樹(shù)的Clock Skew。
剛才說(shuō)了,為了做時(shí)鐘樹(shù)平衡,需要盡量減少Clock Skew,不過(guò),在具體工程時(shí),可能會(huì)因?yàn)楣脑O(shè)計(jì)、特殊路徑優(yōu)化等的需要,在時(shí)鐘樹(shù)上,為某些特定的葉部(對(duì)于時(shí)鐘樹(shù)來(lái)說(shuō),把源頭看成根部root,則每一個(gè)時(shí)序邏輯終點(diǎn)叫做葉部,即leaf)增加Latency,以加大clock skew。
電平信號(hào)與脈沖信號(hào)
RTL的設(shè)計(jì)是建立在同步電路基礎(chǔ)上的,因此寄存器與寄存器之間的通訊,都是通過(guò)時(shí)鐘作為同步信號(hào)來(lái)實(shí)現(xiàn)的。這里所說(shuō)的電平信號(hào),一般指信號(hào)寬度大于等于2個(gè)時(shí)鐘周期的數(shù)據(jù)。而脈沖信號(hào),這里指只有1個(gè)時(shí)鐘周期信號(hào)寬度的數(shù)據(jù)。
而對(duì)于遠(yuǎn)遠(yuǎn)小于1個(gè)時(shí)鐘周期信號(hào)寬度的數(shù)據(jù),行業(yè)內(nèi)多數(shù)稱之為毛刺,是不可靠的數(shù)據(jù)。
-
寄存器
+關(guān)注
關(guān)注
31文章
5363瀏覽量
121014 -
數(shù)字信號(hào)
+關(guān)注
關(guān)注
2文章
982瀏覽量
47638 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59925 -
VDD
+關(guān)注
關(guān)注
1文章
312瀏覽量
33453 -
PLL電路
+關(guān)注
關(guān)注
0文章
92瀏覽量
6451
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論