<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 三模冗余在ASIC設(shè)計中的實現(xiàn)方法

          三模冗余在ASIC設(shè)計中的實現(xiàn)方法

          作者: 時間:2012-03-08 來源:網(wǎng)絡(luò) 收藏

          圖3為三模冗余加固后的寄存器的頂層模塊的仿真波形圖,圖中標線處電路的狀態(tài)出現(xiàn)了錯誤(由輸入d可以看出正確的狀態(tài)應(yīng)該是在第3個時鐘上升沿后輸出才變?yōu)?),其原因是由于TMR_DFF是組合邏輯輸出,在第1個上升沿的時候,reg0的輸入D經(jīng)clk,clk_skew[1]采樣后,out[0]變?yōu)?,reg1的輸入out[0]經(jīng)clk_skew[0]采樣后,其q2(圖1電路中的信號)變?yōu)?,電路狀態(tài)仍為1,在第二個上升沿來的時候,由于reg1的q2已經(jīng)為1,所以reg2的輸入out1經(jīng)clk采樣后,其q0變?yōu)?,多數(shù)表決后out1變?yōu)?,電路狀態(tài)為3,reg2的輸入out1經(jīng)clk_skew[1],clk_skew[0]采樣后,其q1,q2變高,輸出out2變高,電路狀態(tài)變?yōu)?,就出現(xiàn)了狀態(tài)出錯的狀況。

          本文引用地址:http://www.ex-cimer.com/article/177765.htm

          c.jpg


          如果減小時鐘間的延遲,電路可能會出現(xiàn)不定態(tài),原因也是由于組合邏輯的提前輸出,這里就不再討論了。

          2 三模冗余的
          2.1 修改網(wǎng)表二次綜合
          DC綜合的功能是讀取的RTL代碼并且根據(jù)時序約束,綜合RTL代碼到結(jié)構(gòu)級,從而產(chǎn)生一個映射后的門級網(wǎng)表,其中一個重要的步驟是指定綜合所使用的綜合庫,綜合庫一般由流片廠商提供,庫中包含了引腳到引腳的時序,面積,引腳類型和功耗等信息,綜合后的門級網(wǎng)表中的單元也就是庫中所定義的單元。
          三模冗余的加固過程實際上就是為中的每個觸發(fā)器生成2個冗余觸發(fā)器并加上表決邏輯,而RTL代碼中無法反應(yīng)出這點,因此可以對原綜合后的門級網(wǎng)表進行修改,把觸發(fā)器改為三模冗余觸發(fā)器,用門級描述編寫三模冗余觸發(fā)器模塊,然后和修改的網(wǎng)表一起再次綜合就可得到三模冗余加固后的網(wǎng)表文件。值得說明的是DC綜合庫里面有多種類型的觸發(fā)器,比如SDFF,EDFF,SEDFF,JK,DFF,即使在綜合腳本中限定只用DFF觸發(fā)器,也會有好幾種,所以對于不同的單元要編寫相應(yīng)的三模冗余觸發(fā)器模塊(其結(jié)構(gòu)如圖1所示)。此外由于有3路時鐘信號,所以要編寫時鐘生成模塊,其功能是由clk產(chǎn)生互有延遲的2路時鐘信號。
          首先在Synopsys的綜合工具DsignCompiler下對原設(shè)計的RTL代碼進行綜合,得到電路的門級網(wǎng)表。門級網(wǎng)表中的電路實際上就是通過例化綜合庫的單元來描述電路的結(jié)構(gòu),可以使用形式驗證工具Formality來驗證RTL代碼和綜合后的門級網(wǎng)表在功能上是否一致。
          然后修改門級網(wǎng)表,在網(wǎng)表中增加線網(wǎng)類型ck[2:0],并且實例化clkgen模塊,再把網(wǎng)表里面的觸發(fā)器改為三模冗余觸發(fā)器,并修改其時鐘端口為{clk,ck[1:0]},由于綜合庫中不含有這兩個模塊,這時網(wǎng)表中就出現(xiàn)了兩個綜合工具沒有處理的模塊,時鐘生成模塊和三模冗余觸發(fā)器模塊,修改后的網(wǎng)表就不是完全映射后的門級網(wǎng)表。
          最后對修改后的網(wǎng)表,時鐘生成模塊及三模冗余觸發(fā)器模塊進行再次綜合,這次綜合實際上就是對時鐘生成模塊和三模冗余觸發(fā)器的綜合,把它們映射為綜合庫中的單元,得到的門級網(wǎng)表即是三模冗余加固后設(shè)計的門級網(wǎng)表。
          2.2 建立三模冗余觸發(fā)器的庫單元
          由于三模冗余觸發(fā)器單元的時鐘端口有3位,即使在庫中加入三模冗余觸發(fā)器的單元,綜合器也無法把設(shè)計直接映射成該單元,因此可以把時鐘生成模塊放到TMR_DFF內(nèi)部,這樣三模冗余觸發(fā)器時鐘端口就只有1位,在庫文件中把觸發(fā)器單元用對應(yīng)的三模冗余觸發(fā)器單元替換掉,DC就可以把電路中的觸發(fā)器直接映射成TMR_DFF,一次綜合就可以完成設(shè)計了,但是這樣一來整個芯片的面積又會增大很多(時鐘生成模塊不在共用),除此之外也可以借助上面的在原設(shè)計綜合后修改網(wǎng)表。前面已經(jīng)提到庫文件里面有很多種類型的觸發(fā)器,所以應(yīng)對不同的DFF觸發(fā)器建立相應(yīng)的庫單元,下面是一種建立庫單元的,主要分為2步:版圖設(shè)計和仿真特性提取。
          單元庫的建立首先要完成單元的版圖設(shè)計,在確定單元庫所包含的單元種類和單元電路后,根據(jù)加工廠家的工藝參數(shù),設(shè)計規(guī)則等完成單元的版圖設(shè)計,并導(dǎo)出電路網(wǎng)表,此時網(wǎng)表中不僅有電路結(jié)構(gòu),還有電阻,電容參數(shù)。然后就可以進行單元的參數(shù)提取工作。
          參數(shù)提取需要選擇一種用于參數(shù)提取的工具,這里選擇siliconsmart,其次要確定模擬仿真工具,如HSpice。主要步驟包括創(chuàng)建工作目錄配置仿真環(huán)境,引入?yún)⒖紟欤a(chǎn)生仿真文件,運行仿真特性提取,生成庫文件。
          創(chuàng)建工作目錄是指創(chuàng)建一個用于siliconsmart運行的目錄,此時會自動生成一個名為config.tcl的腳本文件,需要手動對其進行一些關(guān)鍵配置,主要包括模擬工具的選擇(這里選擇HSpice),模擬模型的指定,環(huán)境溫度等變量的設(shè)置等。引入?yún)⒖紟焓菫楣ぞ咧付ㄒ粋€參考的庫單元,工具將參考單元的信息摘取出來,并為該單元生成一個控制文件,該文件詳細描述了需要提取的單元的信息。包括單元網(wǎng)表文件,管腳信息,邏輯功能,輸入信號的上升/下降時間,輸出管腳負載情況等。如果沒有參考的庫文件,則需要手動編寫該文件。產(chǎn)生仿真文件是告訴工具對單元的哪些方面進行特性提取,比如時序,功耗,CCS模型等。運行仿真提取是對單元進行模擬仿真特性提取工作。生成庫文件會產(chǎn)生2個庫單元,其中.v是仿真工具用的仿真庫,.lib是可讀的綜合庫,可以在DC中用read_lib *.lib命令讀入.lib文件,然后用write_ lib* *.db命令可以生成.db綜合庫(*代表庫單元的名字)。
          對于抗輻射加固來說,除了用電路加固外可能還需要選擇更加可靠的工藝,SOI工藝就具有很好的抗輻射性能,它消除了閂鎖效應(yīng),有效地降低了單粒子效應(yīng),而此時就需要建立自己的單元庫了,庫中的觸發(fā)器單元就可以直接建成三模冗余觸發(fā)器的庫單元。

          3 結(jié)語
          航天系統(tǒng)中芯片的抗輻射能力是一個重要的指標,對于抗輻射的處理器和存儲器來說,輻照實驗是測試中的一個重要環(huán)節(jié)。三模冗余加固技術(shù)只是眾多抗輻照加固技術(shù)的一種,比較常用的還有檢錯糾錯碼EDAC,SOI工藝加固,其中采用SOI工藝流片的費用比普通工藝更為昂貴。標準單元庫的建立對設(shè)計來說是一項基礎(chǔ)性的工作,建立符合設(shè)計需要的標準單元庫對芯片設(shè)計來說是很重要的,對此文章提供了一種一般性的。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();