资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数字集成电路设计入门,-,从,HDL,到版图,于敦山,北大微电子学系,第,13,章,使用图形调试环境,学习内容:,这一章将学习有关,SimVision,图形环境:,SimControl,Navigator,Signal Flow Browser(SFB),:信号流浏览器,Watch Objects Windows,:对象观察窗口,术语及定义,SimControl,:图形仿真器接口;用,SimControl,来推进或中断仿真,打断并改变仿真,控制范围,等等。,SignalScan,:,SimControl,图形波形观察器,Navigator,:显示设计层次和一个范围内对象信息的图形工具,Signal Flow,Browser(SFB,),:在设计中从一个信号反向跟踪到其驱动源的图形工具,Watch Objects Windows,:监视信号组及其值的窗口,Object,:在,SimControl,中,任何一个信号或范围,Double-click,:将光标放在一个项目上并快速点击鼠标左键两次,Right-select,:将光标放在一个项目上并点击鼠标右键,启动图形环境,使用命令行选项,+,gui,启动,SimControl,。在,SimControl,中可以访问,SimVision,所有部件。,仿真器在,SimControl,主窗口的控制下运行。当第一次启动时,,SimControl,主窗口显示顶层模块的源代码。,可以从,SimControl,工具菜单或工具栏访问,SimVision,环境(,SignalScan,Navigator,Signal Flow Browser,及,Watch Objects windows,)的其他部件。,SimControl,包括,8,个下拉菜单,固定菜单按钮可以快速访问常用命令,一个空的用户可定义按钮,当前仿真时间,显示正在调试的模块的源代码,可以选择这个区域的文本,但不能编辑,显示范围并浏览。在同一时间只能显示一下范围。若一个模块在多个文件出现,可以在,subscope,选择文件,显示交互仿真的输出。可以提示符处输入交互命令,显示信息,如仿真器的状态。,详细的菜单命令及其它,SimVision,细节请参考联机文档,后处理环境,在仿真并将探测信号放到一个,SHM,数据库之后,可以对设计进行后处理。,可以从,GUI,或通过使用,+,ppe,选项进入后处理模式。,打开仿真当前设计时生成的,SHM,数据库。,交互及后处理,时间只能向前推进。,可以读取并修改仿真值,访问连接并设置行断点,取决于使能的是何种访问。,可以将值保存到一个波形数据库。,可以执行交互命令和源交互式脚本。,可以保存、重新开始、重新设置、运行和停止仿真。,在后处理模式中:,可以扫描、单步、执行,或按时间向前或向后跳转。,可以读取仿真值并访问连接,取决于在仿真过程中使能的访问及在波形数据库中保存的信息。,用,+,gui,选项启动,SimVision,时,进入仿真器交互模式。进入后处理模式时,将仿真器释放并对保存在波形数据库中的值进行操作。,在交互模式中:,SimControl,菜单及工具条,编辑源文件,打开数据库,和查找文本。在交互模式中,还可以,source,命令文件、保存并重新开始仿真。,执行、单步、停止和复位到开始时刻。在后处理模式中,还可以向后执行,并可以向前或向后扫描。,设置并显示断点和范围。在交互模式中,还可以设置并显示,forces,和探针,选择范围,端口和信号。,启动其他,SimVision,工具。,按照用户的意愿调整,SimControl,的行为,SimControl,下拉菜单和固定菜单按钮可以:,Source Browser,Source Browser,显示在当前调试模块的源代码。,可以在,Source Browser,中选择任意对象(寄存器,,net,,实例或线),在,Source Browser,中右击一个对象或行号弹出可以对该对象或行进行操作的命令菜单,选择对象,在,SimVision,环境中,选择和弹出菜单使鼠标成为一个有力的工具。,左键可以在所有,SimVision,窗口中选择对象,右击鼠标右键选择对象可以弹出一个菜单。,按住,Control,键再按左键可以选择多个对象或取消选择。,中键可以在窗口之间拖动对象,选择对象,在一个,SimVision,窗口选择一个或多个对象时,其他,SimVision,窗口的这些对象也均被选择。,当右击选择一个对象时,弹出一个弹出菜单,包含用于该对象的一组常用命令。在不同的,SimVision,工具中弹出的不同的菜单。还可以在源浏览器中右击选择一个行号。,按,control,键并用鼠标左键点击一个对象,可以选定该对象而不影响其他被选对象。,添加选择:选择一个对象后,可以选择其它更多对象。,取消选择:当一个对象被选定,可以用这个办法来取消对它的选择。,点击拖动:当用鼠标中间的按钮选择一个对象时,可以拖动这个对象到另一个位置。如果鼠标只有两个按钮,可以用左键点击拖动。,设置断点,在下面的对话框中可以设置、使能、取消、列出,和删除断点。断点可可以是仿真时间、值的改变、条件或代码行。断点的功能视仿真器而不同。,设置断点,断点是使仿真停止的事件。有三种类型的断点:,基于时间:当仿真到一个指定时间停止。此为缺省。,基于行:当仿真到到源代码一个指定的行时停止。必须指定范围,文件名,和行号。只用于交互模式。,基于对象:当指定信号的值发生变化或指定跳变发生时停止。在,NC,Verilog,中,不能指定一个单一跳变。,基于条件:当指定的,Tcl,表达式值为真时停止。,SimControl,提供四种设置断点的方法:,在菜单选择,Set-Breakpoints,在,Show-Breakpoints,对话框,按,Set,按钮。,按,Set Breakpoints,按钮 (只用于基于对象的断点设置)。,在任何一个,SimControl,窗口中右击选择一个信号名,弹出一个有,Set Break,的菜单。,Navigator,用,navigator,来查看设计层次和当前范围的对象。,要启动,navigator,,在,SimControl,窗口使用,Tools,菜单下,Navigator,,或按,navigator,按钮,Navigator,工具条是主窗口工具条的子集,Navigator,浏览设计层次时,,navigator,生成一个树结构,在这个树结构中每个节点为设计层次中一个范围。,双击一个没有展开的节点以显示子层,双击一个展开的节点隐藏子层,在,navigator,中有两种方法设计当前范围,(scope),:,选择一个节点,然后按,Scope,按钮 ,或者在,SimControl,窗口中选择,Set-Scope,。,右击选择一个节点并从弹出菜单中选择,Set Debug Scope,,或双击该节点。,注意:,由于所有,SimVision,窗口交互作用,从任何,SimVision,窗口设置范围时,该范围的源代码自动读入源浏览器,source browser,。,用,Options,菜单设置显示选项,可以隐藏范围树或对象列表。,启动,Object List Options,框或,Scope Tree Options,框指定显示及每个区域的内容。,Signal Flow Browser,(信号流浏览器),使用信号流浏览器,signal flow browser,跟踪信号的驱动,设置信号属性。,可以从,SimControl,启动信号浏览器,SFB,:,菜单条:通过选择,Tools-Signal Flow Browser,工具条:通过选择,Signal Flow Browser,按钮,SFB,的工具条包括:,主窗口工具条的子集,Trace Back,:跟踪选择信号,代替当前跟踪,Stack View,和,Trace View,翻转,SFB,外观,右图是一个,Stack View,形式,Signal Flow Browser,(信号流浏览器),信号流浏览器可以交互地跟踪一个信号的驱动以及对这些驱动所起的作用,选择一个将被跟踪的信号:,打开信号流浏览器前:,在源浏览器中选择信号。在任何窗口中所做的选择会传递到其他所有窗口,打开信号流浏览器后:,在,Trace,区输入一个层次信号名。,在其他,Simvision,窗口中选择一个信号并用鼠标中键将其拖到信号流浏览器中。,Signal Flow Browser,(信号流浏览器),信号流浏览器(,SFB,)是一个高效的设计调试环境。,用,SFB,可以从一个行为反常的信号开始,向后跟踪其驱动和作用信号直到发现行为反常的原因。,信号流浏览器可以执行下面操作:,以选择的基数显示一个信号的值。,显示信号的驱动。,查看信号的输入或驱动的细节。,显示所有对一个驱动起作用的信号。,跟踪一个模块端口到一个较低的层次。,Signal Flow Browser,(信号流浏览器),必须首先选择要跟踪的信号并将它输入或点击拖放到,SFB,中。此时出现一个驱动器(,Driver,)框,显示出所有该信号的驱动。,可以在一个,Driver,框里跟踪任何驱动并显示其输入;或者通过首先选择该驱动器,然后从菜单中选择,Trace-Show Inputs,;或者简单地双击该驱动。,可以在一个,Contributing Signal,框中跟踪任何信号以显示其所有驱动,或者通过首先选择该信号,然后从菜单总选择,Trace-Show Drivers,;或者简单地双击该信号。,如果一个信号的驱动为一个模块实例的端口,可以跟踪它并显示在这个模块实例内部的信号源。首先选择该驱动器,然后从菜单中选择,Trace-Descend,。,例如,如果在一个驱动器框中有下面这个模块实例:,register r1(.r(,reg,_ out).),选择,reg_out,并使用,Trace-Descend,将显示,r,为信号源。,可以通过首先选择该驱动器,然后从菜单中选择,View-Driver Info,显示一个驱动的细节,.,Watch Objects Windows,(信号观察窗口),可以打开任意多个对象观察窗口。每个窗口包含一个信号表和当前仿真值。,要在一个对象观察窗口中添加对象,用点击信号并拖动或按,Add Objects.,可以重新命名、锁定、删除、关闭,,iconify,,或克隆每个对象观察窗口。,点击,Find Next Edge,使仿真到下一个跳变。,Watch Objects Windows,(信号观察窗口),打开多个观察窗口,每个观察窗口在关闭时会自动保存。,可以打开一个新窗口或一个以前保存过的窗口。打开的第一个窗口缺省名“,View1”,。第二个窗口为“,View2”,,依次类推。,可以重新命名一个窗口。,可以克隆一个窗口,生成一个完全拷贝。,要从另一个,SimVision,窗口添加对象到一个观察窗口,用点击拖动或者选择它们然后按,Add Objects,。,添加一个信号是将其添加到观察列表中。,添加一个范围是添加在此范围中的信号到观察列表。,用观察窗口的选项(,Option,)菜单为每个窗口定制信号命名和值显示的方式。,Find Next Edge,使仿真前进到一个信号的下一个跳变,或到下一个用户设置的断点。,Lock,可以锁定一个观察窗口,使它不会随时间更新其显示。不能向一个被锁定的窗口添加新信号或从它前进时间。当解锁后,它将立即更新到反映当前时间的当前值。,Time,区在后处理模式中可编辑,并只为该特定观察窗口改变时间值。,总结,这一章学习了,SimVision,图形环境:,SimControl,Navigator,Signal Flow,Browser(SFB,),信号流浏览器,Watch Objects Windows,复习,问题,SimVision,的五个主要基于窗口的元件是什么?,怎样显示设计层次?,怎样在你的设计中显示和监视一组信号?、,可以从观察对象窗口中在一个对象上设置一个断点?,怎样确定一个驱动的作用信号?,解答:,SimVision,的五个主要基于窗口的元件为,SimControl,,,Navigator,,,Watch Objects,,,Signal Flow Browser,和,SignalScan,波形观察器。,可以用,navigator,显示并在设计层次中浏览。,Navigator,显示范围,对象和对象值。可以在,Source Browser,中显示每个范围的源代码。,可以用对象观察窗口查看一组信号及其值。,是的,可以从对象观察窗口在一个对象上设置一个断点,或可以用,Find Next Edge,按钮高效地设置一个断点,仿真并去除断点。,可以通过用信号流浏览器跟踪一个驱动的作用信号来找出这些信号。这在确定一个问题信号的源头很有用。可以反向跟踪驱动及其作用信号直到发现与预期行为不同信号。,
展开阅读全文