多智能体系统的协同群集运动控制
《多智能体系统的协同群集运动控制》以多智能体系统协同群集运动控制为主线,首先介绍了图论和控制器设计所用到的基础理论知识;其次,分别从拓扑结构的边保持和代数连通度两个角度介绍了连通性保持条件下的协同群集运动控制协议设计方法;进而,针对典型的轮式移动机器人非完整约束模型介绍了连通性保持条件下的协同控制策略,为简化系统复杂拓扑结构,还介绍了基于骨干网络提取的协同群集运动控制策略;书中将个体动态模型提升到高阶非线性系统模型,介绍了高阶非线性系统协同控制协议设计方法;最后,针对多智能体系统非合作行为检测与隔离进行了详细介绍,并提出了相关算法。内容简介本书以多智能体系统协同群集运动控制为主线,首先介绍了图论和控制器设计所用到的基础理论知识;其次,分别从拓扑结构的边保持和代数连通度两个角度介绍了连通性保持条件下的协同群集运动控制协议设计方法;进而,针对典型的轮式移动机器人非完整约束模型介绍了连通性保持条件下的协同控制策略,为简化系统复杂拓扑结构,还介绍了基于骨干网络提取的协同群集运动控制策略;书中将个体动态模型提升到高阶非线性系统模型,介绍了高阶非线性系统协同控制协议设计方法;最后,针对多智能体系统非合作行为检测与隔离进行了详细介绍,并提出了相关算法。本书可作为系统与控制及其相关研究领域的科研工作者、工程技术人员、高等院校师生的参考书,也可作为研究生和高年级本科生的教科书。图书在版编目(CIP)数据多智能体系统的协同群集运动控制/陈杰,方浩,辛斌著.一北京:科学出版社,2017(系统与控制丛书)ISBN978-7-03-051165-2L.①多…Ⅱ.①陈…②方…③辛…Ⅲ.①人工智能-研究Ⅳ.①TP18中国版本图书馆CP数据核字(2016)第310934号责任编辑:杨向萍裴育纪四稳/责任校对:桂伟利责任印制:张倩/封面设计:蓝正舞学出服出版北京东黄城根北街16号邮政编码:100717http://www.sciencep.com京通州皇家印刷厂印刷科学出版社发行各地新华书店经销2017年1月第一版开本:720×10001/162017年1月第一次印刷印张:1414字数:268000定价:95.00元(如有印装质量问题,我社负责调换)《系统与控制丛书》编委会主编:郭雷中国科学院数学与系统科学研究院副主编:陈杰北京理工大学编委:洪奕光中国科学院数学与系统科学研究院黄捷Chinese University of Hong Kong姜钟平Polytechnic Institute of New YorkUniversity USAFrank lewisUniversity of Texas at Arlington, USA林宗利University of Virginia, USA申铁龙Sophia University, Japan谈自忠Washington University, USA谢立华Nanyang Technological UniversitySingapore殷刚Wayne State University, USA张纪峰中国科学院数学与系统科学研究院周东华清华大学编者的话我们生活在一个科学技术飞速发展的信息时代,诸如宇宙飞船、机器人、因特网、智能机器及汽车制造等高新技术对自动化提出了更高的要求。系统与控制理论也因此面临着更大的挑战。它必须能够为设计高水平的物理或信息系统提供原理和方法,使得设计出的系统能感知并自动适应快速变化的环境。为帮助系统控制专业的专家、工程师以及青年学生迎接这些挑战,科学出版社和中国自动化学会控制理论专业委员会合作,设立了《系统与控制丛书》的出版项目。本丛书分中、英文两个系列,目的是出版一些具有创新思想的高质量著作,内容既可以是新的研究方向,也可以是至今仍然活跃的传统方向。研究生是本丛书的主要读者群,因此,我们强调内容的可读性和表述的清晰。我们希望丛书能达到这些目的,为此,期盼着大家的支持和奉献!《系统与控制丛书》编委会2007年4月1日序言自20世纪50年代以来,控制科学不断发展,诞生了诸如最优控制、鲁棒控制、非线性控制等众多研究方向以及大量的科研成果,极大地推动了第三次工业革命的发展。但近年来,由于控制对象规模呈爆炸式增长、信息化社会生成海量数据,系统与控制科学作为一门面向应用的学科正面临着许多重大挑战;同时,计算机科学以及人工智能的兴起也为系统与控制科学的发展带来了新的机遇和启示。受到自然界广泛存在的生物种群有序运动现象的启发,多智能体的研究开始受到广大学者的关注。70年代末期,智能体概念初现,主要研究如何通过协作方式分布式求解问题。90年代,多智能体系统涌现出自主性、社会能力、反应性等特性,使多智能体协同成为控制领域的研究热点。目前,多智能体协同已经应用于智能机器人交通控制、柔性制造、网络自动化和作战智能体模型等领域。毫无疑问,未来几年多智能体协同仍将吸引更多学者的广泛关注,继续在系统与控制科学的发展中扮演十分重要的角色。多智能体协同控制所要解决的根本问题在于如何设计合理的控制协议来协调多个个体统一完成任务,这与传统基于单一对象的控制理论有很大的区别。陈杰教授团队对此进行了大量的研究工作,并取得了很好的研究成果。该书以多智能体系统协同群集运动控制为主线,结合作者在该领域多年的研究积累及国内外最新的研究成果,给出了基于代数连通度估计、基于骨干网络等多种分布式群集运动控制方法,同时考虑了系统连通性保持、模型参数不确定性、多任务约束等诸多限制条件,扩展了相应成果的应用范围。全书内容丰富,论述深入浅出,既有严谨的理论推导与证明,又有数值仿真与实物实验验证,是一本难得的介绍控制理论在多智能体协同控制方面最新研究进展的学术专著。当前世界正在发生着深刻的变革,以互联网产业化、工业智能化、工业一体化为代表的第四次工业革命正悄然到来。该书所研究的内容顺应了当前工业发展的潮流,在民用、军用等领域有着广阔的应用前景,也非常适合相关领域的学者和工程技术人员参考阅读。序言我相信,该书的出版能够对多智能体协同控制领域的研究发展有所帮助,也希望作者能够在该方向上持续研究,取得更多的高水平研究成果。郑列了西安交通大学教授中国自动化学会理事长中国工程院院士2016年12月前言智能体的概念来源于分布式人工智能的思想,通常而言,可以把智能体定义为用来完成某类任务,能作用于自身和环境、有生命周期的一个物理的或抽象的计算实体。智能体的特点是具有自主性、局部通信/感知能力、分布式协作能力、任务分解能力、自适应性和推理能力。而多智能体系统是由多个智能体组成的具有松散耦合结构的,并且通过系统中智能体之间以及智能体与环境之间的通信、协商和协作来共同完成单个智能体( Agent)因能力、知识或资源上的不足而无法解决的问题的系统。多智能体系统通过相互协作,可以完成超出它们各自能力范围的任务,使得系统整体能力大于个体能力之和。鲁棒性、分散性、自组织性是多智能体系统动态行为的基本特征。多智能体协同控制是目前控制科学研究领域的一个热点课题在许多国际期刊及会议中,每年均有大量关于多智能体系统的研究文章出现。多智能体系统由个体的动态模型、通信网络拓扑、分布式控制律(或者协议/规则)三个基本要素构成。本书以多智能体系统协同群集运动控制为主线,围绕上述三个基本要素,首先介绍图论和控制器设计所用到的基础性理论等背景知识;其次面向典型应用,考虑实际约東条件,分别从拓扑结构的边保持和代数连通度两个角度介绍通信连通性保持条件下的协同群集运动控制协议设计方法;进而,从个体动态模型和拓扑结构模型两方面继续深入,针对典型的轮式移动机器人非完整约束模型介绍连通性保持条件下的协同控制策略,为简化系统拓扑结构对控制器设计的影响,介绍基于骨干网络提取的协同群集运动控制策略;书中还将个体动态模型由简单的一阶、二阶线性模型提升到高阶非线性系统模型,介绍高阶非线性系统协同控制协议设计方法;最后针对多智能体系统非合作行为检测与隔离进行详细介绍,并提出相关算法。本书内容自成体系,旨在向读者详细介绍多智能体系统协同群集运动控制的基础理论和最新研究成果本书由11个章节构成。第1章为基础知识部分,首先对多智能体群集运动控制、一致性控制以及非合作行为检测与补偿进行全面的综述,其次介绍在理论推导过程中所用到的代数图论的基础理论知识。第2章介绍在无法获取动态领航者智能体的加速度信息的条件下,进行连通性保持的有界群集运动控制方法。第3章从前言全局连通性的角度,介绍基于代数连通度分布式估计的连通性保持控制方法。第4章针对非完整约束轮式机器人,介绍连通性保持下的多移动机器人群集控制。第5章介绍层次型骨干网络的建立方法,以及基于骨干网络提取的协同避障运动控制方法。第6章针对参数不确定的高阶非线性多智能体系统,设计分布式控制器实现系统的一致性。第7章针对 Brunovsky型高阶非线性多智能体系统,设计分布式一致性控制器。第8章针对高阶非线性多智能体系统,设计自适应鲁棒一致性控制器,并对控制器性能进行分析。第9章在多任务约束下,设计多智能体一致性控制器。第10章介绍一阶多智能体系统的非合作行为检测、隔离与修复算法。第11章介绍基于邻居相关状态的多智能体非合作行为检测与隔离算法。感谢中国自动化学会控制理论专业委员会、《系统与控制丛书》编委会对本书出版的大力支持。本书得到了国家杰出青年科学基金项目(60925011)、国家自然科学基金创新研究群体项目(61321002、61621063)、国家自然科学基金重大国际合作研究项目(61120106010)、国家自然科学基金项目(61573062、61304215、61673058)、北京市优秀博士学位论文指导教师科技项目(20131000704)的资助,在此表示衷心的感谢。同时,还要感谢本领域相关同行学者在本书撰写过程中给予的热心支持,以及毛昱天、黄捷、杨庆凯、李俨、尉越、卢少磊、吴楚、王雪源、商成思、开昰雄、罗明等同学对本书出版给予的大力帮助。由于作者水平有限,书中疏漏和不妥之处在所难免,敬请读者批评指正。作者2016年11月目录编者的话序言前言第1章绪论··················.······1.1多智能体分布式群集运动控制12多智能体一致性控制概述51.2.1低阶积分器多智能体一致性……1.2.2高阶线性多智能体一致性…111.2.3高阶非线性多智能体一致性1713多智能体非合作行为检测与补偿概述2114代数图论背景知识…………26第2章连通性保持条件下多智能体系统群集运动控制3121研究背景3122问题描述312.3领航跟随群集运动控制律∴……………………………·3224稳定性分析……………3425仿真和实验372.51数值仿真37252实物实验,,,,·,,,,,………………402.6结论………………43第3章基于代数连通度估计的多智能体系统群集运动控制·4431研究背景443.2问题描述…………………………………………443.3控制律设计∴………………4634入2的分布式估计473.5稳定性分析52
- 2020-12-11下载
- 积分:1
华为面试数字芯片提纲.pdf
本人面试华为海思数字芯片,总结出一份应对数字芯片面试的复习材料华为面试数字芯片提纲解答以及要点备注1、时序逻辑/组合逻辑时序逻辑电路主要由组合逻辑电路和触发器等记忆元件组成,输出不仅取决于当前输入,还和电路原米状态有关(这里原来状态是指的中间的触发器等记忆元件部分的端口值也可能会影响到当前的电路总的输出);组合逻辑电路主要由组合逻辑器件构成,电路无存储元件,输出仅仅取决于当前的输入。同步逻辑/异步逻辑同步逻辑是指的电路驱动时钟是有固定因果关系的逻,异步熤辑是电路驱动时钟之间没有固定因果关系的逻辑。通常同步逻辑电路的驱动时钟来源于同一个时钟源产生的相同时钟或者相位差可预知的不同时钟,这里不包括相位差在一定时钟周期内(例如1000ck)依然无法确定公共周期的同源时钟;异步逻辑的电路驱动时钟来自不同源时钟或者相位差关系不确定的时钟。同步时钟/异步时钟同步时钟指的是时钟源来自于同一个时钟源生成的时钟,其相位差可计算预知,这里不包拈来白同一时钟源但是在一定时钟周期内(例如1000ck)依然无汯确定公共周期的时钟,通常为由PLL生成的非整数分频或者倍频时钟。异步时钟是指的相位差无法预测的时钟,通常来自于不同的时钟源。2、亚稳态的概念/可能出现的场合和抑制手段亚稳态是指触发尜的建立时间或者保持时间不能满足时触发尜的输岀介于0或者1两者之间的某个不稳定态。理想的触发器在时钟到來时刻采样数据,但现实之中时钟边沿通常具有一定斜率,因此数据需要在时钟到来的前后各一段时间内保持稳定,使得触发器能够准确采样数据,否则就可能岀现亚稳态。亚稳态通常出现在同步时钟驱动电路的异步复位信号来临和消失的时候,或者是异步时钟域之冋数据传递的时候。前者解决方案是釆用同步复位(通常会导致电路逻辑资源占用面积增加)/或者是异步复位同步释放方式避免亚稳态;后者通常考虑用昦步FFo,双端口RAM,双触发器,或者是握于杋制等方法进行冋步ε比外还有例如降频,使用速度较快的触发器,改善时钟质量也会有一定效果。3、异步FIFO原理/FFO的深度计算/同步FFO/要求自凵写异步FFO代码/自凵尝试添加约束(H: Desktop Hardware study Async _ FIFO)异步FFO主要用于实现异步时钟域之间的数据传输。异步F|FO由以下几部分构成。●BRAM/DRAM组戍的缓冲区。用于缓存数据流,其深度的设定需要根据输入输岀数据的吋钟差别以及最大连续输入/输岀数据量确定。读写指针。其变化需要根椐FFO的空满状态以及当前的读写请求指令共同确定。当缓存为空则不读,读指针不变;当缓存为满不可写,写指针不变。空满状态标志。由于异步FFO工作在不同时钟域,因此对空满状态的判断依赖于不同时钟域的读指针和写指针。为了便于区分“快一圈”的现象,可以考虑将指针位宽多设置一位,当最髙位相同时候,读指针等于写指针认为是读空,当最高位不同的吋候,读指针等于写指针认为是写满●同步电路。由于两者读写指针比较是在不同时钟域下进行,因此为了避免亚稳态需要进行同步设计。此处通常采用格雷码进行比较(传输端首先 BIN TO GRAY,经过两级触发器在目的端同步,然后 GRAY TO BIN,进行下一步的比较,得出空满状态),保证一次只有一位数据变化,利用格雷码结合两级触发器进行同步后,可以严格保证至少数据不会出错(起码是原地踏步,不会造成满状态写入的情况),中间加的两级触发器公对实际状态做延迟比较(避免了空读和满写),也属于保守预估,最多是不是真空/真满情况下告知空淸,但是不会导致数据出错,属于保守的方法●FFO深度计算,计算主要考虑最坏的情况,例如100wclk里血进来80个这种,需要考虑200个时钟内连续进米160个的情况,然后计算深度也是根据“平均进米一个出去几个,然后乘以最大连续量即可得到FFO深度”这样的方式考虑最大深度同步FFO由」驱动时钟同步,因此可省去中闩同步器以及格雷码编码机制,其作用原理和异步FIFO类似4、双端口RAM的实现/要求自己写双端口RAM(H: Desktop Hardware study async_ Dual _port ram)FPGA内部RAM资源分为 Block ram和 Distribute ram,前者一殷用于大量数据的缓存,后者多用于小部分数据缓存。就速度而言由于 Distribυ ute ran利用FPGA内部 Slicer的LUT存储资源,少量存储的话速度比较快,但是大量存储会对布线造成影响,难以保让时序。FPGA可以配置 Single-port-ram, Simple-port-ram,True- port-ram等形式的RAM,读写模式有 write-first,read-frst,no- change等模式, write-first表明输出端口的数据和写入的数据相冋, read-first表明输出端口的数据为当前地址之前存储的数据,no- change表明输出数据为写入之前一刻的数据不变;Single- port-ram同时只能进行读或写操作; True-port-ram可同时进行读写操作,但是要避免地址冲突,不能两个端口同时对一个地址写入, Simple- port-ram实际上是 True-port-ram只开启了A端口的写入和B端口的输出。5、两级触发器同步/应用场合/MTBF的计算以及2FF的计算两级触发器通常用于异步时钟域之间的单比特信号传输,通常是控制信号。其扣制亚稳态传播的原理并不是避免亚稳态的发生,也无法避免出错信号的继续传输,而是尽量减少亚稳态传播的概率。根据触发器MTBF(平均故障时问间隔)计算,一缬触发器的MTBF=(e^(tmet/c1)/c2*f*a)两级触发器MTBF=(MTBF1)*MTBF2),相当」不稳定态在第一级触发器后被阻断了传播。如果条件更苛刻可考虑三级触发器。6、握手机制/代码(H: Desktop Hardware study async dual_ port ram握于机制通常用于数据传输速率要求不高但要求准确的场合,两边的握手信号都需要各自时钟域的同步器进行同步。当接收端经过冋步电路接收到req信号后锁存总线数据,然后发岀ack信号,ack经过冋步电路后到达发送端,发送端接受后撤销req信号,接收端也撤销掉ack信号,一次握手完成7、同步复位/异步复位/异步复位同步释放/三者比较/代码同步复位指的是时钟有效沿来临的时候进行复位操作,冋步复位使得电路为冋步电路,能够利于仿真,缺点是要求复位信号要大于一个周期,否则无法保证成功复位,此外综合出米的电路实际上并没有利用器件的复位端,而是在输入端插入额外的逻辑电跻,这样増加了额外的逻辑资源消耗。异步复位是指的在仼何时候只要复位信号有效即可复位,不占用额外的逻辑资源,充分利用器件的复位引脚,但是由于来临和结束时间未知,容易引起亚稳态现象对于FPGA的Fip-Fop,一般有同步复位,置位引脚RST/S和异步复位,置位引脚CLR/PRE,对于同步复位,需要引入额外的MUⅹ电路控制RST/S,对资源有一定的占用比较理想的方式是异步复位同步释放,既充分利用了器件的复位引脚,又能够有效避免亚稳态的产生。8、恢复时间/去除时间/ positive or negetive or global skew/ jitter/Recovery time(恢复时间)是指的异步控制信号(例如复位信号)在被断言后到下一个时钟沿的最短时间Recovery time is the minimum amount of time required between the release of an asynchronous signal from theactive state to the next active clock edge.(类比建立时间)( Example: The time between the reset and clock transitionsfor a flip-flop if the active edge occurs too soon after the release of the reset the state of the flip-flop can be unknownUFF5UFF6CDN-aCKNbCKCLKPRemoval time(去除吋间)是指异步控制信号在吋钟沿后需要保持稳定的吋间。 Removal time specifies theminimum amount of time between an active clock edge and the release of an asynchronous control signal.(类比保持时间)这个异步控制信号可以来自于“异步复位同步释放产生的复位信号,如下图”。positive or negetive or globa|skeW分别表明相比| atch clock edge的延迟为正/负/最大延迟减去最小延迟Clock jitter指的是实际周期和理想厝期之间产生的偏差,jter通常由时钟发生器电路,噪声,电源变化引起9、触发器组成/锁存器组成/区别触发器通常包括SR触发器,」触发器,D触发器,T触发器;SR锁存器由与非门或者或非门组成,SR触发由时钟控制逻辑加上双与非门/或非门组成,还有门控SR触发器将时钟换为使能即可。四状态分别为保持/0/1/不允许。不允许态主要是全1/全0同时翻转为0/1不能确定哪个逻辑元件最先变成0/1,从而导致下一时刻不定态D触发器由时钟边沿触发,锁存数据,D触发器是FPGA中的主要元件,T发器作用是翻转信号Q00-1DcLK-(LDLa触发器对边沿敏感,锁存器对电平敏感10、脉冲检测电路(非同步时钟如何处理,快到慢,慢到快)对于慢时钟到快时钟的脉冲检测电路,由于脉冲长度一般大于接收端一个时钟周期,可以利用两级触发器结合一个与门和反相器电路实现单周期脉冲的传输,如图1;对于快时钟到慢时钟区域的检测电路,由于脉冲长度一般较小,可能导致慢时钟区域检测不到,因此可借助脉冲信号作为触发器的时钟信号,然后利用接收端信号重新复位该触发器信号即可,如图2对于相同时钟的脉冲检测电路,可以利用两级触发器结合与门和非门电路,类似方案一11、可综合和不可综合概念/ timescale的理解可综合是指的代码能够被EDA工具映射为具体的逻辑电路,能够在硬件端实现的语句;不可综合指的无法被映射为只体的电路在哽件端,通常用于仿真阶段timescale是指的吋间维度的常量,用于仿真阶段,由吋间最小单元和时间精度两部分组成,例如 timescale1ns/1000s,意思是时间最小延迟单元为1ns,按照1005的精度进行换算,#5.22代表延迟52*100p5,如果是1ns/1s则代表延迟5220s,如果遇到一个模块包含其他模块的情况则精度按照最小的精度计算。精度越高会导致仿真的复杂度越大,仿真需求时间也就越久。12、组合逻辑环路概念缃合逻辑需要避免牛成环路,即绢合逻辑输岀端不绎过仟何时序逻辑就反馈到输入节点形成的环路,这样公产生振荡和毛刺等现象,而且会出现无法预知的结果。这样的组合逻辑坏烙的功能完全依赖丁逻辑元件的延迟和布线延迟,具有很大的不确定性。13、静态时序分析/动态时序分析/二者对比静态时序分析(STA)通过遍历系统中所有路径来计算每条路径是否满足时序要求。无需外部信号激励的输入,只需要按照设计要求作岀对应约束即可。静态时序分析不能分析电路逻辑功能是否满足需求,只能测试设计是否满足时序要求,系统能否在要求的时钟速率下正常运行。静态时序分析的速度较快。动态时序分析是指的对系统生成测试向量并查看输出结果是否满足设计要求的方法。动态时序分析能够验证系统的逻辑功能,但难以通过输入向量测试到所有路径,而且随着输入信号数量增加,验证复杂度会越米越大。14、建立时间/保持时间/数据到达时间/数据需求时间/建立时间裕量/保持时间裕量建立时间( (setup time)是指的时钟边沿到来之前数据保持稳定的最少时间。保持时间( hold time)是指的时钟边沿到来后数据保持稳定的最少时间。数据到达吋间( data arrival time)= Latch+Tlka+Tcq+ Logic建立时间的数据需求时间 data required time/ setup)= Capture+llkb-Tsu- Uncertainty保持时间的数据需求时间 data required time/hod)= Latch+Tk+Thd- Uncertainty( Uncertainty-还是+存疑)建立时间裕量( setup slack)=( data required time- data arrival time)=T-Tsu-(Tcq+ Logic)+ Skew保持时间裕量( hold slack)=( data arrival time- data required time)= Skew+Thd-(Tcq+ Logic15、四类时序路径及起点终点/完整的时序路径包含三部分/建立时间检查,保持时间检查/恢复时间检查,去除时间检查/检查违例的解决方案Start point-All input ports/pins or clock ports /pins of sequential cells are considered as start pointsEnd points-All output ports/ pins or d pin of sequential cells are considered as end pointsA.输入端口到第一级寄存器的数据输入D端之间路径B.最后一级寄存器输出Q端到输出端口之间路径C.系统内部寄存器的时钟端口CLK到下一级寄存器的数据输入端口D之间路径D.输入端口经过组合逻辑到输出端口之间路径个完整的时序路径包括源时钟路径(时钟端到当前寄冇器的时钟输入端),数据跤径(当前寄存器时钟输入端到卜一级寄存器数据输入端),目的时钟路径(时钟端到卜一级寄存器的时钟输入端)建立时间检查上要看数据路径的最大延迟路径,两级寄存器时钟skew最小的情况,淸足建立时间需要有:T+Tskew-Tsetup >(Tcq +Logic保持时间路径主要看数据路径的最小延迟路径,两级寄存器时钟skew最大的情况,淸足保持时间需要有:(cq+Tlogic)> Thd+ Tskew恢复时闩检査和去除时冋检査比较类似建立时间和保持时间检查,检查方式是一样的,主要看这个异步控制信号(通常是经过“例如异步复位同步释放生成的的复位信号”后传递给寄存器的复位信号)到达的时间是否和时钟边沿满足一定的时间关系,否则可能导致复位失败或者控制失败对于建立时间违例,可以考虑对较大的组合逻辑插入寄存器增加一级流水线,或者是考虑降低时钟频率,或者是考虑优化组合逻辑使之延迟降低;对于保持时间违例可以考虑插λ buffer或者两级反相器对效据路径实现延迟。16、时序约束/时钟约束/输入输出约束/时序例外约束/多周期路径约束( Multicycle paths)/伪路径约束( Falsepaths/ min-max约束/ set bus skew吋序约束是指的对电路的吋序提出要求,并在时序约束的基础上检验系统电路是否能够满足设计需求。●时钟约束是指的对系统中出现的时钟信号添加的限定条件,主要有以下类别:1) Primary clock(通过引脚输入系统) creat clock- name clk in- period10- waveform05}[ get ports clk2) Virtual clock(并未连接到系统的任何端口,只是用来做输入信号的参考,而该信号按照这个虚拟时钟的速率传输,只是这个时钟也没有接到系统任何韶位。可以理解为上游芯片的一个数据时钟,只是这个时钟没有接入系统)tcl语言描述为 create clock- name virtual clk-period103) Generated clock(通过PLL或者内部逻辑,如计数分频生成的吋钟) example1: create generated clock-nameclk div2 -source [get_ports clkin]-divide by 2 [get pins clk div 2]; example2: create generated clock -nameclk div_ mul-source [get_pins mmcmo/ clkin]-multiply by 4 -divide by 3 [get_pins mmcmo/clkout4) Clock groups(主要对异步时钟组之间约束,避免对异步时钟之间进行无效的时序分析,例如两个独立的时钟以及他们生成的时钟网络之间,或者是虽然来自同一个时钟源但是牛成的时钟在1000ck内无法确定公共周期的时it i [a )set clock groups -name async clk -asynchronous- group clk1-group clk 2 set clock groups-name clkunexclusive-group clko-group clk1;5) Clock latency(由于EDA工只通常会自动计算内部网络的时钟延迟,因此通常只需要提供器件外部时钟走线延iRRP H)set clock latency-source-early 0.2 [get ports sysclk]; set clock latency -source -late 0. 5 [get ports sysclk6) Clock jitter (E A input jitter FA system jitter) set input jitter sysclk 0.3 set system jitter 0.117) Clock uncertainty(为特定的时钟或者时钟之间约束) set clock uncertainty0.1[ get clocks clk];set clock uncertainty 0. 2 from [get_ports clk1] to [get clocks clk2输入输出约束1) set_input delay(用于确定和系统某个时钟相关的输入信号的外部路径延迟,通常取决于外部器作输出的最后一级寄存器的Tcq和中间走线延迟。 Consequently, the input delay value can be positive or negative, depending on theclock and data relative phase at the interface of the device,这个相关的时钟可以来自于系统的某个时钟或者虚拟时钟)example 1: set_input delay -clock sysclk [get_ ports din]; example 2: set_ input_ delay -clock sysclk-max 4 [get_ports din]example3: create clock -name clk virtual- period 10set input delay -clock clk virtual -min 2 [ get ports din22) set output delay(用于确定和系统某个时钟相关的输岀信号的外部路径延迟,通常取决于外部走线延迟和下游芯片第一级输入寄存器的建立时冋和保持时冋)exεmple: set output delay- clock sysclk-min2[ get ports dout●时序例外包含多周期路径约束,伪路径约束,最大最小延迟约束1) Multicycle paths(多周期路径通常指的由于系统的特定设计,重新修改建立时间和保持时间检查方式,通常不像EDA工具默认的单周期的检查,多周期路径约束通常定义新的时序检查方式)BEFOREA)相同时钟下由于使能信号等原因导致的多个周期读取IHold:SetupLostnaton clock对于相同时钟,无需确定- start-end,因为参考的时钟都是一样的,只需要重Choct Erable新确定建立时间检查和保持时间检查的关系。由于 setup relationship同时影响crScure cocshold relationship,因此修改建立吋间的同吋也要修改保持吋间关系。如图set multicycle path n -setup -from [get _ pins a-to [get pins b]capture edgeClock Enableset multicycle path N-1hold-from[ get pins a] to get pins b](其中N为建立OIS 2IN 46 CrIS IN 10: I2Slaunch edge时间检查的移动周期数)setupB)相同周期时钟但是有相移,因此修改建立时间检查关系,保持检查会随之-。如。2。=。移动。 set multicycle_path2- - setup- from Iget clocks clk』to[ get clocks clk2]。Destinationapture edge8ns Bn:launch edge Ons 2neine如果是负相移(相移很小)的话,无需约束,情形相当于同吋钟无相移。C)慢时钟到快时钟。 set multicycle_path3- setup-from[ get clocks clk1]-to[ get clocks clk2]Set multicycle_ path 2-hold -end- from iget clocks clk1]-to [get clocks clk2D)快时钟到慢时钟。 set multicycle_ path3- setup- - start-from[ get clocks clk1]-to【xx] set multicycle_ paths2- hold -fromlget clocks clkl to [get clocks clk2];Table 5.3: To define a multicycle path with a Setup of nScenarioMulticycle Constraintslaunch edgeSource cloSame clock domain or betweenset_multicycle_path N-setup-from CLK1 -to CLK2c「L「LLsynchronous clock domains with sameFeriod and no phase-shiftsct_multicycle_path N 1 hold from CLK1 to CLKBetween SLOW-to FAST synchronous clock set_multicycle_ path N-setup from CLK1 -to CIcomaInsset_multicycle_path N-1 -hold-end -from CLK1-to CLK2clock(CLk2capture edgeBetween FAST-to SLOW synchronous clock set_multicycle_path -start -from CLK1 -to CLKcomaInsset_multicycle_path N-1-hold -from CLKI-to CLK2False paths(伪路径约束)对于一些永远不可能起作用的路径或者无需进行时序分析的路径可以设置为 Falsepath(例如异步时钟之间已经经过两级同步器同步则无需分析,例如上电瞬间内容确定则无需分析)example: set false_ path-from [get clocks clk1] to [get clocks clk2]● Min-max(用于约束输入端口到输出端口的最人延迟以及异步信号之间的最人廷迟(意思是即使两个时钟域以经通过同步器或者FFO进行同步,依然可能需要一个最大路径延迟约束川 example1: set max delay10from [get _ ports din]-to [get ports dout] example 2: set max delay - from [get_ pins a]-to [get _pins b●set_bus_skew(用于对异步时钟域多位数据传输路径延迟进行约束,通常用于格雷码转换,多bit数据传输由于传输是多位的bit,因此每个bt之间的路径差异需要被约束,通常是约束一个目的时钟周期。 exampleset bus skew -from[ get cells gray*]-to[ get cells gray_sync+2.5,其中*代表这个寄存器的每个bt;同时为∫保证源时钟和目的时钟之间数据正常传输,需要进一步设置 sex max delay使得这个数据路径的延迟不能超过一定时间(通常是一个源时钟周期) set max delay-datapath only-from[ get cells gray]to[ get cellsgray_sync 517、竞争冒险/消除方法竞争是指的由J逻辑和走线延迟差异导致不同信号到达输入端的时间不同,冒险是指的由于不同信号到达输入端时间差异导致输出信号存在短时不稳定的现象,也叫输出毛刺。消除互补乘积项,例如(A~+B)*(A+C需要消除AA●增加冗余项,例如AB+A~C,当B=C=1的时候是A+A~,因此可以考虑增加BC项,这样就桷保输出无毛刺。输出端并联电容器,能够是的毛刺的上升下降沿变得缓慢,从而抑制毛刺被后级电跻读取的慨率。将组合逻辑电路转变为时序逻辑,因为触发器对毛刺边沿不敏感,可以有效减少毛刺对后级电路影响18、状态机分类/状态转移图/一段两段三段式状态机区别特征(优缺点,本质特征,状态数差别,输出改变时间差别,状态机也分为同步状态机(有CLK控制输出)和异步状态机)/思考具体的状态机实例(饮料售卖)MeaⅣy状态机:输出取决于当前状态和输入,输出可以在输入发牛改变之后立刻响应,具有异步输出的特点,Meay由于结合了当前输入信息和状态信息,因此状态数量更少。Moore状态机:输山仪仅取决于当前状态,和Meay相比 Moore机首先根据输入信息更新状态,然后在下个时钟根据当前状态决定输出,因此速度响应比Meay慢一拍,但是具有可以同步输出的特点。设计状态机首先考虑改计功能需求,然后根据运作流程列举可能的状态并根据转移条件列状态转移表转移图。状态的编码可以考虑采用格雷码(适用于连续跳变)或者是独热码,段式状态机将状态转移和输出集中在一个 always块内书写,电路为时序逻辑不会产生毛刺,但是书写代码冗长且不易修改,可维护性差;两段式状态机将状态转移和输出分放在两个 always块中,前一个用时序逻辑进行状态调转,第二个用组合逻辑控制下一状态的计算和组合逻辑输出,容易产生毛刺。这种与法只有最优的血积和时序性能,但是由于是组合逻辑输出因此增加了到下一级寄存器的输出延迟。段式状态机分为状态调转模块,状态转栘条件判断模块,输岀逻辑模块。三段式状态机将组合和时序逻辑分开,易于维护和综合饮料杋编写(自己编的题目),可以首先考虑实现的玏能,输入应该包括时钟信号,复位信号,输入的钱,输入的饮料选择,以及是否有当前饮料存货;输岀应包括找岺,饮料输出,无饮料提小等信息。中间状态应包括空闲状态,提示无饮料,输入钱多,输入钱正好,输入钱相等,找钱,出饮料,提示继续输入钱等状态,基于上述可能的状态进行状态转移图绘制,然后编写状态转移组合逻辑以及输出逻辑。“H、 Desktop Hardware_ study Sail_· machine”19、系统级/算法级/RTL级/门级/开关级Verilog HDL语言自顶向下通常分为系统级,算法级,RTL级(寄存器传输级),门级,开关级;系统级措述语言提供的髙级结构和所能实现的性能算法级措述算法运行的模型,以上两种描述级别一般不涉及具体实现细节,不考虑是否能转化为硬件结构。RTL级用」描述数据如何在寄存器之问流动和传输门级用于描述逻辑门之间的连接模型开关级措述的是器件晶体管规模的具体连接和信号流动模型前三个级别表述的是行为级,后两个级别分别代表逻辑级和电路级20、阻塞赋值/非阻塞赋值阻塞赋值是指的执行当前语句的时候阻塞其他语句的执行,因此阻塞赋值的执行具有一定的顺序性;非阻塞赋值是指的一次激活操作来临后会首先计算所有非阻塞语句表达式的右值,在激活操作结束后统一赋值给左边变量,执行无先后顺序,当前语句的赋值操作不会阻塞其他语句的赋值操作,因而叫做非阻塞赋值。在设计代码的付候通常对组合逻辑采用阻塞赋值,对时序逻辑采用非阻塞赋值,对阻寒赋值和非阻寒赋值分开在不同的away坎中实现。21 function/task/ repeat/ while/ forFunction用于执行一段的功能电路,由组合逻辑组成,至少一个输入,无输出。返回一个输出值(缺省值为1bit寄存器数据),输入输出的类型可以自己定义。 function可以驱动和使用全局变量,内部定义的为局部变量。函数
- 2021-05-07下载
- 积分:1