《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > 約束設置與邏輯綜合在SoC設計中的應用
約束設置與邏輯綜合在SoC設計中的應用
來源:電子技術應用2010年第7期
張華棟,龐志勇,陳弟虎
中山大學 專用集成電路設計中心,廣東 廣州510275
摘要: 介紹了約束設置與邏輯綜合在SoC設計中的應用,并以一款SoC芯片ZSU32的設計為例,詳細討論了系統芯片的約束設置與邏輯綜合策略。
中圖分類號: TN402
文獻標識碼: A
文章編號: 0258-7998(2010)07-0069-04
Application of constraint setting and logic synthesis in SoC design
ZHANG Hua Dong,PANG Zhi Yong,CHEN Di Hu
ASIC Design Center, Sun Yat-sen University, Guangzhou 510275,China
Abstract: This paper presents the application of constraints setting and logic synthesis in SoC design, and presents a case study for the SoC ZSU32 with detail discussion about the strategies of constraint setting and logic synthesis for SoC.
Key words : SoC;logic synthesis;constraint setting;timing

    系統芯片SoC是目前超大規模集成電路設計的發展趨勢,其集成度高、功能復雜、時序要求嚴格。邏輯綜合是SoC設計不可缺少的一環,它是將抽象的以硬件描述語言所構造的模型轉化為具體的門級電路網表的過程。邏輯綜合的質量直接影響芯片所能達到的性能,因而在綜合過程中必須根據設計要求在時序、面積和功耗方面設置正確的約束。
    本文針對中山大學ASIC設計中心自主開發的一款系統芯片ZSU32,以Synopsys公司的Design Compiler為綜合工具,探索了對SoC芯片進行綜合的設計流程和方法,特別對綜合過程的時序約束進行了詳細討論,提出了有效的綜合約束設置方案。
1 時序約束原理
    同步電路是大多數集成電路系統的主流選擇。同步電路具有工作特性簡單、步調明確、抗干擾能力強等特點。但是,因為所有的時序元件受控于一個特定的時鐘,所以數據的傳播必須滿足一定的約束以便能夠保持與時鐘信號步調一致。
    圖1是一個典型的局部路徑,它需要滿足兩方面的條件:防止數據太遲到達目的寄存器導致數據不能正確保存;防止新的數據過早到達導致覆蓋了前一數據。

    設置建立時間(setup time)約束可以滿足第一個條件:
  
2 ZSU32系統芯片的結構
    ZSU32芯片內置32 bit MIPS體系處理器作為CPU,具備兩路獨立的指令和數據高速緩存,CPU內部有獨立的DSP協處理器和浮點協處理器,同時集成了LCD控制器、MPEG硬件加速器、AC97控制器、SRAM控制器、NAND Flash控制器、SATA高速硬盤控制器、以太網MAC控制器等,并具有I2C、I2S、SPI、、UART、GPIO等多種接口模塊。圖2是ZSU32的總體結構。

3 ZSU32系統芯片的約束設置與邏輯綜合
    采用Design Compiler工具對ZSU32進行邏輯綜合的基本流程如圖3所示。

    ZSU32系統芯片的綜合采取自底向上的策略,先局部后整體。首先將當前工作層次設置為系統芯片的某個子模塊,然后對該子模塊添加各項具體約束,接著完成子模塊的綜合。依次對各子模塊重復上述綜合流程,當各個模塊都順利通過了初次綜合后,通過set_dont_touch_
network命令將模塊中的關鍵路徑和時鐘線網保護起來,然后做一次全局優化,檢查是否滿足時序等各方面的設計要求,達到要求就可以輸出最終的網表和各項綜合報告。
3.1 設定工藝庫和參考庫
    設置Design Compiler運行所使用的庫:目標庫(target_library)、鏈接庫(link_library)、可綜合庫(synthetic_library)、符號庫(symbol_library)。其中的目標庫中包含了標準單元庫、RAM單元庫、I/O單元庫、PLL單元庫等,通常是由芯片代工廠家提供。系統芯片ZSU32采用的是中芯國際的0.18 ?滋m CMOS工藝庫,所以在設置時就把目標庫指向該工藝庫。
#設置目標工藝庫
    set target_library  SMIC.db
3.2 讀入RTL設計與設置工作環境
    讀入RTL設計通常有自頂向下或者自底向上2種方式。因為ZSU32模塊眾多,所以采用自底向上的讀入方式。首先讀入各個子模塊,并分別編譯;然后更改層次,編譯上一層的模塊;最后會合成整個系統。
    讀入設計后,首先設置芯片的工作環境,根據采用的工藝庫提供的環境和線網負載模型,可以通過set_operating_condition和set_wire_load_model命令進行設置。以下是ZSU32綜合環境的頂層環境設置:
#設置工作環境
    set_operating_condition smic18_typ;
#設置線網負載模型
    set_wire_load_model    smic18_wl30;
3.3 時序約束
3.3.1 時鐘定義

    時鐘是整個時序約束的起點。系統芯片ZSU32將外部輸入時鐘和PLL模塊輸入時鐘作為源時鐘:ext_clk_i和pll_clk_i。通過對這2個源時鐘信號的分頻或者倍頻,產生了各個子模塊的時鐘信號。
#定義源時鐘ext_clk,周期16 ns
    create_clock-name ext_clk-period\
    16  [get_ports {ext_clk_i}];
    在SoC芯片內部,子模塊的時鐘實際是經過源時鐘分頻或者倍頻得到的,使用create_generated_clock命令來建立子模塊時鐘。
#設置一個2倍頻時鐘clk_main,
#其源時鐘是pll_clk_i
    create_generated_clock -name clk_main\
    -multiply_by 2 -source  pll_clk_i;
3.3.2 多時鐘域約束
    時序檢查默認以一個時鐘周期為界,但對于ZSU32系統芯片,存在著一些多周期路徑,在這些路徑上,數據不需要在單時鐘周期內到達終點。例如,clk30mhz和clk10mhz是同源的同步時鐘,前者頻率是后者的3倍,對從clk10mhz時鐘域向clk30mhz時鐘域傳輸數據的路徑,采用如下命令:
#按照3個周期(clk30mhz)進行
#建立時間約束
    set_multicycle_path 3 -setup  -start \
    -from  clk10mhz  -to  clk30mhz;
    對于異步時鐘域之間的路徑,不用進行同步的時序檢驗,應該將其定義為偽路徑(false path),這樣在邏輯綜合時就不必浪費資源去優化。
#將異步時鐘e_clk和p_clk 之間的路徑設置為偽路徑
    set_false_path -from e_clk –to p_clk;
    set_false_path -from p_clk -to e_clk;
3.3.3 時鐘偏移
    芯片中時鐘經過不同的傳輸路徑,由于每條路經延時不一,導致從時鐘源到達各個寄存器的始終輸入端的相位差。這種由于空間分布而產生的偏差叫做時鐘傾斜(clock skew)。此外,由于溫漂、電子漂移的隨機性,使時鐘信號的邊沿可能超前也可能滯后。這種具有時間不確定性的偏移稱為時鐘抖動(clock jitter)。偏移導致時鐘信號到達各個觸發器的時鐘引腳的時間不一致,需要給予約束。
#設置時鐘偏移為0.4 ns
    set_clock_uncertainty 0.4 [all_clocks];
3.4 端口約束
    SoC芯片通過大量輸入和輸出端口與外界進行信息的傳輸,端口約束主要用于約束頂層端口相連的片內組合邏輯,包括確定輸入延時、輸出延時、輸出負載、輸出扇出負載、輸入信號躍遷時間等。
3.4.1 端口延時
    輸入延時是指外部邏輯到電路輸入端口的路徑延時。輸出延時是指輸出端口到外部寄存器的路徑延時。圖4是輸入輸出延時示意圖。

    設置范例如下:
#設置端口pci_ad13的輸入延時為4.8 ns
    set_input_delay  4.8 -clock clk_main \
    [get_ports {pci_ad13}];
#設置端口pci_ad16的輸出延時為3.6 ns
    set_output_delay 3.6 -clock clk_main \
    [get_ports{pci_ad16};
3.4.2 端口的驅動與負載
    端口的驅動和負載特性通過設置輸入驅動單元、輸入輸出負載值以及信號躍遷時間等來描述。范例如下:
#設置端口a7的驅動單元是BUFX2
    set_drive_cell -lib_cell BUFX2 -pin \
    [get_ports {a7}];
#設置端口d17的負載值為20 pf
    set_load -pin_load 20 [get_ports {d17}];
#設置端口d0的輸入信號上升時間是0.5 ns
    set_input_transition -rise -min  0.5 \
    [get_ports {d0}];
3.5 面積和功耗約束
    Design Compiler的綜合以時序優先,即優化完約束后才根據約束優化面積和功耗。初次綜合時很難對面積進行評估,所以在第一次綜合時設置優化目標為0,表示在滿足時序約束的情況下最大努力地減小面積。待綜合報告出來之后,根據初步的面積和功耗報告,修改數值,從而進一步優化。
#面積設置
    set_max_area 0;
#功耗的約束做類似的處理:
    set_max_total_power  0;
3.6 綜合結果
    根據上述綜合流程和約束設置,ZSU32系統芯片在邏輯綜合后滿足了時序約束,同時為后續物理設計提供了較好的起點。圖5是ZSU32時序分析報告的一部分。

    從報告中看到,該路徑起點是i_ZSU32_top/i_eth2_top/miim1/clkgen/U42/Y,終點是i_ZSU32_top/i_eth2_top/miim1/shftrg/ShiftReg_reg_1_,路徑的時序裕量是2.96 ns。
    ZSU32采用中芯國際0.18 um CMOS標準單元庫進行了邏輯綜合和版圖設計實現,6層金屬布線,已成功流片。電路綜合規模為200萬門,所有cell的面積為19 195 460 um2,芯片總面積小于5 mm×5 mm。
參考文獻
[1] Synopsys.Design Compiler User Guide,Version Y-2008.06,Synopsys.
[2] BHATNAGAR H.Advanced ASIC chip synthesis using synopsys design compiler physical compiler and prime time  (second edition).Kluwer Academic Publishers,2002.
[3] RABAEY J M.Anantha chandrakasan,borivoje nikolic.Digital Integrated CircuitsA Design Perspective(Senond Edition)(影印版).北京:清華大學出版社,2004,3.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
最新日韩欧美| 久久人91精品久久久久久不卡| 亚洲欧美久久久久一区二区三区| 91久久综合| 亚洲国产欧美一区二区三区丁香婷| 国产综合香蕉五月婷在线| 国产午夜精品麻豆| 国产欧美在线视频| 国产美女一区二区| 国产精自产拍久久久久久| 国产精品激情偷乱一区二区∴| 欧美日韩久久精品| 欧美日韩在线播| 国产精品电影在线观看| 国产精品高清免费在线观看| 国产精品v欧美精品v日韩精品| 欧美日韩在线一区二区| 欧美午夜精品久久久久久人妖 | 国产麻豆精品在线观看| 国产精品欧美久久| 国产精品一页| 黑人一区二区三区四区五区| 精品二区久久| 91久久精品美女高潮| 亚洲欧洲精品一区二区三区不卡 | 亚洲精品乱码久久久久| 日韩视频免费看| 亚洲视频在线一区观看| 亚洲性图久久| 欧美一区二区三区四区视频| 欧美一区在线看| 久久这里只有精品视频首页| 欧美成年人视频网站| 欧美全黄视频| 国产精品毛片大码女人| 国产色婷婷国产综合在线理论片a| 国产一区二区三区久久精品| 狠狠色狠狠色综合| 亚洲欧洲精品一区| 亚洲一区激情| 亚洲第一福利在线观看| 亚洲免费精品| 亚洲欧美一区二区原创| 久久久久中文| 欧美激情一区| 国产精品久久久久91| 国产亚洲a∨片在线观看| 亚洲国产精品第一区二区三区| 99国产精品| 午夜精品免费| 亚洲精品小视频| 午夜精品www| 久久色在线播放| 欧美日韩一区二区免费在线观看| 国产精品一香蕉国产线看观看| 黄色另类av| 亚洲精品久久| 午夜欧美不卡精品aaaaa| 亚洲日韩中文字幕在线播放| 亚洲欧美另类在线| 美日韩丰满少妇在线观看| 欧美日韩在线另类| 韩国美女久久| 亚洲麻豆视频| 久久gogo国模裸体人体| 一本色道久久精品| 久久精品最新地址| 欧美日韩在线免费| 激情自拍一区| 亚洲一区二区免费看| 亚洲国产日韩一区二区| 亚洲免费影视第一页| 欧美电影免费| 国产午夜精品视频| 一本色道精品久久一区二区三区| 欧美亚洲一区三区| 一区二区三区精品| 久久一区二区三区av| 国产精品久久久久一区二区| 亚洲夫妻自拍| 久久丁香综合五月国产三级网站| 中文在线资源观看视频网站免费不卡| 久久精品国产v日韩v亚洲| 欧美精品一区二区蜜臀亚洲| 国产婷婷色一区二区三区四区| 日韩视频二区| 亚洲精品1区2区| 久久精品国产清高在天天线| 欧美色欧美亚洲另类二区| 亚洲成人自拍视频| 欧美一区二区黄| 亚洲一区二区免费看| 欧美国产日韩免费| 一区二区三区在线观看欧美| 日韩亚洲欧美综合| 亚洲精品久久久久中文字幕欢迎你| 欧美中文字幕在线| 国产精品theporn| 亚洲精品亚洲人成人网| 亚洲精品国产精品久久清纯直播 | 久久国产精品色婷婷| 性8sex亚洲区入口| 国产精品啊v在线| 日韩一区二区精品在线观看| 亚洲人久久久| 鲁鲁狠狠狠7777一区二区| 国产欧美亚洲精品| 亚洲一二三四区| 亚洲专区欧美专区| 欧美日韩一卡| 99国产精品99久久久久久| aa亚洲婷婷| 欧美激情免费在线| 亚洲国内精品在线| 亚洲伦伦在线| 欧美精品18| 亚洲区国产区| 日韩视频中文| 欧美精品久久久久久久免费观看| 在线免费一区三区| 亚洲激情第一页| 久久综合电影| 在线精品在线| 亚洲黄网站在线观看| 欧美成人午夜激情在线| 亚洲国产一区在线| 亚洲免费精品| 欧美三级日本三级少妇99| 日韩一级黄色av| 亚洲一区二区视频在线| 国产精品黄色| 午夜精品久久久久久久白皮肤| 欧美一区二区三区喷汁尤物| 国产日韩欧美一区二区| 性18欧美另类| 久久久伊人欧美| 精品动漫3d一区二区三区| 亚洲三级影院| 欧美日韩情趣电影| 亚洲无亚洲人成网站77777| 午夜精品在线| 狠狠88综合久久久久综合网| 亚洲国产日韩在线| 欧美日韩精品伦理作品在线免费观看 | 亚洲女同精品视频| 国产啪精品视频| 亚洲第一天堂av| 欧美福利专区| 一区二区三区欧美日韩| 欧美一级理论性理论a| 国内一区二区在线视频观看| 亚洲日本va午夜在线电影| 欧美日韩国产综合新一区| 亚洲欧美精品| 老司机aⅴ在线精品导航| 亚洲欧洲日韩在线| 亚洲欧美韩国| 黄色日韩网站| 亚洲最新视频在线| 国产精品入口麻豆原神| 亚洲国产合集| 欧美性色aⅴ视频一区日韩精品| 午夜国产精品影院在线观看| 免费视频一区| 国产精品99久久久久久久女警 | 欧美日韩亚洲国产精品| 亚洲综合视频1区| 欧美aa国产视频| 这里只有精品在线播放| 久久久国产91| 99国产一区| 久久精品在线观看| 亚洲伦理在线观看| 久久久精品2019中文字幕神马| 亚洲激情午夜| 久久国产精品久久精品国产| 亚洲精品国产品国语在线app| 欧美亚洲一区三区| 在线观看视频日韩| 午夜在线精品偷拍| 亚洲人成在线播放网站岛国| 亚洲欧美影院| 91久久久久久久久久久久久| 午夜精品网站| 91久久国产综合久久91精品网站| 香蕉亚洲视频| 亚洲精品一区二区三区四区高清| 久久精品一区二区| 在线亚洲国产精品网站| 久久综合久久综合这里只有精品| 在线亚洲观看| 欧美激情中文字幕一区二区| 欧美一区成人| 国产精品成人观看视频国产奇米| 亚洲激情另类| 国产在线欧美| 亚洲欧洲av一区二区三区久久| 91久久黄色| 欧美1区2区视频| 欧美一级播放|