本文针对中山大学ASIC规划中心自主开发的一款体系芯片ZSU32,以Synopsys公司的Design Compiler为归纳东西,探究了对SoC芯片进行归纳的规划流程和办法,特别对归纳进程的时序束缚进行了详细评论,提出了有用的归纳束缚设置计划。
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等多种接口模块。
3 ZSU32体系芯片的束缚设置与逻辑归纳
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 SM%&&&&&%.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;