文档详情

SoC设计第6章.ppt

发布:2016-11-30约字共36页下载文档
文本预览下载声明
内容大纲 编写RTL代码之前的准备 可综合RTL代码编写指南 调用Synopsys DesignWare来优化设计 调用Synopsys DesignWare优化设计 DesignWare是由Synopsys公司提供的IP库,其中的Foundation IP中包含很多设计中经常会用到的功能单元,这些功能单元是用特定的架构实现的 使用Synopsys的综合工具时调用DesignWare中的IP进行综合,能获得更优的结果,如速度更快或面积更小等 DesignWare在综合时的调用可以是自动的,也可以是手工的 手工的方法是指在RTL代码编写时将选用的DesignWare单元“隐含”进去,这样在综合时就能够选用指定的DesignWare了 Operator Inference module my_adder (a,b,sum); input a, b, c; output sum; // synopsys resource r0 // map_to_module = DW01_add // implementation = cla // ops = al assign sum= a+b; endmodule Component Instantiation module my_adder(a,b,ci,co,sum); input a,b,ci; output co,sum; // synopsys dc_script_begin // set_implementation cla adder // synopsys dc_script_end DW01_add #(1) adder( .A(a), .B(b), .CI(ci), .SUM(sum), .CO(co)); endmodule DesignWare 2007版function IP库与2008版区别 Q A * SoC设计方法与实现 RTL代码编写指南 郭炜 魏继增 郭筝 谢憬 内容大纲 编写RTL代码之前的准备 可综合RTL代码编写指南 调用Synopsys DesignWare来优化设计 内容大纲 编写RTL代码之前的准备 可综合RTL代码编写指南 调用Synopsys DesignWare来优化设计 编写RTL代码之前的准备 RTL代码编写前需要讨论并确定的问题 是否与设计团队共同讨论过设计中将会发生的关键问题 是否已准备好设计文档了 设计文档中总线是如何定义的 设计文档中是否定义了设计的划分方法 设计中的时钟是怎样考虑的 对I/O是否有特殊需求 是否需要其他IP,这些IP的包装(Package)是否完整地包括了每一步设计所需的文件 是否考虑了IP复用设计 是否考虑了可测性设计 整个设计的面积是引脚限制还是门数限制 设计的运行速度是否能超过工艺速度极限 时序和后端设计是否有特殊的需求 与团队共同讨论设计中的问题 通过讨论,团队的每个成员必须清楚设计规则 版本控制、目录树和其他设计组织的问题也必须在团队内广泛讨论,达成共识 这些问题都属于顶层问题或项目管理问题,大家必须遵守同一个设计规则 团队成员间的充分交流是一个设计能够成功的关键因素 根据芯片结构准备设计说明书 模块功能的简要介绍 顶层模块的接口信号; 所有控制寄存器地址及功能描述; 顶层模块的主要结构图; 子模块功能; 子模块的接口信号; 子模块的主要结构图; 子模块的实现原理; 时钟信号的连接(如Multicycle Path、FalsePath、Negedge Clock、Generated Clock) 复位信号的连接(如Gated Reset、Soft Reset) 总线设计的考虑 如果不是特别要求的话,尽量使用单向总线 但是如果在以前出于布线和其他以前版本兼容性的考虑,一直采用的是双向总线,现在如果没有很好的处理而使用单向总线也可能会产生问题 在开始编码前获得每一条总线和接口的设计文档,确保对其功能和时序都很清楚,这样的话可以帮助在编写代码前创建高层次的模型。 模块的划分 模块的划分 模块的划分——芯片级的模块划分 顶层模块组织结构图 模块的划分——核心逻辑的模块划分 在对核心逻辑进行模块划分时,要避免子模块间出现连接用的粘附逻辑 粘附逻辑 消除粘附逻辑 模块的划分——核心逻辑的模块划分 应尽可能地把相关的组合逻辑集中到一个模块中处理,这是因为综合器在默认的工作模式下综合优化时,不能跨越模块边界对相关的组合逻辑做归并优化处理。 组合逻辑被分散在多个模块 组合逻辑归并 模块的划分——把多周期路径或伪路径限制到一个模块中
显示全部
相似文档