用于寄存器映射自动化的方法和设备的制作方法

文档序号:6465232阅读:174来源:国知局

专利名称::用于寄存器映射自动化的方法和设备的制作方法
技术领域
:本发明涉及寄存器映射的设计,且更具体地涉及简化该设计过程的某些方面和/或使该设计过程的某些方面自动化。
背景技术
:片上系统(SoC)设计通常需要设计和管理成百或上千个寄存器,包括寄存器g和描述、生成控制寄存器逻辑、验证、系统测试等。在许多情况下,规定和管理配置寄存器在时间、成本以及资源分配方面构成了芯片设计的主要部分。在本文中使用的术语"寄存器"包含在本领域中使用的各种术语,包括但不限于配置和状态寄存器(configurationandstatusregister,CSR)、控制寄存器、i殳计控制寄存器、配置寄存器等。在传统芯片设计中,与寄存器的设计和管理有关的各种任务手动地进行处理。例如,典型的芯片设计涉及多个阶段,包括l)规格阶段,在该阶段可基于例如各种设计需求和来自市场的输入以文件类型的规格描述寄存器;2)设计阶段,在该阶段可以例如使用Verilog,VHDL等各种硬件描述语言(hardwaredescriptionlanguage,HDL)中的任何一种来实施寄存器的恥格;3)miE阶段,在该阶段测试所创建的寄存器设计;以及4)硅阶段,在该阶段使用硬件输入向量对加工后的芯片进行系统测试。图1示出传统SoC设计的流程图。一般通过写芯片设计的恥格(例如,寄存器规格120)开始设计过程。寄存器规格120可由系统设计师结合来自市场的输入并考虑各种设计需求和考虑因素来生成。例如,可部分地基于满足市场需求110a和设计需求110b来生成寄存器规格。系统架构师或者设计组一般以选择的表现格式如文字处理器格式(MicrosoftWord)、其它表现格式如MicrosoftPowerPoint,电子数据表或网络发布(web-publishing)格式如超文本链接标识语言(HTML)来生成寄存器规格,这些格式可容易地转换成便携式文档格式(portabledocumentformat,PDF)文件,PDF文件可在设计组和/或客户当中共享、粘贴到因特网上等。然后可以将完成的寄存器M^分布到各个工程组以实施。例如,硬件设计工程师130a可从寄存器M^文件生成寄存器映射的HDL描述。硬件验证工程师130b可基于寄存器规格和设计工程师创建的HDL描述设计m^任务。类似地,软件工程师130c可基于寄存器^文件生成代码。在各个工程组完成其设计任务之后,对该设计进行验证和测试以暴露硬件和/或软件缺陷或设计中的其它错误。例如,所完成的设计可进行硬件验证/测试140a和软件!HE/测试140b。B/测试期间发现的错误被报告回设计组,并相应地修改寄存器规格。例如,硬件缺陷145a和软件缺陷145b被报告,从而可更新寄存器规格120以适当地反映缺陷修补(bugfix)。然后可将修改后的g再次分布到工程设计组并重复该过程,直到设计完成并JL^本上没有銜菱。另外,在该:计阶段期间的任何点可接收来自市场的新输入或另外的设计需求,这需要更新寄存器规格文件并由工程组进一步进行设计以实施更新后的寄存器皿。在这种传统设计流程中,i^的不同阶段可能在很大程度上不同步且经常手动地并且独立于其它阶段来进行。例如,不同的个人或不同的组可被分配负责每个不同的阶段。然后在一个阶^露的4^可能需要在每个其它阶段中的扩展工作,这又需要一个或多个不同的组来校正其所负责的设计的部分。因此,工程师花费相对大量的时间和资源进行改变、修补缺陷以及确保其它组或个人进行的所有改变被实施。另夕卜,传统的设计流程容易出现寄存器设计的各版本不同步的情况。例如,由硬件工程师和/或软件工程师进行的缺陷修补可能没有立即包含在^文件中。类似地,对规格文档进行的改变可能没有立即包含在工程师的代码库(codebase)中。因此,需要大量时间和资源来确保各个设计组同步以及根据相同版本的寄存器M工作。
发明内容一些实施例包括一种用于便利寄存器恥洛的设计的软件应用,该应用包括用户接口,适于接收来自用户的表示关于所述寄存器恥洛中至少一个寄存器的信息的输入,所述接口基于所接收到的输入生成寄存器信息;耦合到所述接口的翻译器,其接收寄存器信息并适于将寄存器信息转换成内部表示;以及至少一个过滤器,其适于将内部表示变换为至少一个相应的输出格式。一些实施例包括一种i殳计寄存器恥洛的方法,该方法包括经由用户接口输入关于所述寄存器恥格中至少一个寄存器的信息;基于所接收到的信息生成寄存器信息;翻译寄存器信息以将寄存器信息转换为内部表示;以及将所述内部表示变换为至少一个相应的输出格式。一些实施例包括一种计算机可读^h质,其编码有能够在一个或多个处理器上执行的指令,所述指令在被执行时执行基于用户提供的输入生成寄存器恥洛的方法,该方法包括提供用于接收关于寄存器恥洛的至少一个寄存器的输入的用户接口;基于所接收到的输入生成寄存器信息;将寄存器信息翻译成内部表示;以及将内部表示变换成至少一个相应的输出格式。图1示出用于设计包括寄存器映射的数字电路的传统设计流程;图2示出根据本发明一些实施例的便利寄存器规^^设计的软件应用;图3是根据本发明一些实施例来自图形用户接口(GUI)的屏幕画面,其示出用户输入寄存器M^中的模块的寄存器信息;图4是根据本发明一些实施例来自图形用户接口(GUI)的屏幕画面,其示出用户规定针对模块定义的寄存器的定义的位字段的枚举ft息;图5是根据本发明一些实施例的具有对话框的屏幕画面,其用于输入寄存器恥格的文件信息;图6示出才艮据本发明一些实施例允许用户定义寄存器块的GUI功能;图7示出根据本发明一些实施例具有被配置成便利寄存器规格的设计的分布式应用的网^ft计算机系统;图8A示出根据本发明一些实施例的具有串行外设接口(SerialPeripheralInterface,SPI)和内部集成电路(InterIntegratedCircuit,I2C)接口的片上硅(silicon-on-chip,SoC)设计;图8B示出图8A中示出的fC接口的端口;图9是示出根据本发明一些实施例用于将模;Wa载到设计中的GUI功能的屏幕画面;图10是示出根据本发明一些实施例在打开fc接口模板后自动提供的最高级别信息的屏幕画面;图11是示出根据本发明一些实施例用于将寄存器添加到寄存器映射并定义到所加载的I2C接口模板的连接的GUI功能的屏幕画面;图12是示出根据本发明一些实施例用于链接寄存器以创建具有期望的宽度的寄存器的GUI功能的屏幕画面;以及图13示出根据本发明一些实施例由翻译器针对通过用户接口定义的模块生成的可扩展标记语言(XML)的内部表示的一部分。具体实施方式如上所述,传统的芯片设计包括多个可在很大程度上不同步的设计阶段。设计过程中的各个阶段可手动且基本上独力于其它阶段来处理。因此使用传统技^正错误以及排ftH殳计的缺陷可能是费时又乏味的,并且容易出现人为错误。申请人已经意识到使一个或多个设计阶段自动化和/或同步可显著减少设计和最终发行产品的时间和成本。具体来说,在传统的设计流程中,在设计过程中任何阶段的改变可能需要在设计过程中的其它阶段重新工作。例如,由硬件工程师或软件工程师在设计中检测到缺陷而导致的对寄存器定义的更新,或对M^文件的改写以满足由市场建议的新的设计需求或改变可能需要将新的寄存器定义传送给不同的设计组。具体来说,硬件工程师可能必须更新RTL代码,软件工程师可能必须更新头文件或其它代码,且应用工程师可能必须更新客户数据表、内部文件等。因此,对设计做出的每个改变可能需要其它组、工程师或专业人员的大量工作。另外,在传统的设计流程中,各类工程师(例如硬件工程师、软件工程师、应用工程师等)通常手动合并对寄存器^M^故出的改变。因此,各工程师可能必须以该工程师使用的特定格式(例如Verilog、VHDL、C、C++等)编码对寄存器M^^故出的改变。结果,相同的信息经常以多种不同的语言产生多次。这不M时间和资源的角度(以及由于人工更新、工程师疲劳等可能出现的餘溪方面)看是昂贵的,而且需要额外时间来确保各个组在更新其各自的代码库方面同步,以及确保设计组的所有成员根据相同版本的寄存器规格工作。为了减少或避免保持设计组各成员同步所需的时间和资源支出,申请人已经开发出一种提供单个点的软件应用,其中通过该单个点进行对给定设计的改变和/或更新。在一个实施例中,提供一种用户接口,该用户接口允许设计者定义原始规格以及对该设计进行更新/改变。可以从该用户接口传送该原始规格以及任何更新/改变以确保在该设计流程的各阶段工作的工程师在同一版本的设计上操作。为了减少实施原始设计或将更新/改变传送给设计所需的时间和资源,软件应用可包括翻译器,该翻译器将通过用户接口定义的寄存器规格转换为内部表示。因此,内部表示可提供更新版本的设计M^,设计组的所有成员可根据该更新版本的设计规格在确信其正在实施最新版本的设计的情况下工作。为了减少或消除以不同格式、语言等生成寄存器恥洛的冗余,该软件应用可包括一个或多个过滤器,该过滤器将内部表示自动转换为一个或多个所期望的输出格式。因此,能够以各个工程师和/或设计组的成员所期望的格式自动传送对设计/寄存器^L^故出的改变。下面对根据本发明的方法和设备的实施例和各相关概念进行更详细的描述。应该理解,此处所说明的本发明的各个方面可通过多种方式来实施。在此提供特定实施的例子仅用于说明的目的。另夕卜,在以下实施例中描述的本发明的各个方面可单独使用也可以以任何组^^吏用,且不限于本文中所明确描述的组合。图2示出根据本发明一些实施例用于便利寄存器M^的设计的软件应用。具体来说,该软件应用可帮助提供相对简单或相对复杂的寄存器规格的普遍协调和高效的设计。应用200包括用户接口210,用于允许用户(例如系统设计师或负责寄存器映射的设计和皿的其他工程师)规定所期望设计的寄存器规格;翻译器220,用于将寄存器^转换为内部表示;以及过滤器230,用于以一种可利用的格式235或可利用格式235的任何组合输出寄存器规格,如下更详细所述。用户接口210可以是允许用户输入寄存器恥格的任何用户接口。在一些实施例中,用户接口210是图形用户接口(GUI),其提供允许用户以一般的分层方式建立寄存器恥格的一般的直观束示。在其它实施例中,用户接口210是可用于定义寄存器规格的寄存器描述语言(registerdescriptionlanguage,RDL)。申请人已经意识到学习和掌握RDL可能不方便,并力或者对于设计组的成员接受和/或使用该应用是;f艮大的障碍。因而用户接口210可优选是图形用户接口,使得任何人都可以使用该应用而不必学习和以特定的RDL"编码"寄存器恥洛。用户接口210可被配置成呈现出帮助用户以一般的分层方式定义寄存器映射的功能性。例如,在SoC设计中,层次的最高级别可包括对系统中各总线的定义。在下一级别可定义包括寄存器的一个或多个模块且可规定到任何一个总线或总线组合的连接。在本文中术语"模块"是指通常组合在一起以实现特定功能的寄存器的任意集合。所规定的模块的数量可取决于系统的设计和/或复杂性。在层次的下一级别,可针对每个模块定义和规定每个寄存器。用户接口210可包括另外的层次级别,如允许定义每个模块中规定的寄存器的位字段的功能,和/或允许规定所规定的寄存器的所定义的位字段的枚举匿的功能。使设计模块化(例如规定所定义的模块内的寄存器映射)允许模块在可替代设计中和/或将来的设计中再次使用。例如,已定义和保存的模块用该功能的新设计中。所加载的模块还可被修改成针对特定的设计定制模块并被保存为新的模块而不必从零开始定义整个模块。模块化促进设计的再次使用,这又可减少实施新设计并将产品投放市场的时间和成本。另外,将接口形成为可以以分层方式定义寄存器规格可提供高效输入特定设计的一般的直观且高效的手段。如上所述,在一些实施例中,用户接口210是图形用户接口(GUI),其对于设计者来说有助于通过相对直观的方法输入寄存器规格而不必学习和/或掌握特定的RDL。图3-图5示出才艮据本发明一些实施例的用于输入寄存器规格的示例性GUI的屏幕画面。图3是示出用户对标记为"ALTPIN,,的模块输入寄存器信息的屏幕画面。例如,ALTPIN可以是在具有多个模块的设计中规定的第一模块,ALTPIN还可以是该设计中唯一的模块。如本说明所指出的,ALTPIN可以是被设计成实现引脚复用的模块。面板300包括\\^1(10则@型文件夹层次。每个文件夹可表示寄存器规格的不同类别。最高级别包括名为"ExampleDesign"(设计例)的类别,其包括一起形成针对该特定方案的设计的各个子类别。在该主类别下的各子类别包括Modules(模块)类别、Buses(总线)类别、Testbench(测试工作台)类别、Synthesis(合成)类别以及Place&Route(放置&路由)类别。在新设计下出现的子类别可包括任何以上标识出的示例性类别,也可包括另外的类别,或可省略任何所述类别,本发明的方面在这方面不受限制。Module类别包括要对ExampleDesign定义的任何模块,在图3的画面中其由ALTPIN模块组成,当前选择ALTPIN模块使得GUI提供接口功能以允许用户定义ALTPIN模块中的寄存器,下面将对其进行详细讨论。Buses类别包含该设计中所包括的任何总线。不是每个设计都包括总线,所以对一些设计来说Buses类别可能是空的。然而,许多设计例如SoC设计包括连接系统的各种组件的一个或多个总线。例如,外设总线(peripheralbus,PBUS)可将各种外围组件连接到主处理器,或将接收片外(off-chip)信息的一个或多个接口连接到主处理器或该系统的一个或多个片上(on-chip)组件。通常,当设计包括总线时,该设计中的至少一个模块将连接到该总线。因此,如果定义了任何总线,则该总线可视为层次中的第一级别。GUI可以以层次构成以反映寄存器信息最终被存储的方式,并提供用于定义寄存器规格的相对直观的机构。名为"ModuleInformation"(模块信息)的面板310允许规定关于模块(例如ALTPIN模块)的信息。例如,在此称为模块面板的面板310包括用于ModuleDescription(模块描述X例如反映模块功能的描述)、RegisterWidth(寄存器宽度)、AddressRadix(地址基数)、BaseAddressType(基地址类型)、BaseAddress(基地址)、RegisterAddressType(寄存器地址类型)、BusDestination(总线目的地)、RegisterMemoryType(寄存器存储类型)、WaitStates(等待状态)以及多个掩組的空间,下面进一步详细说明其功能。如上所讨论的,特定的设计可包括通过一个或多个总线互连的多个模块。模块面板允许用户规定与该模块连接的总线以及该连接的基地址。还可使用所提供的单选按钮来规定针对该模块定义的寄存器地址对基地址是绝对的还是相对的。如果将寄存器地址选择为相对的,则翻译器计算在模块中定义的每个寄存器相对于针对所指示的总线目的地规定的基地址的地址。该模块面板仅是示例性的,且可使用允许任何类型的模块级别信息的任何接口,本发明的方面在此不受限制。可以以内部表示编译每个规定的模块并将其存储为单独的文件以便利设计在模块级别的再次使用,下面将结合对翻译器的说明进一步详细讨论。在层次的下一级别,GUI允许对在相关联的模块中定义的每个寄存器规定信息。名为"RegisterInformation"(寄存器信息)的面板320允许对寄存器进行规定。例如,在此称为寄存器面板的面板320允"MH殳计者输入RegisterName(寄存器名称)、Address(地址)、UndefinedBit(未定义的位)、Access(访问)(例如,读/写、只读等)、RegisterWidth(寄存器宽度)以及寄存器的Description(描述)。寄存器面板提M个规定的寄存器的最高级别描述。一旦寄存器已经員定,则可以使用在寄存器面板上设置的"Add"(添加)"^fe将该寄存器添加到模块。然后所添加的寄存器与关于该寄存器的高级别信息一起出现在面板330中。应理解,任何其它信息和/或描述可包括在最高级别寄存器描述中(例如寄存器面板可包括用于输入其它寄存器信息的机构),本发明的方面在此不受限制。与该分层结构一致,图3中所示的GUI还允许针对每个寄存器定义位字段。例如,当将寄存器添加到面板330时,包括标记为"BitField"(位字段)的列中的按钮以允许设计者开始规定该寄存器的低级别描述。例如,在图3中,在面板330中已突出显示PDN寄存器,并按下了BitField列下相对应的"Add/EditBits"(添加/编辑位)按钮,结果出现对话框335。在此称为位字段对话框的对话框335允许设计者添加相关联的寄存器中任意数量的位的位字段描述。例如,对于PDN寄存器的位0和1添加位字段描述。位字段对话框允许用户规定每个位字段的开始位和宽度。每次添加新的位字段时(例如,通过位字^J"话框上的"Add"(添加)按钮),在与所添加的位字段相关联的行中包括"Enumeration"(枚举)按钮。如图4所示,该Enumeration^L允"^H殳计者在层次的下个级别定义寄存器。图4是用户规定包括在ALTPIN模块中的标记为"PUP"的另一寄存器的屏幕画面。已对PUP寄存器定义了多个位字段。图4中的画面示出了用户针对名为PUEN_GPIO_49的第一定义的位字段选择了Enumeration(枚举)^^之后的结果。具体来+兌,当按下Enumeration掩組时产生枚举对话框437,然后枚举对话框437允许针对所选择的位字段定义枚#^。因此,根据一些实施例的GUI允许以分层的方式定义模块中的寄存器,并允许以模块化的方式描述寄存器恥格。这便利了允许设计者以可反映该寄存器规格被存储的基础格式(例如作为XML文件)的熟悉的方式规定寄存器恥格的直观UI。另外,分层的方法可促i^t励再次使用的模块化。当针对不同的设计加载预先定义的模块时,该分层结构允许在任何级别相对快且高效地修改模块以针对特定设计定制模块。应注意,在上述GUI中,在层次的各级别提供"Documentation"(文件编制)g。选择文件编制a出现文件编制对话框,该文件对话框允许用户提供将被添加到该设计的文件编制的相关联实体的描述文本。具体来说,可将文件编制添加到例如顾客数据表、设计组使用的寄存器规格文件、其它内部文件编制等。然后可将经由文件编制对话框输入的信息以任何期望的格式输出,下面将结合对过滤器的说明进一步详细讨论。图5示出通过点击示例性寄存器设计的层次的位字段级别处的文件编制g而出现的文件编制对话框。通过在各级别提供文件编制能力,所得到的文件编制可直观地反映设计的结构,且可适当地描述设计的各种组件和不同的级别并对其进行文件编制。结果,对寄存器恥格可自动生成可用于顾M据表、寄存器皿文件或可能期望的任何其它内部文件编制的文件编制,如以下进一步详细所述。图6是示出根据本发明一些实施例的其它功能的屏幕画面。具体来说,图6示出有助于相对高效地定义相似或相同寄存器的块的块功能。如面板600中的模块层次所示,针对ExampleDesign定义了两个模块在图3和图4中所讨论的ALTPIN模块和DLFx模块。标签615示出当前选择并正在显示DLFx模块。该模块面板示出DLFx模块被设计成实施耙、例如耙式接收器的指(finger)。在此称为寄存器块面板的面板620显示与设计者定义的寄存器块相关联的寄存器块信息。可以通过允许用户在寄存器面板和寄存器块面板之间切换的模块面板上的按钮来选择寄存器块面板。具体来说,在图3中,显示寄存器面板,且因此在模块面板上"BlockPanel"(块面板)按钮可见。激活"BlockPanel"按钮显示如图6中所示的寄存器块面板。结果,模块面板使"RegPanel"(寄存器面板)按钮可见以允许用户如果需要可快速切换到寄存器面板。寄存器块面板允许用户定义寄存器块。在各种设计(例如SoC设计)中基本上彼此相同的大的寄存器块是普遍的。然而,使用传统方法定义这些块(例如,在原始皿中手动定义这些块,然后以各种编程语言对其进行再现)是乏味、费时并且容易出错的。即使使用以上结合图3所述的寄存器面板来定义相同或相似的寄存器的大块也会花费比需要更长的时间。例如,假设特定设计需要具有四个寄存器的寄存器块,但是相同的四个寄存器的块在该设计中被重复十次。当使用传统手动设计或使用寄存器面板时,需要分别编码或输入四十个单独的寄存器。寄存器块面板允许一次定义四个寄存器,然后以所需的间隔进行重复,这节省了设计者大量的时间,使其不用作单调乏味的工作,且可能使需要在该设计过程的随后阶段以可能相当大的代价发现和修补的4^更少。该寄存器块面板包括用于输入被定义的块的名称("BlockName"(块名称))、块的基地址("Address"(地址))、该块要被重复的次数("Count"(计数))以及该块的地址偏移或增量("BlockIncrement"(块增量))的文本框。面板630显示(例如通过寄存器面板)已对当前模块定义的所有寄存器。可分别使用"Add"(添加)和"Remove"(去除)按钮向该块添加或从该块去除任何所定义的寄存器。结果,在重复的寄存器块中的寄存器仅需被规定一次,然后被添加到根据设计需要可重复多次的块中。应该理解,可以以其它方式规定寄存器块,本发明的方面在此不受限制。尽管在以上示出和说明的屏幕画面中仅示出了UI的一些示例性能力和功能,但是应理解,可将任何功能或能力建入UI以帮助定义所期望的寄存器恥洛,本发明的方面在此不受限制。还应理解GUI可包括所期望的任何功能或任何能力以便利一般直观的接口,从而允许定义所期望的寄存器设计。具体来说,允许用户以相对少的培训生成从简单到复杂的设计的特征通常是优选的。然而,还可以使用允许至少输入或规定寄存器映射的任何UI,本发明的方面在此不受限制。另外,尽管分层的和/或模块化的方法是优选的,但是还可以使用其它类型的UI设计。再次参考图2,UI210(不论如何实现)从用户接收关于寄存器规格的信息并将寄存器信息215提供给翻译器。也就是说,将用户定义的寄存器信息以某种期望的格式提供给翻译器220。翻译器220接收寄存器信息215并将该信息转换为内部表示,该内部表示可以被存储(例如,存储在数据库中),可以被转换为其它格式,并且/或者可以一般地用于便利设计工作的下游阶段。翻译器220还可以接^示期望哪种输出的标记217,如以下结合过滤器230进一步详细讨论。在一些实施例中,内部表示包括可扩展标记语言(XML)。也就是说,翻译器将通过用户接口输入的信息转换为可被存储在数据库225中的XML文件。XML的结构化格式适于描述模块化、分层关系,如寄存器规格。另外,XML的普遍性、通用性、因特网协议友好性提供了有助于数据共享(例如,通过网页显示寄存器规格)、转换为其它格式等的内部表示。然而,XML仅是一个适当的示例性表示,且可使用任何内部表示,本发明的方面在此不受限制。例如,内部表示可以是RDL、HTML等。软件应用200包括或可访问数据库以存储寄存器规格的内部表示。该数据库可以;1翻译器的一部分,或者是可被翻译器(或者该软件应用的其它组件)访问的外部存储器。翻译器可被配置成生成通过UI210定义的每个模块的单独文件并将该文件存储在数据库225中。将模块翻译为单独的文件并对其进行存储有助于建立模块库,该模块库可针对特定的设计被再次使用、修改,或用于快速建立所期望的设计的寄存器恥格。然而,翻译器可被配置成以其它方式生成并存储特定设计的内部表示(例如,翻译器可针对整个设计生成单个文件),本发明的方面在此不受限制。图13示出由翻译器220生成的ALTPIN模块的内部表示的一部分。在图13中的实施例中,内部表示是XML,且翻译器220将通过UI210输入的寄存器信息转换为表示ALTPIN模块的XML文件。具体来说,翻译器220获得分层定义的寄存器信息并将该寄存器信息以适当的结构化标签置于XML结构中。应理解图13仅示出翻译器对ALTPIN模块所生成的XML文件的一部分。过滤器230被配置成将寄存器规格的内部表示转换为由标记217指示、规定为默iMi、或由其它方式指示的各输出235。具体来说,UI210可被配置成将输出选项显示给用户,使得在编译完寄存器,之后生成所期望格式的输出。在一些实施例中,可以由通过UI210以外的其它方式指示输出格式,如命令行标记、默认值等。过滤器230可包括被配置成将内部表示转换为任何所期望的格式的任何过滤器。例如,用户可(例如通过标记217)指示过滤器230为软件工程师生成C文件或C++文件,以便利软件设计、测试和验证,为硬件工程师生成Verilog文件以便利硬件设计、测试和验汪,或设计组成员在设计、测试和/或發汪期间使用的任何其它格式。过滤器230还可包括一个或多个过滤器以将内部表示转换为表现文件(presentationdocument)(例如,转换为Word、PowerPoint⑧或其它表现格式)。例如,可自动生成顾M据表以及由设计组内部使用的寄存器^l"文件。过滤器230可被配置成生成超文本^&接标识语言(HTML)文件,以在可从任何位置通过浏览器观看的网页上公布该寄存器M。应理解过滤器230可以是翻译器220的一部分或者是其延伸,也可以是单独的模块(例如,过滤器230可以是解析该内部表示并生成所需格式的文件的Perl脚本)。过滤器230可以以任何方式实现,例如,作为可执行程序、脚本、插件程序、链接库、或者将内部表示转换为所期望格式的任何其它指令集。过滤器230可包括以任何所期望的格式生成文件的过滤器,本发明的方面在此不受限制。在设计过程中,当对寄存器,进行修勿更新时,过滤器可便利各种文件和文件格式的自动更新,以确保设计组的各成员同步并根据同一版本的寄存器M^进行工作。过滤器可消除每次更新设计时将改变手动编码到寄存器恥格的需要。应用200便利了设计过程的同步。具体来说,在硬件和/或软件测试和验证期间发现的寄存器规格中的缺陷可通过UI210来修补。然后翻译器可将新的寄存器,转换为内部表示并且过滤器230生成所期望的输出格式。因此,各种文件和格式可自动同时更新。UI210提供了修改寄存器规格的单一输入点,且数据库可用作中央数据库(centralrepository),其可以以同步的方式迭4戈,直到该该:计已经被充分测试和發汪。结果,可创建寄存器恥格的初始设计而不必"编码,,设计或手动生成规格文件(这二者相对费时并容易出错)。另外,对设计规格的任何改变(例如,由于发现缺陷,或者由于设计需求或市场输入的改变)都可快速地(和自动地)合并到该设计的下游阶段中。在一些实施例中,软件应用200可以是分布式网络程序以便利设计组的协作设计工作。图7示出根据本发明的一些实施例的网^ftl计算机系统,在该网^f匕计算机系统上可实施用于设计寄存器,的分布式应用。该网络化计算机系统包括多个计算机760。这些计算机可以是关于特定设计进行*的各用户的台式计算机或工作站。计算机760各自可连接到网络770,例如公司的局域网(LAN)。另外,计算机760可通过网络访问的服务器780也连接到该网络。应理解,服务器780可以是计算机760中的一个,例如连接到网络的台式计算机或工作站,也可以是LAN上的指定服务器。服务器780可包括用于以寄存器规格的内部表示存储数据,或存储由分布式应用的用户生成的寄存器M的各个模块的中央数据库725。计算机760中的每一个可包括客户U1710。该客户应用可以是安^t各个计算机上且能够与中央数据库通信的单独的应用,也可以是用户可通过浏览器访问的基于网络的应用。在任何情况下,客户应用包括适于从用户接^示所期望的寄存器恥格的输入的UI。例如,客户UI可与结合图2说明的UI相似,或与图3-6的画面中所示的GUI相似。然而,客户UI可以是允许用户输入寄存器规格的用户在计算机760处可访问的任何接口,本发明的方面在此不受限制。分布式应用还可包括翻译器,以将通it^户端UI710输入的寄存器,转换为内部表示,该内部表示然后在服务器780处被存储在中央数据库725中。翻译器可以是客户端UI的一部分或作为中央数据库的一部分位于服务器处.在前者情况下,通过UI提供的寄存器信息可在客户计算机处编译,且通过网络将内部表示发送到中央数据库。在后者情况下,可将寄存器信息通过网络发送到中央数据库并在服务器处进行编译并保存在中央数据库中。类似地,分布式应用可包括一个或多个过滤器,以将内部表示转换为所期望的输入格式,该过滤器位于客户端处或服务器处。分布式应用便利了关于特定设计进行合作的设计组的同时工作。具体来说,每个用户可以继续做他/她那一部分没计工作而不用担心该设计正在其它方不知道的情况下被改变。也就是说,中央数据库可以存储最新版本的寄存器规格,设计组的成员可根据该版本同时实施其工作。为此,中央数据库可包括各种机构以确保由两个或更多方修改的文件不会覆盖其它方所进行的改变/更新。结果,该设计组可以确信存储在中央数据库中的设计版本是最新的并且所有成员同步(例如,以同一版本的寄存器^工作)。由设计组的任何成员进行的任何改变都可自动转换为更新的内部表示和/或更新的输出格式。分布式应用是有助于协调设计过程的一个示例性实施。然而,该软件应用不需要分布在网络上,本发明的方面在此不受限制。集成处理器(Integratedprocessor,IP)设计通常需要定义大量寄存器并使其与处理器的其余部分适当地连接。IP设计需要一个或多个用于与片外装置进行通信的接口是常见的情况。例如,串行外设接口和内置集成电路接口是用于在例如片上处理器和一个或多个片外装置、处理器等之间交换信息的两种普遍的串行接口。申请人已经意识到通过创建有助于相对快和高效地实施IP设计的各种标准组件/特征的模板库,可有助于将该普遍的特征添加到IP设计中。图8A示出IP设计的框图。芯片800包括主处理器850、用于在主处理器和该芯片上的任何外围设备之间通信的外设总线(PBUS)825、SPI接口830以及fC接口840。在图8A中,示出了两个串行接口以图示用于片外通信的不同可能性。给定的IP设计可支持两个串行接口中的仅一个,或可包括根据另一标准操作的接口,本发明的方面在此不受限制。SPI接口包括SPI810a,其表示例如外部(例如片外)信号被发送到片上以及从片上向外部发送信号的引脚或端口。SPI接口还包括寄存器映射820a,其用作在端口和PBUS825之间发送到片上以及从片上发送的信号的緩冲器。类似地,fC接口包括表示信号^JL送到片上以及从片上发送信号的引脚或端口的I2C810,以及用于緩冲信号的寄存器映射820b。申请人已经开发出用于快速例示各种标准组件的模板库(例如,SPI模板、fc模板等)以允许设计者定义到寄存器映射的连接。例如,当串行接口模板的模板被选择时,其可以自动例示适当的端口连接,这允许设计者更高效地定义与所选择的串行接口相关联的寄存器映射。图8B是fC接口的端口的框图。I2C810b包括用于复位、地址、数据、读选通和写选通以及时钟的端口。fC接口和SPI接口二者都是公知的并且是可以获得的标准,在此不进行详细讨论,除了需要说明每个接口需要控制片上装置和片外装置之间的信息交换的规定的端口集。申请人已经意识到允许设计者通过接口选择所期望的模板(例如,串行接口模板)并根据相关联的标准自动例示端口允许设计者立即开始定义用于将在端口处接收到的信号转移到片上组件(例如,用于将信号转移到连接到各组件的总线)以及将从片上组件接收到的信号转移到片外的寄存器映射。图9-图11是根据本发明一些实施例允许设计者^M^板库选择模板的图形用户接口功能的屏幕画面。图9示出允许设计者>^^板库中当前可用的模板中选择模板的对话框910。如图所示,该库包括用于i2cslave的模板(即,例示用于连接适当的寄存器的I2C端口的模板)和用于spislave的模板(即,例示用于连接适当寄存器的SPI端口的模板)。应该理解,可以开发任意数量的模板并将其添加到库中,本发明的方面在此不受限制。根据一些实施例,激活接口模板创建了接口的端口和连接以及用于寄存器映射的空壳。设计者然后可继续定义寄存器映射的寄存器并将其适当地连接到接口端口。图10示出选择i2cslave模板的结果。如面板1000所示,该模板生成最高级别(i2cJop)和寄存器映射。设计者可例如通过添加并规定如上所述的寄存器特^(例如,如图3-图6中所示)将寄存器添加并定义到空寄存器映射。在图10的屏幕画面中,设计者已规定并定义了三个寄存器rl、r2和r3。图11示出i2cslave的最高级别图。该最高级别图示出了添加到寄存器映射的寄存器以及例项(instance)是如何连接的。因此,可通过UI快速且高效地设计串行接口。还可使用通过模版便利经常重复的设计特征的其它方式,本发明的方面在此不受限制。在一些情况下,可能期望链接寄存器以创建更大宽度的寄存器。例如,在由8位寄存器组成的模块中,可能期望在最高级别暴露具有更大宽度(例如,16位、32位等)的一个或多个寄存器。在一些实施例中,GUI允许链接寄存器以在更大宽度的寄存器的最高级别给出外观。图12是示出允许设计者将又两个寄存器链接在一起以创建更大宽度的寄存器的GUI功能的屏幕画面。图12示出了图11中规定的寄存器映射。该屏幕画面中包括允许链接两个或更多个寄存器的寄存器链接面板1220。面板1225列出了已在寄存器映射中创建的所有寄存器并允许设计者添加/去除M接的寄存器。例如,对于所定义的"linkl"(链接1),将寄存器rl和r2链接在一起以创建16位的寄存器。应该理解,可以将任意数量的寄存器链接在一起以创建任意宽度的寄存器,本发明的方面在此不受限制。可以以多种方式中的任何一种来实现本发明的上述实施例。例如,可以使用硬件、软件或其组合来实现各实施例。当以软件实现时,软件代码,不论是在单个计算机中提供还是分布在多个计算机中,可在适当的处理器或处理器集合上执行。应该理解,执行上述功能的任何组件或组件集合可以一般地视为控制上述功能的一个或多个控制器。一个或多个控制器可以以多种方式,如专用石更件或使用微码编程的通用多更件(例如一个或多个处理器),或软件来实现以执行上述功能。应理解,可将在此概述的各方法编码为可在采用各种^Mt系统或平台中任何一个的一个或多个处理器上执行的软件。此外,该软件可使用多种适当的编程语言和/或传统的编程或脚本工具中的任何来编写,也可将该软件编译为可执行的机器语言代码。在这一点上,应理解本发明的一个实施例涉及编码有一个或多个程序的计算机可读介质(或者多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩盘、光盘、磁带等),该计算机程序当在一个或多个计算机或其它处理器上执行时,执行用于实现上述本发明各实施例的方法。计算机可读介质可以是可移动的,使得其上存储的程序可以加载到一个或多个不同计算机或其它处理器上以实现上述本发明的各方面。应该理解,在本文中术语"程序"在一般意义上使用,指可用来编程计算机或其它处理器以实现上述本发明各方面的任意类型的计算机代码或指令集。此外,应该理解,才艮据本实施例的一个方面,在执行时实现本发明的方法的一个或多个计算机程序不一定驻留在单个计算机或处理器上,而是可以以模块化的方式分布在多个不同的计算机或处理器中以实现本发明的各方面。本发明的各方面可单独、组合或以上述实施例中没有具体讨论的多种配置使用,因此在其应用中不限于以上说明中阐述的或附图中示出的组件的细节和配置。本发明能够以其它实施例实现,并且能够以多种方式来实施或执行。具体来说,与可变的辐射能量和可变的辐射强度相关的各种概念可以以任何方式使用,或单独或组^H^吏用,本发明的方面不限于此处所述的特定组合。因此,以上说明和附图只是示例性的。在权利要求中使用序数词如"第一"、"第二"、"第三"等以修饰权利要求要素,其本身不意味着一项权利要求要素相对于另一要素的任何优先级、优先或先后顺序,或者执行方法步骤的时间顺序,仅用作标记以区分具有确定名称的一项权利要求要素与(如果没有序数词)具有相同名称的另一要素,从而区分权利要求要素。此夕卜,在本文中所使用的措辞和术语是出于说明的目的而不应该理解为限制性的。在本文中对"包括"、"包含,,或"具有""涉及"及其变形的使用意味着包含其后列出的项及其等同物以及另外的项。权利要求1.一种软件应用,用于便利寄存器规格的设计,该应用包括用户接口,适于从用户接收寄存器规格中指示关于至少一个寄存器的信息的输入,所述用户接口基于所接收到的输入生成寄存器信息;翻译器,耦合到所述用户接口以接收所述寄存器信息且适于将所述寄存器信息转换为内部表示;以及至少一个过滤器,适于将所述内部表示变换为至少一个对应的输出格式。2.根据权利要求l所述的应用,其中所述用户接口是图形用户接口,其允许用户以具有多个级别的笫一分层结构定义所述寄存器恥格。3.根据权利要求2所述的应用,其中所述第一分层结构包括用于将寄存器模块规定为所述寄存器恥洛的一部分的第一级别,所述寄存器模块包括多个寄存器。4.根据权利要求3所述的应用,其中所述第一分层结构包括用于定义所述寄存器模块中的所述多个寄存器的每一个的寄存器级别信息的第二级别。5.根据权利要求4所述的应用,其中所述第一分层结构包括用于定义在所述寄存器模块中定义的所述多个寄存器中选择的寄存器的位字段的第三级别。6.根据权利要求5所述的应用,其中所述第一分层结构包括用于定义针对在所述寄存器模块中定义的所述多个寄存器中选择的寄存器定义的每个位字段的枚举的第四级别。7.根据权利要求2所述的应用,其中所述内部表示具有反映所述第一分层结构的第二分层结构。8.根据权利要求7所述的应用,其中所述内部表示包括可扩展标记语言。9.根据权利要求l所述的应用,还包括数据库,该数据库能够存储对应于由所述用户通过所述用户接口输入的相应的多个寄存器规格的多个内部表示。10.根据权利要求9所述的应用,其中所述内部表示包括可扩展标记语言并且所述数据库适于存储多个可扩展标记语言文件。11.根据权利要求3所述的应用,其中所述翻译器被配置成针对在所述寄存器皿中定义的每个模块以所述内部表示生成单独的文件。12.根据权利要求1所述的应用,其中所述至少一个过滤器包括能够将所述内部表示转换为至少一个超文本链接标识语言文件的过滤器。13.根据权利要求1所述的应用,其中所述至少一个过滤器包括能够将所述内部表示转换为至少一个Verilog文件的过滤器。14.根据权利要求1所述的应用,其中所述至少一个过滤器包括能够将所述内部表示转换为至少一个Word文件的过滤器。15.根据权利要求1所述的应用,其中所述至少一个过滤器包括能够将所述内部表示转换为C文件和C++文件中的至少一个的过滤器。16.根据权利要求1所述的应用,其中所述至少一个过滤器包括能够将所述内部表示转换为至少一个便携式文档格式的文件的过滤器。17.根据权利要求2所述的应用,其中所述图形用户接口包括块寄存器接口,该块寄存器接口适于允许用户定义重复的寄存器块,其中通过所述图形用户接口一次定义所述寄存器块中的每个寄存器,且其中所述块寄存器接口包括用于接收表示所定义的寄存器块要被重复的次数的计数n的输入。18.根据权利要求17所述的应用,其中所述翻译器被配置成扩展所述寄存器块,使得所述内部表示包括所述n个块的每个中的每个寄存器的表示。19.根据权利要求9所述的应用,其中所述数据库存储可被所述用户接口访问的库,所述库存储对应于标准组件的至少一个模板。20.根据权利要求19所述的应用,其中所述至少一个模板包括至少一个串行接口模板。21.根据权利要求20所述的应用,其中所述至少一个模块包括串行外设接口模板和内部集成电路模板。22.根据权利要求21所述的应用,其中所述串行外设接口模板包括由串行外设接口标准定义的端口的连接,且其中所述内部集成电路模板包括由内部集成电路标准定义的端口的连接。23.根据权利要求20所述的应用,其中所述至少一个串行接口模板包括由相应的串行接口标准定义的端口的连接,并提供要由所述用户定义的空的寄存器映射。24.根据权利要求23所述的应用,其中所述用户接口被配置成提供接口组件,该接口组件允许用户链接两个或更多个寄存器以创建具有所期望的宽度的链接的寄存器。25.—种计算机可读^/h质,其编码有能够在一个或多个处理器上执行的指令,所述指令在被执行时执行基于用户提供的输入生成寄存器恥格的方法,该方法包括提供用于接收所述寄存器规格的关于至少一个寄存器的输入的用户接口;基于所接收到的输入生成寄存器信息;将所述寄存器信息翻译成内部表示;以及将所述内部表示变换成至少一个对应的输出格式。26.根据权利要求25所述的计算机可读介质,其中提供用户接口包括提供允许用户定义所述寄存器皿的图形用户接口。27.根据权利要求26所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户规定寄存器模块作为所述寄存器规格的一部分的图形用户接口,所述寄存器模块包括多个寄存器。28.根据权利要求27所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户规定所述寄存器模块中的所述多个寄存器的每一个的寄存器级别信息的图形用户接口。29.根据权利要求28所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户规定在所述寄存器模块中定义的所述多个寄存器中选择的寄存器的位字段的图形用户接口。30.根据权利要求29所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户规定针对在所述寄存器模块中定义的所述多个寄存器中选择的寄存器定义的每个位字段的枚举的图形用户接口。31.根据权利要求25所述的计算机可读介质,其中翻译所述寄存器信息包括将所述寄存器信息转换为至少一个可扩展标记语言文件。32.根据权利要求27所述的计算机可读介质,其中翻译所述寄存器信息包括针对在所述寄存器规格中定义的每个模块以所述内部表示生成单独的文件。33.根据权利要求25所述的计算机可读介质,其中转换所述内部表示包括将所述内部表示转换为至少一个超文本^&接标识语言文件。34.根据权利要求25所述的计算机可读介质,其中转换所述内部表示包括将所述内部表示转换为至少一个Verilog文件。35.根据权利要求25所述的计算机可读介质,其中转换所述内部表示包括将所述内部表示转换为至少一个Word文件。36.根据权利要求25所述的计算机可读介质,其中转换所述内部表示包括将所述内部表示转换为<:文件和€++文件中的至少一个。37.根据权利要求25所述的计算机可读介质,其中转换所述内部表示包括将所述内部表示转换为至少一个便携式文档格式的文件。38.根据权利要求26所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户规定重复的寄存器块,以及允许用户规定表示所定义的寄存器块要被重复的次数的计数n的图形用户接口,其中通过所述图形用户接口一次定义所述寄存器块中的每个寄存器。39.根据权利要求37所述的计算机可读介质,其中翻译包括扩展所述寄存器块d吏得所述内部表示包括n个块的每个块中的每个寄存器的表示。40.根据权利要求25所述的计算机可读介质,还包括提供对应于标准组件的至少一个模板。41.根据权利要求40所述的计算机可读介质,其中提供所述至少一个模板包括提供至少一个串行接口模板。42.根据权利要求41所述的计算机可读介质,其中提供所述至少一个模板包括提供串行外设接口模板和内部集成电路模板中的至少一个。43.根据权利要求26所述的计算机可读介质,其中提供所述图形用户接口包括提供允许用户链接两个或更多个寄存器以创建具有所期望的宽度的链接的寄存器的图形用户接口。44.根据权利要求26所述的计算机可读介质,与在经由网络连接的多个计算机上分布的多个处理器相结合,使得可从经由所述网络连接的所述多个计算机中的任何计算机执行所述指令。全文摘要本发明提供一种用于寄存器映射自动化的方法和设备。在一方面提供用于便利寄存器规格的设计的软件应用。该应用包括接口,适于从用户接收表示关于寄存器规格中至少一个寄存器的信息的输入,该接口基于所接收的输入生成寄存器信息;翻译器,耦合到接口以接收寄存器信息并适于将该寄存器信息转换为内部表示;以及至少一个过滤器,适于将内部表示变换为至少一个对应的输出格式。文档编号G06F17/50GK101334806SQ200810126220公开日2008年12月31日申请日期2008年6月26日优先权日2007年6月26日发明者图什尼姆·达尔马加达申请人:模拟装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1