当前位置:首页 > > 技术解析
[导读]芯片设计较为复杂,芯片设计依据过程可分为正向设计和方向设计,这些芯片设计过程在往期文章中,小编均有所介绍。在本文中,小编将为大家介绍基于ZSU32的SoC芯片设计。如果你对芯片设计较为感兴趣,不妨继续往下阅读哦。

芯片设计较为复杂,芯片设计依据过程可分为正向设计和方向设计,这些芯片设计过程在往期文章中,小编均有所介绍。在本文中,小编将为大家介绍基于ZSU32的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 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 端口延时

输入延时是指外部逻辑到电路输入端口的路径延时。输出延时是指输出端口到外部寄存器的路径延时。

设置范例如下:

#设置端口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;

以上便是此次小编带来的“芯片设计”相关内容,希望大家对本文讲解的内容具备一定的认知。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭