Synopsys 综合工具Design Compiler(DC)简介一.约束的基本概念:
约束就是对用户的设计中可度量的电路参数(如时序、面积以及电容等)进行声明。没有约束,工具(本文为DC)就不能有效地优化电路,以满足要求。
当DC对设计进行优化时,使用了两类约束:
1)设计规则约束(Design Rule Constraints,DRC):此类约束是工具固有的,由工艺库(technology library)来定义。此类约束是设计功能正确的必要条件,
通过库应用于所有设计上。当然,你可以将它们定义的更紧。
2)优化约束(Optimization Constraints):它们是由用户定义的,前提是可实现的。
用户在使用DC时,可以通过命令行或编写约束文件(.scr)来定义约束。下图给出DC 主要的DRC及优化约束,以及相关的DC命令(dc_shell接口命令)。
DRC:
最大转换时间(Max Transition Time):对于一条连线(net)来说,是其驱动pin
逻辑值转化的最长时间。
最大扇出(Max Fanout):对于驱动pin来讲。
最大/最小电容(Max/Min Capacitance):用来控制连线的电容值。
器件退化(Cell Degradation):某些工艺库包括器件退化表,它列举了某一器件可
驱动的最大电容,是该器件输入pin最大转换时间的
函数。
优化约束:
时序约束:包括
输入/输出延迟(Input/Output Delay):同步路径
最大/最小延迟(Minimum/Maximum Delay):异步路径
最大面积(门数):
最小孔隙度(Min porosity):可布线性
二.约束报告
约束报告提供了设计规则和优化约束的信息。可采用如下命令产生相应报告:report_constraint
report_port
report_clock
report_attribute
report_timing_requirements
用户可通过输出相应报告,来分析设计是否满足了约束。如下例使用report_constraint报告一个计数器的设计约束结果。可看到最后若干项不符合约束定义。
Example
dc_shell> report_constraint
****************************************
Report : constraint
Design : counter
Version: v1998.02
Date : Wed Jan 14 1998
****************************************
Weighted
Group (max_delay/setup) Cost Weight Cost
---------------------------------------------------------
CLK 0.001.00 0.00
default 0.001.00 0.00
---------------------------------------------------------
max_delay/setup 0.00
Total Neg Critical
Group (critical_range) Slack Endpoints Cost
-----------------------------------------------------
CLK 0.00 0 0.00
default 0.00 0 0.00
-----------------------------------------------------
critical_range 0.00
Constraint Cost
-----------------------------------------------------
max_transition 0.00 (MET)
max_fanout 0.00 (MET)
max_delay/setup 0.00 (MET)
critical_range 0.00 (MET)
min_delay/hold 0.40 (VIOLATED)
max_leakage_power 6.00 (VIOLATED)
max_dynamic_power 14.03 (VIOLATED)
max_area 48.00 (VIOLATED)
min_porosity 2.00 (VIOLATED)
三. 基本综合流程
一个基本的综合流程如下图所示,它包括如下步骤:
1)开发HDL模型
2)启动DC shell界面
3)指定相关库
4)读入设计
5)定义设计环境
6)选择编译策略
7)设置设计约束
8)优化
9)分析与调试
10)保存设计数据
11)退出shell界面
3.1开发HDL模型
为了达到最佳综合结果,HDL文件编写应注意如下三方面:
1.设计数据管理:为了简化数据的交换、查找,以及开发数据策划和版本控制方法,
设计者应遵循一定的规则,其中包括文件生成、维护及删除规则;文件命名规范;
设计的层次化目录管理等。
2.设计划分(partitioning):对于大的设计来说,设计划分的好坏影响综合结果。划
分得当会减少编译时间并简化约束定义。
3.设计编码(Coding):好的HDL编码可以产生小而快的设计。
3.2启动DC shell界面
如果要进入dc_shell,可在系统提示符下键入
%dc_shell
3.3 指定相关库
DC使用了如下一些库:
a)工艺库:半导体生产厂定义的器件信息,如器件名、器件管脚名、延迟时间以及管
脚负载等。采用link_library及target_library变量指定。
b)符号库:定义了DA(Design Analyzer)的可视符号。采用symbol_library变量指定。
c)宏单元库(DesignWare):提供很多内建HDL算子的实现模块。
3.4 读入设计
DC既可以读入RTL设计又可以读入门级网表。RTL设计可采用analyze和elaborate命令读入,而网表采用read_file读入。
3.5 定义设计环境
设计环境指围绕将要进行综合的设计的环境,由一套属性(attribute)和约束(constraint)来模拟。主要包括:
操作条件:温度、电压和制造过程。
线负载模型:通过估计连线长度、扇出以及面积等,预估连线延迟。
系统接口:包括驱动设计的器件以及被驱动的负载定义,如下图所示。
3.6 选择编译策略
对一个层次式设计来说,用户可选择的编译策略包括:
a)自顶向下的编译
b)自底向上的编译
c)特征化编译(characterize)
3.7 设置设计约束
DC使用两类约束来优化设计:
a)DRC:固有约束,包括
b)优化约束:用户定义的约束,包括
3.8 优化
DC使用目标工艺库、DRC以及优化约束对设计进行综合,并将其变为专门面向工艺的门级实现。
可采用compile命令启动综合过程。
3.9 分析与调试
DC能生成报告帮助用户分析优化结果,并调试出现的问题。
3.10 保存设计数据
使用write命令存储设计的数据(如网表、SDF文件等)。
3.11 退出shell界面
用户可以在任何时候退出dc_shell,但是此时dc_shell并不会自动保存数据。可以采用下面任何一种方法退出
a)输入quit
b)输入exit
c)按Ctrl+d
四. 设计实例
下面的例子给出一个约束文件,采用自顶向下的编译策略,对Adder16.v进行优化。/* specify the libraries */ 指定库
target_library = my_lib.db
symbol_library = my_lib.sdb
link_library = "*" + target_library
/* read the design */读入设计
read -format verilog Adder16.v
/* define the design environment */定义设计环境
set_operating_conditions WCCOM
set_wire_load "10x10"
set_load 2.2 sout
set_load 1.5 cout
set_driving_cell -cell FD1 all_inputs()
set_drive 0 clk
/* set the optimization constraints */设置优化约束
create_clock clk -period 10
set_input_delay -max 1.35 -clock clk {ain, bin}
set_input_delay -max 3.5 -clock clk cin
set_output_delay -max 2.4 -clock clk cout
set_max_area 0
/* map and optimize the design */映射并优化设计
uniquify
compile//执行综合并优化
/* analyze and debug the design */分析并调试设计
report_constraint -all_violators
report_area
/* save the design database */保存设计数据
write -format db -hierarchy -output Adder16.db
用户可以采用如下几种方法执行命令:
a)进入dc_shell,并逐个键入命令
b)进入dc_shell,并执行脚本文件,采用include命令(dcsh模式)或source命令(Tcl
模式)。如假设上面的脚本文件称作run.scr,则在dcsh模式下运行
dc_shell> include run.scr
c)在UNIX命令行模式下运行脚本,如
% dc_shell -f run.scr
Dreamweaver 优点 1.最佳的制作效率 Dreamweaver可以用最快速的方式将Fireworks,FreeHand,或Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dreamweaver能与您喜爱的设计工具,如Playback Flash,Shockwave和外挂模组等搭配,不需离开Dreamweaver便可完成,整体运用流程自然顺畅。除此之外,只要单击便可使Dreamweaver自动开启Firework或Photoshop来进行编辑与设定图档的最佳化。 2.网站管理 使用网站地图可以快速制作网站雏形、设计、更新和重组网页。改变网页位置或档案名称,Dreamweaver 会自动更新所有连结。使用支援文字、HTML码、HTML属性标签和一般语法的搜寻及置换功能使得复杂的网站更新变得迅速又简单。 3.无可比拟的控制能力 Dreamweaver是唯一提供Roundtrip HTML、视觉化编辑与原始码编辑同步的设计工具。它包含HomeSite和BBEdit等主流文字编辑器。帧(frames)和表格的制作速度快的令您无法想像。进阶表格编辑功能使您简单的选择单格、行、栏或作未连续之选取。甚至可以排序或格式化表格群组,Dreamweaver 支援精准定位,利用可轻易转换成表格的图层以拖拉置放的方式进行版面配置。所见即所得Dreamweaver 成功整合动态式出版视觉编辑及电子商务功能,提供超强的支援能力给Third-party厂商,包含ASP,Apache,BroadVision,Cold Fusion,iCAT,T ango与自行发展的应用软体。当您正使用Dreamweaver 在设计动态网页时,所见即所得的功能,让您不需要透过浏览器就能预览网页。梦幻样版和XML Dreamweaver将内容与设计分开,应用于快速网页更新和团队合作网页编辑。建立网页外观的样版,指定可编辑或不可编辑的部份,内容提供者可直接编辑以样式为主的内容却不会不小心改变既定之样式。您也可以使用样版正确地输入或输出XML内容。 Dreamweaver还集成了程序开发语言,对ASP、.NET、PHP、JS的基本语言和连接操作数据库,都是完全支持的。 缺点 一、难以精确达到与浏览器完全一致的显示效果。也就是说您在所见即所得网页编辑器中制作的网页放到浏览器中是很难完全达到您真正想要的效果,这一点在结构复杂一些的网页(如分帧结构、动态网页结构)中便可以体现出来; 二、页面原始代码的难以控制性,比如您在所见即所得编辑器中制作一张表格也要几分钟,但您要它完全符合您要求可能需要几十分钟,甚至更多时间。而相比之下,非所见则所得的网页编辑器,就不存在这个问题,因为所有的HTML代码都在您的监控下产生,但是由于非所见则所得编辑器的先天条件就注定了它的工作低效率。如何实现两者的完美结合,则既产生干净、准确的HTML代码,又具备则见则所得的高效率、直观性,一直是网页设计师梦想。在DREAMWEAVER之前,FRONTPAGE98一直被人们认为是最好的所见即所得网页编辑器,但是它同样继承了所见即所得的种种劣性。但是我说过这是在DREAMWEAVER之前,现在我无意说DREAMWEAVER已经实现网页设计师的梦想,但我觉得DREAMWEAVER正在努力向这个梦想一步步走去。 FrontPage 以前,想在网页中使用数据库,常常需要通过麻烦的数据库连接设置,而设置时又会接触到繁琐的ASP、CGI什么的。现在使用FrontPage 2002来连接数据库就轻松多了,因为FrontPage 2002在数据库接口功能方面做了很大改进,特别是它提供的数据库接口向导功能可以替用户产生在线数据库所需要的一切功能,包含数据库的建立、窗体以及所需的各种页面。
Web安全测试——手工安全测试方法及修改建议 发表于:2017-7-17 11:47 ?作者:liqingxin ? 来源:51Testing软件测试网采编 字体:???|??|??|??|?|?推荐标签:??? 常见问题 (CrossSite Script)跨站脚本攻击 (CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊目的。 方法:? 在数据输入界面,添加输入:,添加成功如果弹出对话框,表明此处存在一个XSS?。 或把url请求中参数改为,如果页面弹出对话框,表明此处存在一个XSS 漏洞 修改建议: 过滤掉用户输入中的危险字符。对输入数据进行客户端和程序级的校验(如通过正则表达式等)。 Eg:对用户输入的地方和变量有没有做长度和对”<”,”>”,”;”,”’”等字符是否做过滤 与跨站脚本(XSS) CSRF与跨站脚本(XSS),是指请求迫使某个登录的向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动。 测试方法: 同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。 修改建议: 在不同的会话中两次发送同一请求并且收到相同的响应。这显示没有任何参数是动态的(会话标识仅在cookie 中发送),因此应用程序易受到此问题攻击。因此解决的方法为 Hashing(所有表单都包含同一个伪随机值): 2. ?验证码 ‐Time Tokens(不同的表单包含一个不同的伪随机值)客户端保护措施:应用防止CSRF攻击的工具或插件。 3.注入测试
1.数据库应用系统的设计步骤 按规范设计的方法可将数据库设计分为以下六个阶段 (1)需求分析; (2)概念结构设计; (3)逻辑结构设计; (4)数据库物理设计; (5)数据库实施; (6)数据库运行和维护。 2.需求分析 需求收集和分析是数据库应用系统设计的第一阶段。明确地把它作为数据库应用系统设计的第一步是十分重要的。这一阶段收集到的基础数据和一组数据流图(Data Flow Diaˉgram———DFD)是下一步设计概念结构的基础。概念结构对整个数据库设计具有深刻影响。而要设计好概念结构,就必须在需求分析阶段用系统的观点来考虑问题、收集和分析数据及其处理。如何分析和表达用户需求呢?在众多的分析方法中,结构化分析(Structured Analysis,简称SA方法)是一个简单实用的方法。SA方法用自顶向下、逐层分解的方式分析系统。用数据流图,数据字典描述系统。然后把一个处理功能的具体内容分解为若干子功能,每个子功能继续分解,直到把系统的工作过程表达清楚为止。在处理功能逐步分解的同时,它们所用的数据也逐级分解。形成若干层次的数据流图。数据流图表达了数据和处理过程的关系。处理过程的处理逻辑常常用判定表或判定树来描述。数据字典(Data Dictionary,简称DD)则是对系统中数据的详尽描述,是各类数据属性的清单。对数据库应用系统设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典是各类数据描述的集合,它通常包括以下5个部分: (1)数据项,是数据最小单位。 (2)数据结构,是若干数据项有意义的集合。 (3)数据流,可以是数据项,也可以是数据结构。表示某一处理过程的输入输出。 (4)数据存储,处理过程中存取的数据。常常是手工凭证、手工文档或计算机文件。 (5)处理过程。
文本编辑器应用总结 一.lhgeditor文本编辑器 lhgeditor组件文件结构: 1. lhgeditor.js:组件的核心JS文件 2. lhgeditor.css:组件的样式表文件 3. images:组件所需的图片都在此文件夹中 以上三个文件为组件所必须的三个文件,组件包中其它以“_”开头的文件为示例的演示文件,实际使用中不需要这些文件。当然框架核心文件lhgcore.js是每个组件都必须用到的文件,记得加载组件前先要加载此文件。 lhgeditor组件使用说明: 1. 在调用组件的页面加载lhgcore.j s和lhgeditor.js两个文件。 2. 在window.onload函数里加入J.editor.add(编辑器的id).init(); 例:
二.nicEdit文本编辑器