MuleESB3.0中文教程

MuleESB3.0中文教程
MuleESB3.0中文教程

MuleESB 3.0 中文教程

第一章基础原理

Mule是一个轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的。Mule 的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持20多种传输协议(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,Axis,Drools等。虽然Mule没有基于JBI 来构建其架构,但是它为JBI容器提供了JBI适配器,应此可以很好地与JBI容器整合在一起。而 Mule更关注其灵活性,高效性以及易开发性。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB 中的一支独秀。目前许多公司都使用了Mule,比如沃尔玛,惠普,索尼,Deutsche Bank 以及 CitiBank等公司。

Mule官方网站:https://www.360docs.net/doc/2610219682.html,/

Mule有两个版本,社区版和企业版。

社区版是免费,企业版是收费的,企业版相比于社区版功能丰富许多,它们的比较如下:

Mule近期推出了Mule3,Mule3的新增特点-云连接(Cloud Connect)

提供了可以用简单安全的方式为企业提供基于云技术的数据和服务。它的核心是IBeans,一个轻量级、可重用的接口,用于Web技术的连接扩展和数据服务。

Mule云包括以下内容

1、Integration Beans (合成bean):他们是可重用的云接口,可以注入到组

件中,可以接受外部的服务,比如说亚马逊、推特、Facebook等,并且是一种简单的接收服务、管理安全机制的方法。请求验证、数据传输、错误挂起等也可以通过这种方法来实现。

2、Rest / JAX-RS:(REST协议:即REST(Representational State Transfer

表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。)

现在Jersey 已经是Mule核心部署的一部分,提供本地化的对REST和JAX-RS 的支持,例如Apache CXF。Jersey现在已经在易配置和高可扩展性方面做的非常优秀。Jersey现在使用一种包含很多Jersey资源的接口实现组件来替代终端类型的实现方式。

3、AJAX:Mule现在直接融合了Javascript应用。Mule3包括了服务终端和

Javascript客户端允许事件被直接发布到浏览器,并且事件可以从浏览器进行发布。

4、Web Service:现在对Web Service的发布的配置将更加容易,其扩展性也

进一步加强。

5、ATOM and RSS:Mule 3 现在能够较好的支持ATOM了。

6、JSON Support:Mule3包含对JSON数据绑定和JSON传输的支持。

7、JAXB Support:支持组件XML绑定将自动进行,并且也添加了新的JAXB传

输。

其他的一些支持:

1、FLOW:配置的流程化。

2、Patterns:配置的模式化,可以极大简化配置,将不同情况的配置进行模式化划分。

3、Annotation:改进后新的注释方法对组件中的注入反转、transformers的发布、组件方法的Pol有很大作用。

4、Deployment:支持单一服务和组服务的热部署。同时支持部署模型定义。

结构上的提高:

5、Message Processor API:消息处理API,Mule3其内部处理方式较为灵活,能够在将来其他模式调整时适应外部服务组件。

6、Message Exchange Patterns:消息交换模式,消息在Mule3中的流转将更加精确和灵活。

7、Message Property Scoping:消息属性作用域。较好的实现了属性的作用范围。

8、Lifecycle Improvements:生命周期的改进。优化了Mule的开启和关闭行为,热部署也在这方面得以展现,并支持JSR-250 生命周期注释方法。

9、Exception Handing:异常处理,异常处理的兼容性更好,并且有错误行为预处理功能。

10、Automatic Transformation:自动转换,Mule3增强了自动转换引擎,用于进行数据绑定,例如XML/JAX、JSON,并支持自定义。

11、CXF Now a Module:CXF现在在Mule3中作为一个模块,在Mule3中对CXF 进行了优化,使得CXF的用户与普通的管道/过滤器元素一样。

12、REST:Mule的开发团队十分看好REST,在其文档中使用了“enjoy”这个单词来形容REST,可见使用REST协议开发Mule3服务应该是比较合适的。

Mule3其他的一些变化:

1、Message factories:消息工厂,从底层将消息翻译成MuleMessage格式。所有MuleMessage都是由消息工厂创建的。

2、XQuery Support:对XQuery支持。

3、Dynamic Endpoints:动态终端,Mule中的终端可以动态构造,通过Mule传输的消息可以构造终端地址。

4、JBoss jBPM:文档中说明Mule从很早以前就开始与JBoss jBPM进行整合了,但是在Mule3中,对其进行了改善,并将JBoss jBPM版本升级到了4.4版本。

5、Transaction Enhancements:Transaction被增强,通过配置元素属性,Mule可获知在Mule外部Transaction已经开始了。

6、AXIS Code Removed from Mule:AXIS代码在Mule3中被移除,其将作为一个独立模块存在。

MuleESB架构

一、Understanding the Messaging Framework:对消息框架的理解

建立网络应用程序的优点之一,是一个应用程序可以将数据发送到另一个应用程序。但是,许多应用程序没有能力直接读取或处理来自另一个应用程序的数据。MuleESB为此提供了一个消息处理框架,用于读取、转换和发送应用程序间的数据。

Mule对消息(Message)的定义:一个消息是一个简单的、可以处理的、在应用程序之间的一个通道(也称为队列)上发送的数据包。

在最基本的层面上,当应用程序连接Mule,它从一个应用程序中读取数据,根据需要把它转换,并把它发送到接收端应用程序。这可以整合所有类型的应用程序,甚至包括没有内置集成的程序。

Mule消息传递框架以企业服务总线(ESB)的架构为基础。 Mule和传统ESB 的区别是,MuleESB只有在需要时转换数据。对于传统的ESB,必须为每个应用程序创建一个连接到总线的连接,并将其传输数据转换成一个单一的共同通讯格式。因此需要处理每条消息而耗费大量的时间,开发时也需要更多精力。MuleESB 消除了对单一消息格式的需要。MuleESB支持多种消息管道,如HTTP或JMS,消息在传输过程中,只有在需要时候进行翻译转换。因此,MuleESB提高了性能,相比于传统ESB降低了开发时间。

二、Understanding the Mule Architecture:了解Mule的架构。

官方文档使用了一个企业发票处理的例子来解释Mule架构。

(1)首先介绍了SOA的优点。

(2) Processing the Date:数据处理。

当一条消息从一个应用程序(如从一个订单输入系统发票)发送,MuleESB将其发送到服务,此服务是使用一些特定的业务逻辑(如核对客户和库存数据库)对这条消息进行处理,然后路由到正确的应用程序(如订单执行系统)。Mule包含许多消息加工处理和消息路由的功能组件。处理流程的关键部分是服务组件。服务组件执行业务处理,如阅读发票信息、逻辑分析、增加客户数据库信息等,然后转发到订单执行应用,如下图。

Mule中服务的重要特点是,它不具有任何Mule特定的代码,它可以仅仅是一个POJO,Java Bean,Spring Bean或WebService,包含在一个特定的方式处理数据的业务逻辑里。Mule管理服务组件、配置设置绑定、发布服务,并确保

配置的消息消息传递的正确性。可以有许多不同的服务组件,执行不同的业务逻辑。

(3) Routing Messages Between Service Components:服务组件间的消息路由。

服务组件中包含对消息中的数据进行的业务处理,但本身未包含关于如何发送和接收消息的信息。为了保证服务组件对消息的正确接收和当处理完成后对消息的正确路由,需要在配置MuleESB时,为组件设置inbound router(入站路由)和 outbound router(出战路由),如下图所示。

入栈路由指定的消息将被服务组件进行处理,并且可以过滤外来消息,对其进行聚合和重新序列化。

处理完成后的消息,将由出站路由指定发送路线。

(4) Separating Business Logic from Messaging:从消息中分离业务逻辑Mule众多优点之一,是它可以处理通过各种协议发送来的消息。并且服务组件是完全屏蔽消息格式的,在消息路由转发之前,由transformers改变消息的payload,使得消息能够符合服务组件要求的格式,这样服务组件就可以直接读取消息了。消息的传输、转换和路由,对于服务组件来说是完全透明的,如下图所示。

Transformers对于Mule的数据交换十分重要,因为它能够将数据转换成服务组件或应用程序可以直接使用的格式,并且是在需要时候才转换,不需要时不进行转换,机制比较合理。可以通过设置多个transports来处理多个渠道中的数据。

将业务处理和数据转换分离,这样就会带来很大的灵活性,因为这样能够专心考虑业务逻辑,不用过多考虑数据格式。在官方文档中也说明了,服务组件也支持使用没有经过转换的原始数据格式。

(5)、Wiring Everything Together:连接协同工作

连接协同工作的关键是终端所配置的元素信息。在出站路由和入站路由中指定终端,使得MuleESB能够知道使用哪个transport进行消息转换,将消息发送到哪个服务组件进行处理,处理后将消息发向哪里。终端的重要属性是地址,终端地址采用统一资源标识符(URL)表明使用哪个transport、transport位置、和其它一些参数,下图描述了连接协同工作处理过程。

一个服务可以接收来自多个transports发送来的消息,但是必须进行配置,可以指定多个终端。

消息路由和终端有过滤器的功能,可以只接收特定的消息,不愿接收的消息不接收。

总之,Mule提供了一个简单的轻量级的方法来支持服务组件的开发,不需过多考虑数据的传送和数据格式的转换。但是其它连接数据源的方法将会带来额外的代码量。Mule的使用将会提高服务组件的开发速度,并通过配置XML改变其行为,而非普通Java代码。

三、Understanding the Logical Data Flow:通过发票处理这个例子,了解逻辑数据流程。

上图步骤说明:

(1)、客户在公司网站上生成了一个订单,产生了一份发票,并将发票内容以XML的形式提交给https://www.360docs.net/doc/2610219682.html,/orders。

(2)、HTTP transport接收这个XML发票信息,将其打包成Mule消息。客户数据服务入站路由的终端设置为https://www.360docs.net/doc/2610219682.html,/orders,由于服务组件要求的消息格式是Java object,所以入站路由设置入站消息必须包含一个Java object,所以HTTP transport会将XML格式的发票转换成Java object类型,来适应相应服务。

(3)、将XML转换成Java Object。

(4)、将转换完成的消息发送给服务组件。

(5)、客户数据服务组件从总客户数据库中查询客户信息,并更新发

票信息到数据库。

(6)、HTTP transport使用出站路由配置,确定将经过服务组件处理

后的消息发送到https://www.360docs.net/doc/2610219682.html,/verify。

(7)、HTTP transport 使用入站路由中对发票验证服务的配置,将接

收到的消息发送到服务组件。

(8)、服务组件根据发票内容更新所有仓库清单信息。

(9)、出站终端配置要求的是一个JMS地址,所以JMS transport 将

消息发送到订单结束应用。

四、Integrating Mule into Your Environment:将Mule整合到环境中。

Mule是基于ESB架构的,消息是ESB的重要组成部分,其实现方法主要使用JMS,Mule没有规定必须使用哪种消息中间件,可以使用ActiveMQ 等主流消息中间件(Mule也有自己的消息中间件产品MuleMQ),除此之外支持EJB,mainframe applications、web service、socket和文件系统的连接。

Mule还包括其它的拓扑结构:对等网络、C/S、hub-and-spoke等。这些拓扑可以混合在一个企业服务网络,构成模型丰富的企业信息服务模型,如下图所示。

Mule支持分布式使用和负载均衡,如下图所示:

可将Mule服务部署在Web容器或应用服务器中。

总结

在理解了MuleESB的全部架构理念和运行机制后,对MuleESB进行总结。

MuleESB提供了一个消息框架,用于程序之间的数据交换。应用被封装成为服务,服务包含服务组件、消息路由和其它一些配置。Transport使得服务间的数据在不同渠道内得以传送,并且transport在对数据的传输过程中,对需要格式转换的数据进行数据转换。

MuleESB不是取代现有程序架构,相反MuleESB利用如Apache CXF、Spring 等开源项目,对自己的项目进行了功能加强。MuleESB得以较好的解决各个系统、各种平台、各种复杂情况的整合。

DC综合全过程及使用的命令

DC综合全过程及使用的命令 DC的初始化文件.synopsys.dc.setup,该文件是隐藏文件,需要用ls –a显示 读取文件 DC支持多种硬件描述格式,.db .v .vhd等 对于dcsh工作模式来说,读取不同的文件格式需要不同的参数 Read -format Verilog[db\vhdl ect] file //dcsh工作模式 对于tcl工作模式来说,读取不同文件格式使用不同的命令。

Read_db file.db //tcl工作模式读取db格式 Read_verilog file.v //tcl工作模式读取verilog格式 Read_vhdl file.v //tcl工作模式读取vhdl格式 读取源程序的另外一种方式是配合使用analyzer命令和elaborate命令; Analyzer是分析HDL的源程序并将分析产生的中间文件存于work(用户可以自己指定)的目录下 Elaborate则在产生的中间文件中生成verilog的模块或者VHDL的实体 缺省情况下,elaborate读取的是work目录中的文件 当读取完所要综合的模块后,需要使用link命令将读到DC存储区中的模块或实体连接起来 注意:如果在使用link命令后,出现unresolved design reference的警告信息,需要重新读取该模块,或者在.synopsys_dc.setup 文件中添加link_library,告诉DC到库中去找这些模块,同时还要注意search_path中的路径是否指向该模块或单元电路所在的目录 Link命令执行后,DC就将模块按照RTL级或者门级的描述将电路连接起来,之后的各种限制条件就可以对该电路的顶层模块施加 DC限制条件施加的对象 针对以下电路成分:输入输出端口、模块、子模块的实例化、单元电路、连线及电路的引脚。在使用DC命令的时候,不要使用模糊的对象,例如,如下面的电路: Set_load 3 Clk 由于在电路中含有名称为CLK的pin、port和net,因此,DC无法知道该处的load是施加在哪个对象上,注意到一般连线会驱动负载,该命令就改为: Set_load 3 [get_nets Clk] TCL mode Set_load 3 find(net,”Clk”)dc_shell mode 路径的划分与合法路径 DC综合的时候是基于路径的优化,对于DC来说,合法的路径必须满足以下条件 路径的起点为输入端口或者是触发器的数据端 路径终点为输出端口或者是触发器的时钟端 DC设定的限制条件的值都是无单位的,这些单位都是由工艺库中给定的 可以用report_lib lib_name来查看所有在工艺库中设定的各个参数的单位 定义电路的工作环境和综合环境

synopsys DC10.03图文安装配置详解

喾林原创 Synopsys DC10.03安装配置 1、需准备安装包: 1)、Synopsys DC(design compiler)安装包 2)、SCL 安装包(注:此包为synopsys license 管理)。 3)、Synopsys 图像安装工具:installer2.0及以上均可。 (注:图形安装操作简单,不易出错,故采用图形安装界面) 4)、Synopsys license 制作工具( EFA LicGen 0.4b 和Synopsys SSS Feature Keygen )。 2、开始安装DC : 1)、启动图形安装界面 于linux 系统下解压installer2.0包(在windows 下解压文件易损坏)。解压后运行setup.sh 得如图(一)所示界面。 图 (一)

喾林原创点击“start ”有如图(二)所示界面开始安装。在“Source ”栏选中DC 安装文件所在上层目录。“Done ”后“Next ”(此次“Next ”时间较长,耐心等待)。 图 (二) 之后可一直“NEXT ”到如图(三)所示。 图 (三)

在该界面勾选linux选项即可,继续下一步到如图(四)所示。选择安装路径后继续下一步直到结束。 喾林原创 图(四) 至此DC安装结束。 3、开始安装SCL: 此安装与DC安装步骤一直,几乎没有差别,唯一不同的就是安装路径不同。 4、license的制作: License的制作是在windows下制作的。

1)、打开EFA LicGen 0.4b文件夹运行LicGen.exe程序出现如图(五)所示界面。 喾林原创 图(五) 点击“OPEN”选择Synopsys.lpd文件,“打开”。回到图(五)所示界面。勾选上Custon、Use Daemon及最后一个Custon。

synopsys简易教程

以.cshrc 及用户根目录下的.synopsys_vss.setup .synopsys_dc.setup 已经配置为前提)1.创建工作目录; 2.编写vhdl源程序; 3.编写.synopsys_vss.setup 和.synopsys_dc.setup文件; 4.编译vhdl源程序; 5.运行vhdldbx 仿真器; 6.运行synopsys的综合器; 7.完成综合后的门级仿真; 以一个一位加法器为例,进行具体说明(用户界面为CDE): 1)创建adder 目录: 可以在资源管理器中完成,也可以在unix环境下完成:mkdir adder; 2)在adder目录下创建work目录; 3)编写.synopsys_vss.setup文件并存入adder目录;.synopsys_vss.setup的内容如下:WORK >DEFAULT DEFAULT:work TIMEBASE = NS 4)编写一位加法器的源程序(adder1.vhd)并存入adder目录下: library ieee; use ieee.std_logic_1164.all; entity adder1 is port(din1 : in std_logic; din2 : in std_logic; cin : in std_logic; dout: out std_logic; cout: out std_logic); end adder1; architecture rtl of adder1 is begin dout <= din1 xor din2 xor cin; cout <= (din1 and din2) or (cin and (din1 xor din2)); end rtl; 5)编写一位加法器的测试基准(即test_bench)并存入adder目录下:(tb_adder1.vhd)library ieee; use ieee.std_logic_1164.all; entity tb_adder1 is end tb_adder1; architecture rtl of tb_adder1 is component adder1 is port(din1 : in std_logic; din2 : in std_logic; cin : in std_logic;

启动dc_shell工具的.synopsys.setup文档

设置启动dc_shell-t工具的 .synopsys.setup文件 Author:周建伟 Company:西安邮电大学SOC组 Date:2013.10.30 摘要:若你在读不进你的库,即在你的运行报告中总是有:warning:Can?t read link_library file …your_library.db?,这边文档会对你有一定的帮助

逻辑综合环境 启动文件 启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为“.synopsys_dc.setup”的启动文件(位置:inst_dir/admin/setup/.synopsys_dc.setup)。启动时,DC会以下述顺序搜索并装载相应目录下的启动文件: DC安装目录($DC_PATH/admin/setup) 用户主目录 工具启动目录 注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置 本文档重在讲述怎么设置工具启动目录 1、把inst_dir/admin/setup/.synopsys_dc.setup文件拷贝到你DC脚本目录下(也就是和你 脚本在同个目录下) 2、在.synopsys_dc.setup文件的第92行,即set link_force_case “check_reference”命令下 修改内容如下: A、set lib_path /library/smic18/feview~2/version2.2(注:lib_path为你smic18库安装 目录,不同于DC安装目录) B、set link_library [list * $lib_path/STD/Synopsys/smic18_ss.db \ $lib_path/IO/Synopsys/smic18IO_line_ss.db \ $lib_path/IO/Synopsys/smic18IO_stagger_ss.db ] C、set search_path [list . ${synopsys_root}/libraries/syn ${synopsys_root}/dw/syn_ver \ ${synopsys_root}/dw/sim_ver \ $lib_path/STD/Synopsys $lib_path/IO/Synopsys ] D、set target_library [list $lib_path/STD/Synopsys/smic18_ss.db \ $lib_path/IO/Synopsys/smic18IO_line_ss.db \ $lib_path/IO/Synopsys/smic18IO_stagger_ss.db ] E、set synthetic_library “” set command_log_file “./command.log” set designer “zjw” set company “soc of xupt”

DC基本问题

1.14. translation这一步是用什么DC命令来实现的? 我们知道,DC综合过程包括3个步骤:translation + logic optimization + mapping transition 对应命令为 read_verilog(read_vhdl等) logic optimization 和 mapping 对应于 compile 1.15. 逻辑优化和映射(logic optimization + mapping)又是用什么DC命令来实现的? logic optimization 和 mapping 均在compile命令完成,但是可以指定使用特殊的优化方法:structural 和flatten,建议大家在synthesis时同时生成structural 和flatten格式的netlist,然后打开看看到底有什么不同之处。 1.17. 基于路径的综合的意思是什么? 路径(path),是DC中的一个重要概念。它包括4种路径方式: 1 input到FF的D端。 2 FF的clk到另一个FF的D端。 3 FF的clk到输出Q。 4 input到output。 基于路径的综合就是对这四种路径进行加约束,综合电路以满足这些约束条件。 1.24 reference 是指什么? 和cell 有什么区别? 当存在一个模块被多次例化,那么该模块就称为reference 1.25 如何读入一个design? 使用analyze + elaborate 或者 read_verilog、read -f verilog、 read_vhdl、read_file 命令。 1.26 analyze+ elaborate 和 read 命令有什么区别? read_file 是可以读取任何synopsys支持格式的;analyze和eloborate 只支持verilog和VHDL两个格式,但是他们支持在中间过程中加入参数而且以便以后可以加快读取过程。

Encounter使用入门教程

Encounter使用入门教程 本教程介绍一下自动布局布线工具Encounter的使用知识,开始以一个简单的十进制计数器版图的自动实现为例子,之后介绍包含block模块的复杂的版图自动实现。 在Designer Compiler使用入门教程中,笔者设计了一个十进制计数器,并经过Design Compiler对其进行综合后获得了门级综合网表文件counter.sv以及约束文件counter.sdc,根据这两个文件,我们就可以使用SOC Encounter实现十进制计数器的物理版图设计了。首先,我们要准备使用Encounter进行版图自动设计时所需要的数据: 时序库文件:fast.lib,slow.lib,tpz973gwc.lib,tpz973gbc.lib 物理库文件:tsmc18_6lm_cic.lef,tpz973g_5lm_cic.lef,tsmc18_6lm_antenna_cic.lef 门级网表文件:pad_counter.sv 时序约束文件:pad_counter.sdc IO位置放置文件:pad_counter.io //在设计导入Encounter中指定PAD的放置位置文件,不是必须文件 还有其它一些文件在后面用到时进行介绍。 一、网表中添加PAD、编写IO Assignment File 这里,pad_counter.sv是加入PAD后综合得到的门级网表。工程项目中设计制作完成后的芯片要进行封装,PAD就是芯片在封装时连接封装引线的地方。一般信号输入/输出PAD即I/O PAD要在综合前添加进入网表中,电源电压PAD 可以在综合时添加也可以在综合后添加。接下来就先介绍一下如何在网表中加入PAD,其实给网表加入PAD就是一般的module例化,和Verilog中一般的module 模块例化是一样的。 这里介绍在综合时给设计中加入I/O PAD。十进制计数器的Verilog源程序如下:module Cnt10(reset_n,clk,in_ena,cnt,carry_ena); input clk; input reset_n; input in_ena; output [3:0] cnt; output carry_ena; reg [3:0] cnt; reg carry_ena; always @(posedge clk or negedge reset_n) begin if(!reset_n) cnt<=4'b0; else if(in_ena && cnt==4'd10)

DC使用全书(Design Compiler)

DC学习----第一章基本概念 作者:未知时间:2010-08-15 15:02:50 来自:网络转载 1.1 启动文件 启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为“.synopsys_dc.setup”的启动文件,启动时,DC会以下述顺序搜索并装载相应目录下的启动文件: 1)、DC的安装目录; 2)、用户的home目录; 3)、当前启动目录。 注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置。 下面是一个DC启动文件的实例,它包含了几乎所有重要的设置,下文将结合该实例解释启动文件中各项设置的具体含义。 例1-1(一个DC启动文件): search_path= search_path + {“.”, synopsys_root + “/dw/sim_ver” } search_path= search_path + { “~/risc32/synthesis/libraries” } target_library={ tcb773stc.db } synthetic_library={dw_foundation.sldb} link_library = { “*”, dw_foundation.sldb, tcb773stc.db } symbol_library = { tcb773s.sdb } synlib_wait_for_design_license = {"DesignWare-Foundation"} alias rt “report_timing” designer= XXXXX company= “ASIC Lab, Fudan Univ.” search_path指定了综合工具的搜索路径。 target_library为综合的目标库,它一般是由生产线提供的工艺相关的库。 synthetic_library是综合库,它包含了一些可综合的与工艺无关的IP。dw_foundation.sldb是Synopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑、可综合存储器等IP,在综合是调用这些IP有助于提高电路性能和减少综合时间。 link_library是链接库,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。 symbol_library为指定的符号库。 synlib_wait_for_design_license用来获得DesignWare-Foudation的许可(license)。 alias语句与UNIX相似,它定义了命令的简称。 最后的designer和company项则表明了设计者和所在公司。 另外,在启动文件中用符号“/*” 和“*/” 进行注释。 1.2 设计实体 在DC中,总共有8种设计实体: λ设计(Design):一种能完成一定逻辑功能的电路。设计中可以包含下一层的子设计。 单元(Cell):设计中包含的子设计的实例。λ λ参考(Reference):单元的参考对象,即单元是参考的实例。 端口(Port):设计的基本输入输出口。λ λ管脚(Pin):单元的输入输出口。 连线(Net):端口间及管脚间的互连信号。λ λ时钟(Clock):作为时钟信号源的管脚或端口。

dc使用

DC使用说明 文件说明:在进行下面的演示时需要用到两个文件,一个是example1.v,它是描述一个电路的verilog代码,我们的目标就是用DC综合这个代码得到满足约束条件的电路网表;另一个是dc.scr,它是综合example1.v的脚本文件。这两个文件都在/home/student1000目录下,大家把它们拷贝到自己的目录下,以备使用。DC既可使用图形界面,也可不使用图形界面而直接运行脚本来综合电路。 一、DC图形界面的使用。 1.DC图形界面的启动 1.1 打开一个终端窗口,写入命令dv –db_mode,敲入回车。 则DC图形界面启动,如下图所示

红框处是DC的命令输入框,以下在图形界面上的操作都可以在命令输入框中输入相应的命令来完成。 选择Help----- Man Pages可以查看DC的联机帮助。相应指令:man。例:man man表示 查看man命令的帮助。man create_clock表示查看creat_clock命令的帮助。

2.设置库文件 选择File---- Setup 需要设置以下库文件,如下图。 相应指令: set search_path [list /tools/lib/smic25/feview_s/version1/STD/Synopsys \ /tools/lib/smic25/feview_s/version1/STD/Symbol/synopsys] set target_library { smic25_tt.db } set link_library { smic25_tt.db } set symbol_library { smic25.sdb }

中文DC文档

max_transition可以定义为上升或下降电阻和线网负载的乘积,除了工艺库中提供的,用户也可自己定义,而实际采用的是最严格的那个定义值。 相比较max——transition并不直接控制线网的实际电容,而max_capacitance作为直接控制电容的限制而提出的。但是其cost function是基于总的电容而不是瞬态时间。二者可以同时定义。没有违反约束的定义是:驱动pin或者是port的max capacitance大于或者是等于所有被驱动管的电容之和。 Max transition和max fanout 和max capacitance可以用来决定设计中的buffer个数。―――影响时间参数 优化约束―――对时间的约束优先于对面积的约束。在满足对面积的约束之前,会尽量的考虑满足对时间约束条件的满足。 对时间的约束―――-时序电路中通过对时钟的定义来达到,set input delay和set output delay。 ――――组合电路通过对set max delay和set min delay来设定点点之间的时间延迟,max delay通过设定set max delay和creat clock来达到; 而min delay通过设定set min delay和对保持时间的要求来达到。其中的使用set fix hold来固定保持时间。 优化的过程就是减少代价函数的过程――包括设计规则代价函数和优化代价函数。Max delay cost;min delay cost;max power cost;max area cost; 其中max delay cost是代价函数中具有最优权。 Max delay cost的计算:最差的违背和每个路径组的权重之积――worst violation;path group; 当设计不能满足时序单元的建立时间的要求的时候,违背就发生了。一般,把由一个时钟约束的路径组合成一个路径组,这样每个时钟都建立了一个单独的路径组,而剩余的路径组合成默认的路径组,如果在没有时钟的情况下,所有的路径都组合成一个默认的路径组。而综合总是针对路径进行的,所以很容易给每个路径定义其权重。如:max delay cost=1×1+1×2+1×3=6 min delay cost次重。与路径无关,是所有的最差的min delay违背之和,当实际的延迟时间小于设定的期望的延迟时间的时候,违背就发生了。如:min delay=1+2+3=6 max power是用于ECL电路中。 综合时候的时钟设定: 设定时钟树的时候,使用set dont touch network来设定时钟的dont touch参数值,防止 buffers。 Synopsys的STA不报告时序单元中针对时钟管脚的延迟(认为是理想状态-0)。如果时钟经过门单元的话,则不能认为时钟延迟是0,所以也要设定set clock skew-proagated选项来得到非零的时钟延迟,如果ASIC提供商已经定义了相对于时序单元管脚的潜在的时钟skew的上限的话,可以用set clock skew -uncertainty来定义skew。在设定完时钟之后,我们要使用set input delay和set output delay-option来设定输入输出端口的时间设定。用set multicycle path来设定复合时钟。

synopsys_DC-200809安装图文详解

Synopsys Design Compiler 2008.09安装图文详解 安装环境说明:此文讲述的是基于虚拟机VMware 中的Ubuntu10.04系统安装DC 的详细过程。在其它Linux 系统安装也可以循此步骤安装。 安装资源准备:synopsys installer 2.0版本;scl(scl_v10.9.3_common 和scl_v10.9.3_linux);DC _200809(Design Compiler_200809_common 和Design Compiler_200809_linux);license 。 破解工具:EFA LicGen 0.4b 和 Synopsys SSS Feature Keygen 。 安装的目录结构:在安装的过程中会选择要安装的路径,这些指安装后的文件夹结构。 安装过程:(安装是在root 权限下进行的,推荐) 1. 安装前确保Linux 系统已经安装了csh .若没有安装,通过命令apt-get installer csh 安装, 如下所示: (注:我之前死活装不上CSH ,发现需要更新一下sudo apt-get update ) 2. 安装installer :将synopsys installer2.0 解压到installer 文件夹即可. 3. 安装SCL : 通过命令./installer –gui ,采用图形化用户界面的方式安装。首先用cd 命令转 到installer 目录下,然后执行 ./installer –gui 命令。如图所示:(参照图中下方两行命令)

选中目标后,点击Done。 接下来一直点击Next就行,出现下面的情况,点击NO,继续安装。

DC综合操作流程_设置流程

总流程 1:库的设置 2:设计的读入 3:设置环境属性 (1)set_operating_conditions (2)set_wire_load_model和set_wire_load_mode (3)set load (4)set_drive或者set_driving_cell 4:设计规则约束 (1)set_max_transtion (2)set_max_capacitance (3)set_max_fanout 5:优化约束 (1)create_clock (2)set_clock_uncertainty (3)set_clock_latency (4)set_input_delay (5)set_output_delay (6)set_false_path (7)set_multicycle_path (8)set_max_delay和set_min_delay (9)set_max_area

7:一些编译命令及DC的输出格式 注意: 1:在前端设计中一般不做hold_time的约束,hold_time的约束可以在后端修复!!!

总流程: 1:对库进行基本设置,如下:设置完成后应该查看.synopsys_dc.setup里面库的设置和软件application setup处的设置是否一样!DC的初始化文件.synopsys.dc.setup需要用ls –a显示,命令:more .synopsys.dc.setup查看文件内容!

2:读入设计,两种方法:read和analyze+elaborate Analyzer是分析HDL的源程序并将分析产生的中间文件存于work(用户可以自己指定)的目录下;Elaborate则在产生的中间文件中生成verilog的模块或者VHDL的实体缺省情况下,elaborate读取的是work目录中的文件

SynopsysDC中文培训实验

SYNOPSYS Lab1 Setup and Synthesis Flow 缩略词:Design Compile =DC; 备注:UNIX%代表在linux终端下进行操作,其余的代表在DC下进行DC命令输入 前言: DC(Design Compiler)是Synopsys的logical synthesis优化工具,它根据design description 和constraints自动综合出一个优化了的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和netlist等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。 基本的综合流程:

该基本综合流程包含下列步骤: 1. 发展HDL文件 输入Design Compiler的设计文件通常都是用诸如VHDL和Verilog HDL等 硬件描述语言编写。这些设计描述必须小心地编写以获得可能的最好的综合结果。在编写HDL代码时,你需要考虑设计数据的管理、设计划分和HDL编码风格。划分和编码风格直接影响综合和优化过程。 虽然流程中包含该步骤,但实际上它并不是Design Compiler的一个步骤。你不能用Design Compiler工具来编写HDL文件。 2. 指定库 通过link_,target_,symbol_,和synthetic_library命令为Design Compiler指定链接库、对象库、符合库和综合库。 链接库和对象库是工艺库,详细说明了半导体厂家提供的单元和相关信息,象单元名称、单元管脚名称、管脚负载、延迟、设计规则和操作环境等。 符号库定义了设计电路图所调用的符号。如果你想应用Design Analyzer图形用户界面,就需要这个库。 另外,你必须通过synthetic_library命令来指定任何一种特殊的有许可的设计工具库(你不需要指定标准设计工具库)。 3. 读入设计 Design Compiler使用HDL Compiler将RTL级设计和门级网表作为设计输 入文件读入。通过analyze和elaborate命令读入RTL级设计,通过read_file或read命令读入门级网表。Design Compiler支持所有主要的门级网表格式。 如果你用read_file或read命令读入RTL设计,等于实现了组合3analyze和elaborate命令的功能。 4. 定义设计环境 Design Compiler要求设计者模拟出待综合设计的环境。这个模型由外部 的操作环境(制造流程、温度和电压)、负载、驱动、扇出、线负载模型等组成。它直接影响到设计综合和优化的结果。利用图2-4中该步骤下所列的一系列命令来定义设计环境。5. 设置设计约束 Design Compiler利用设计规则和最优化约束来控制设计的综合。厂家工 艺库提供设计规则以保证产品符合规格、工作正常。典型的设计规则约束转换时间(set_max_transition)、扇出负载(set_max_fanout)和电容(set_max_capacitance)。这些规则指定了要求的工艺,你不能违反。当然,你可以设置更严格的约束。 最优化约束则定义了时序(时钟、时钟错位、输入延时和输出延时)和面积(最大面积)等设计目标。在最优化过程中,Design Compiler试图去满足这些目标,但不会去违反任何设计规则。利用图2-4中该步骤下所列的一系列命令来定义这些约束。为能够正确地优化设计,必须设置更接近现实情况的约束。 你选择的编译策略将影响设计约束的设置。流程中的步骤5和步骤6是相互依赖的。 6. 选择编译策略 你可以用来优化层次化设计的两种基本编译策略被称为自顶向下和从下上。 在自顶向下的策略里,顶层设计和它的子设计一起进行编译。所有的环境和约束设置都根据顶层设计来定义。因此,它会自动的考虑内部模块的依赖性。但对于大型设计,这种方法并不实用,因为所有的设计必须同时贮存在内存里。 在从下到上的策略里,分别对子设计进行约束和编译。在成功编译后,这些设计都被赋予一个dont_touch参数,防止在随后的编译过程中对它们进行进一步的改变。然后这些编

synopsys工具安装教程

前言:这是本人经过两个星期的奋斗,从对linux命令的生涩到熟练,对后端工具的陌生到熟悉的一段战斗史!!!下面我把我的操作过程详细写下,供大家学习参考!! 一:准备工作 所需平台 1、vmware9 2、RHEL(红帽企业版)6.3 Synopsys 工具 1、installer_v3.0(安装synopsys EDA tools 的图形界面的安装工具) 2、scl_10.9.3(synopsys license 管理工具,用于启动tools 的features) 3、dc_2009.06(逻辑综合工具) 4、icc_2009.06(布局布线工具) 5、pt_2012.12(时序分析工具) License生成工具 1、EFA LicGen 0.4b 2、Synopsys SSS Feature Keygen 3、Synposys.src(最新的据我所知是40kb大小,有比较全的features) 二:搭建RHEL 1、安装vmware:本章节详见另一个文档。文档名为“vmware安装手册”。 还有一份汉化包,需要可自行下载。 2、安装RHEL:本章详见另一个文档。文档名为“RHEL6.3安装手册”。 Ps:有一个页面会让你选择安装的软件包,这个时候人工勾上所有的软件包,不然启eda 工具的时候会发现很多系统库找不到。 三:vmware tools安装 1、以root用户进入linux,找到左上角的VM选项,下拉之后选择安装wmware tools。

过一会儿会弹出来一个框框,显示vmwaretools-9.2.2-893683.tar.gz 然后新开一个终端,输入cd /media 你会看到vmwaretools-9.2.2-893683.tar.gz就在那里。然后把他拷贝出来,后解压安装。具体命令可以网上搜索。 四:license制作 License制作要用到上述的材料,具体详见另一个文档。文档名为“license制作”。将license文件,即synopsys.dat文件放到linux下的共享文件夹。 五:软件安装 注意:安装之前先确保可以使用共享文件夹,一般是cd /mnt/hgfs/共享文件夹名字。拷贝文件都是从这里开始的。 1. 目录结构,本人以用户登录,建了/homr/hy/eda/synopsys 文件夹,下面是文件夹内部的 目录结构,仅供参考以及便于后面的说明 /eda/synopsys | ---- installer3.0 | ---- scl | ---- license | ---- dc200906 2. 安装installer,将installer 3.0 解压到installer 文件夹即可; 3、安装SCL 首先将scl下的两个tar包(scl_v10.9.3_common.tar 和scl_v10.9.3_linux.tar)放到scl/temp 文件夹中,不用解压缩,installer 会自动分析压缩包的。 然后进入到installer 文件中,运行./setup.sh 然后会提示选择安装源,选择/eda/synopsys/scl/temp,按照提示继续向下,最后会提示安装路径,选择 /eda/synopsys/scl 即可。 4、然后安装DC。 将DC2009.06 的common 和linux 平台文件解拷贝到同一目录 /home/hy/eda/synopsys /dc2009.06 下.

DC介绍

1 Introduction to Design Compiler1 Design Compiler is the core of the Synopsys synthesis software products. It provides constraint-driven optimization and supports a wide range of design styles. The Design Compiler tools synthesize your HDL description into a technology-dependent,gate-level design. Design Compiler optimizes combinational or sequential designs for speed, area, and power, and supports both ?at and hierarchical designs. Figure 1-1Design Compiler Overview VHDL Source Verilog Source Other Input Formats VHDL Compiler HDL Compiler compile Design Compiler Mapped, Technology- Dependent Netlist

Design Compiler provides links to electronic design automation(EDA) tools, such as place and route tools, and post layout resynthesis techniques, such as in-place optimization. These EDA tool links enable sharing of information (such as forward-directed constraints and delays) between Design Compiler and external tools. This chapter includes the following sections: ?Design Compiler Products ?User Interfaces ?Supported File Formats ?Supported File Formats ?License Requirements ?Resource Requirements ?High-Level Design Flow Design Compiler Products Synopsys provides a spectrum of Design Compiler products,which vary in the complexity of the features offered.Choose the right product for your design environment,based on your synthesis requirements. Using the Design Compiler products, you can ?Produce fast,area-ef?cient ASIC designs by using user-speci?ed gate-array, FPGA, or standard-cell libraries ?Translate designs from one technology to another

DC仿真教程

DC的使用 一、实验目的 1、掌握DC软件的基本使用流程; 2、熟悉基本的DC命令,并理解其意义; 3、对DC综合后的结果进行分析。 二、实验工具 Synopsys 公司电路综合工具Design Complier,即DC。 三、实验内容概述 1、利用DC图形界面进行电路综合; 2、使用DC脚本文件进行电路综合; 3、查看综合报告,根据报告分析电路性能。 四、实验步骤 (文件说明:为了演示方便,在进行下面的实验时需要用到两个文件,一个是example1.v,它是描述一个电路的verilog代码,我们的目标就是用DC综合这个代码得到满足约束条件的电路网表;另一个是dc.scr,它是综合example1.v 的脚本文件。) DC既可使用图形界面,也可不使用图形界面而直接运行脚本来综合电路。当然,它们二者功能是一样的,在图形界面的每步操作都有相应的命令。我们先以较为直观的图形界面来演示各个操作步骤,并给出相应的tcl命令,再用DC 脚本来对电路进行综合。准备好需要综合的文件和相应的脚本文件后,下面就开始我们的实验:

一、DC图形界面的使用。 1.DC图形界面的启动 打开一个终端窗口,键入命令dv –db_mode,回车: 则DC图形界面启动,如下图所示:

红框处是DC的命令输入框,所有以下在图形界面上的操作都可以在这个命令输入框中输入相应的命令来完成。 选择Help-----→Man Pages可以查看DC的联机帮助。相应指令:man。例:man man表示查看man命令的帮助。man create_clock表示查看creat_clock命令的帮助。 2.设置库文件 选择File----→Setup

DC综合教程

启动dc的三种方法: DCSH:dc_shell TCL:dc_shell-t //注意:-t前没有空格 图形化界面:design_vision tip1. 综合主要包括三个阶段:转换(translation)、优化(optimization)与映射(mapping)。 1. 转换阶段:综合工具将高层语言描述的电路用门级的逻辑来实现,对于Synopsys 的综合工具DC 来说,就是使用gtech.db库中的门级单元来组成HDL 语言描述的电路,从而构成初始的未优化的电路。 2. 优化与映射:是综合工具对已有的初始电路进行分析,去掉电路中的冗余单元,并对不满足限制条件的路径进行优化,然后将优化之后的电路映射到由制造商提供的工艺库上。 tip2 DesignWare 是集成在DC综合环境中的可重用电路的集合 DesignWare 分为DesignWare Basic 与DesignWare Foundation,DesignWare Basic 提供基本的电路,DesignWare Foundation提供性能较高的电路结构。如果需要Foundation的DesignWare,需要在综合的时候设置synthetic_library3。 tip3 日志文件 Design Analyzer 在启动时自动在启动目录下面创建两个日志文件:command.log 和view_command.log,用于记录用户在使用Design Compiler 时所执行的命令以及设置的参数,在运行过程中同时还产生filenames.log的文件,用于记录design compiler访问过的目录,包括库、源文件等,filenames.log文件在退出design compiler 时会被自动删除。启动dc_shell时则只产生command.log 的日志文件。 tip4 Propagation Delay传播延时

DC简明教程

1.1 什么是DC? DC(Design Compiler)是Synopsys的logical synthesis优化工具,它根据design description和constraints自动综合出一个优化了的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和netlist等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。 1.2 DC能接受多少种输入格式? 支持.db, .v, .vhd , edif, .vgh等等,以及.lib等相关格式。 1.3 DC提供多少种输出格式? 提供.db, .v, .vhd, edif, .vgh等,并可以输出sdc, .sdf等相关格式文件。 1.4 DC的主要功能或者主要作用是什么? DC是把HDL描述的电路综合为跟工艺相关的门级电路。并且根据用户的设计要求,在timing和area,timing和power上取得最佳的效果。在floorplanning和placement和插入时钟树后返回DC进行时序验证 1.5 如何寻找帮助? 帮助可以用3种求助方式: 1. 使用SOLD,到文档中寻求答案 2. 在命令行中用man+ DC命令 3. 在命令行中用info+ DC命令 1.6 如何找到SOLD文档? SOLD文档可以在teminal中输入sold&执行。 $> sold& 或者用命令 which dc_shell找到dc的安装目录。找到online目录。 1.7 如何配置DC? 综合设置提供必要的参数给DC,使工具能够知道进行综合时所需要的必要的信息,即重要参数:工艺库,目标库,标志库等等。要在.synopsys_dc.setup上设置好这些参数。而.synopsys_dc.setup要在三个目录下有说明,一个是synopsys的安装目录,一个是用户文件夹,最后一个是工程目录。由后一个设置覆盖前一个文件。 参数包括:search_path, target_library, link_library, symbol_library 1.8 target_library 是指什么? target_library是在synthesis的map时需要的实际的工艺库

相关主题
相关文档
最新文档