新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于系統(tǒng)芯片ZSU32的SoC芯片設(shè)計(jì)

基于系統(tǒng)芯片ZSU32的SoC芯片設(shè)計(jì)

作者: 時(shí)間:2010-09-21 來(lái)源:網(wǎng)絡(luò) 收藏

 本文針對(duì)中山大學(xué)ASIC中心自主開(kāi)發(fā)的一款,以Synopsys公司的Design Compiler為綜合工具,探索了對(duì)進(jìn)行綜合的流程和方法,特別對(duì)綜合過(guò)程的時(shí)序約束進(jìn)行了詳細(xì)討論,提出了有效的綜合約束設(shè)置方案。

本文引用地址:http://butianyuan.cn/article/151508.htm

  1 時(shí)序約束原理

  同步電路是大多數(shù)集成電路的主流選擇。同步電路具有工作特性簡(jiǎn)單、步調(diào)明確、抗干擾能力強(qiáng)等特點(diǎn)。但是,因?yàn)樗械臅r(shí)序元件受控于一個(gè)特定的時(shí)鐘,所以數(shù)據(jù)的傳播必須滿足一定的約束以便能夠保持與時(shí)鐘信號(hào)步調(diào)一致。

  設(shè)置建立時(shí)間(setup time)約束可以滿足第一個(gè)條件:

  


  2 的結(jié)構(gòu)

  芯片內(nèi)置32 bit MIPS體系處理器作為CPU,具備兩路獨(dú)立的指令和數(shù)據(jù)高速緩存,CPU內(nèi)部有獨(dú)立的DSP協(xié)處理器和浮點(diǎn)協(xié)處理器,同時(shí)集成了LCD控制器、MPEG硬件加速器、AC97控制器、SRAM控制器、NAND Flash控制器、SATA高速硬盤(pán)控制器、以太網(wǎng)MAC控制器等,并具有I2C、I2S、SPI、、UART、GPIO等多種接口模塊。

  3 ZSU32系統(tǒng)芯片的約束設(shè)置與邏輯綜合

  ZSU32系統(tǒng)芯片的綜合采取自底向上的策略,先局部后整體。首先將當(dāng)前工作層次設(shè)置為系統(tǒng)芯片的某個(gè)子模塊,然后對(duì)該子模塊添加各項(xiàng)具體約束,接著完成子模塊的綜合。依次對(duì)各子模塊重復(fù)上述綜合流程,當(dāng)各個(gè)模塊都順利通過(guò)了初次綜合后,通過(guò)set_dont_touch_network命令將模塊中的關(guān)鍵路徑和時(shí)鐘線網(wǎng)保護(hù)起來(lái),然后做一次全局優(yōu)化,檢查是否滿足時(shí)序等各方面的要求,達(dá)到要求就可以輸出最終的網(wǎng)表和各項(xiàng)綜合報(bào)告。

  3.1 設(shè)定工藝庫(kù)和參考庫(kù)

  設(shè)置Design Compiler運(yùn)行所使用的庫(kù):目標(biāo)庫(kù)(target_library)、鏈接庫(kù)(link_library)、可綜合庫(kù)(synthetic_library)、符號(hào)庫(kù)(symbol_library)。其中的目標(biāo)庫(kù)中包含了標(biāo)準(zhǔn)單元庫(kù)、RAM單元庫(kù)、I/O單元庫(kù)、PLL單元庫(kù)等,通常是由芯片代工廠家提供。系統(tǒng)芯片ZSU32采用的是中芯國(guó)際的0.18 ?滋m CMOS工藝庫(kù),所以在設(shè)置時(shí)就把目標(biāo)庫(kù)指向該工藝庫(kù)。

  #設(shè)置目標(biāo)工藝庫(kù)

  set target_library SMIC.db

  3.2 讀入RTL設(shè)計(jì)與設(shè)置工作環(huán)境

  讀入RTL設(shè)計(jì)通常有自頂向下或者自底向上2種方式。因?yàn)閆SU32模塊眾多,所以采用自底向上的讀入方式。首先讀入各個(gè)子模塊,并分別編譯;然后更改層次,編譯上一層的模塊;最后會(huì)合成整個(gè)系統(tǒng)。

  讀入設(shè)計(jì)后,首先設(shè)置芯片的工作環(huán)境,根據(jù)采用的工藝庫(kù)提供的環(huán)境和線網(wǎng)負(fù)載模型,可以通過(guò)set_operating_condition和set_wire_load_model命令進(jìn)行設(shè)置。以下是ZSU32綜合環(huán)境的頂層環(huán)境設(shè)置:

  #設(shè)置工作環(huán)境

  set_operating_condition smic18_typ;

  #設(shè)置線網(wǎng)負(fù)載模型

  set_wire_load_model smic18_wl30;

  3.3 時(shí)序約束

  3.3.1 時(shí)鐘定義

  時(shí)鐘是整個(gè)時(shí)序約束的起點(diǎn)。系統(tǒng)芯片ZSU32將外部輸入時(shí)鐘和PLL模塊輸入時(shí)鐘作為源時(shí)鐘:ext_clk_i和pll_clk_i。通過(guò)對(duì)這2個(gè)源時(shí)鐘信號(hào)的分頻或者倍頻,產(chǎn)生了各個(gè)子模塊的時(shí)鐘信號(hào)。

  #定義源時(shí)鐘ext_clk,周期16 ns

  create_clock-name ext_clk-period

  16 [get_ports {ext_clk_i}];

  在芯片內(nèi)部,子模塊的時(shí)鐘實(shí)際是經(jīng)過(guò)源時(shí)鐘分頻或者倍頻得到的,使用create_generated_clock命令來(lái)建立子模塊時(shí)鐘。

  #設(shè)置一個(gè)2倍頻時(shí)鐘clk_main,

  #其源時(shí)鐘是pll_clk_i

  create_generated_clock -name clk_main

  -multiply_by 2 -source pll_clk_i;


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉