CN113496105A - 用于数字电路设计的综合用hdl的rtl描述的方法 - Google Patents
用于数字电路设计的综合用hdl的rtl描述的方法 Download PDFInfo
- Publication number
- CN113496105A CN113496105A CN202110305109.6A CN202110305109A CN113496105A CN 113496105 A CN113496105 A CN 113496105A CN 202110305109 A CN202110305109 A CN 202110305109A CN 113496105 A CN113496105 A CN 113496105A
- Authority
- CN
- China
- Prior art keywords
- hdl
- synthesis
- digital circuit
- grammar
- rtl description
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种用于数字电路设计的综合用硬件描述语言(HDL)的寄存器级(RTL)描述的方法,该方法使用至少一个综合引擎。
Description
技术领域
本发明涉及使用至少一个综合引擎的用于数字电路设计的综合用硬件描述语言(hardware description language,HDL)的寄存器传输级(register transfer level,RTL)描述的方法,该方法能够将较新版本的行为语法转换为较旧版本的行为语法。
背景技术
逻辑综合引擎或工具通常用于将通常在RTL级别的所需电路行为的抽象规范转换为以逻辑门的形式的设计实施。如图1所示,用户将使用任何合适的HDL以RTL描述的形式编写描绘所需电路行为的程序。此后,基于含有标准单元的特定技术库,由综合工具编译所述HDL代码,以逻辑形式将所述HDL代码解释为包括所述标准单元的网表。
HDL代码包括可由所述综合工具识别的语法。通常,HDL代码的语法将由相应的HDL代码不时地更新。例如,将IEEE 1076-2008/VHDL-2008语法更新为IEEE 1076-2019/VHDL-2019,由此前者的语法可以不同于后者的。此时,如果程序员使用HDL的特定版本,则程序员受限于该特定版本的软件特征。如果程序员使用仅支持所述HDL的较旧版本的特征的编译器,则程序员将需要使用适用于较旧软件版本的较旧语法重写代码,这是非常繁琐和无效的。
如果所述用户具有对用综合工具下载的如计算机等计算设备的物理访问权,则用户此时仅能够执行逻辑综合。通常,如果用户需要远程使用综合工具,则用户需要使用如TeamViewer等远程访问软件。这可能导致非常缓慢的进程,并且还需要事先安装此类远程访问软件。
因此,通过使用至少一个综合引擎的用于数字电路设计的综合用硬件描述语言(HDL)的寄存器传输级(RTL)描述的方法来减轻缺点将是有利的,该方法能够将较新版本的行为语法转换为较旧版本的行为语法。
发明内容
因此,本发明的主要目的是提供一种用于数字电路设计的综合用HDL的RTL描述的方法,本质上是一种简单易用的编译器。
本发明的又一目的是提供一种用于数字电路设计的综合用HDL的RTL描述的方法,该方法可用于任何平台。
本发明的又一个目的是提供一种用于数字电路设计的用HDL综合RTL描述的方法,该方法可以容易地支持任何新的语法。
本发明的其他目的随着对本发明的以下详细说明的理解将变得显而易见,或者在实际中应用本发明时将变得显而易见。
根据本发明的优选实施例,提供以下内容:
一种用于数字电路设计的用硬件描述语言(HDL)综合寄存器传输级(RTL)描述的方法,该方法使用至少一个综合引擎,包括以下步骤:
(i)在较新版本的行为语法中获得所述用HDL的RTL描述;
(ii)基于至少一个规则数据库比较每个所述较新版本的行为语法,以将所述较新版本的行为语法转换为较旧版本的行为语法。
附图说明
在结合附图研究了详细说明之后,将发现本发明的其他方面及其优点,在这些附图中:
图1示出了用于将用HDL代码的RTL描述综合为网表的通用综合工具的框图。
图2示出了将较新版本的行为语法转换为较旧版本的行为语法的本发明的示例方法之一的流程图。
图3示出了阐明本发明的方法如何通过至少一个互联网浏览器可由前端用户界面远程访问的框图。
具体实施方式
在下面的详细说明中,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实施本发明。在其他情况下,没有详细描述公知的方法、过程和/或组件,以免使本发明模糊不清。
从以下从本发明实施例的描述中将更清楚地理解本发明,仅参考附图以示例的方式给出实施例,附图未按比例绘制。
如在本公开内容和本文所附权利要求书中所使用的,除非上下文清楚地指定或另外指示,否则单数形式“一”、“一种”和“该”包括复数指称。
在本申请的公开内容和权利要求书全文中,单词“包括”和该单词的变体(如“包括着”和“包括了”)意指“包括但不限于”,并非旨在排除例如其他组件、整数或步骤。“示例性”意指“的示例”,并非旨在传达优选的或理想的实施例的指示,“如”并非用于限制性意义,而是出于解释的目的。
图2示出了使用至少一个综合引擎的用于数字电路设计的综合用硬件描述语言(HDL)的寄存器传输级(RTL)描述的本发明的示例方法之一的流程图,该方法包括以下步骤:(i)在较新版本的行为语法中获得所述用HDL的RTL描述;(ii)基于至少一个规则数据库(RD#1)比较每个所述较新版本的行为语法,以将所述较新版本的行为语法转换为较旧版本的行为语法。该方法类似于使用自动将用C语言的软件描述转换为用HDL的RTL描述的高级综合软件。使用具有相应正则表达式(Regex#1、Regex#2、…、Regex#N)的解析器引擎来完成该转换。解析器引擎是包括Perl、C、C++、Python、Java或任何合适的编程语言的正则表达式的编译器。解析器引擎还可以是内置在RTL硬件中的包括Perl、C、C++、Python、Java或任何合适的编程语言的正则表达式的编译器。目的是尽可能地解释为更接近于物理电路的形式。例如,解析器引擎的输入源是以VHDL-2019或VHDL-2008的RTL描述;而解析器引擎的输出是以VHDL’93的RTL描述。
例如,用户希望创建可用于任何通信接口的程序包(package)。用户将在未实例化的程序包中创建泛型类型(generic type)。此通用类型仅定义了类型,但尚未实例化。相同的程序包可以用于不同的项目。以下是使用VHDL-2008作为泛型方法的输入源来编写文件名为pkg0.vhdl的程序包的示例,并且假设该程序包已在logikhaus库下编译:
对于每个不同的项目,用户将定义用于特定目的的泛型类型。在这种情况下,目的是特定的通信接口,如通用串行总线(USB)或以太网,因为某些类型只能用于某些应用。
根据需要添加进一步的转换函数和重载函数。以粗体突出显示的语法是关键词,而其他的是数据。多重正则表达式可用来解析HDL源代码,以识别不同类型的语法(模块、函数、程序包等)。当检测到语法中的关键词/其他的特定模式时,数据/标识符随后作为变量存储在特定位置中。
本发明的解析器引擎的脚本的功能是在HDL源文件中搜索特定模式(如上所示)以检测由特定用户编码的特定模式。一旦识别出特定的已知模式,所述脚本应继续将所述HDL源文件的新语法转换为旧语法。
在实施所述转换函数和/或重载函数之后,将上述VHDL-2008程序包转换为如VHDL-93语法等旧语法,如下所示:
此后,用户创建用户RTL设计,由此用户将利用上述程序包(通常但不限于存储在单独的文件中)
关键词或其他的输出模式是预定义的。然后将所述变量中的数据插入到含有关键词新模式的新输出语法中。
该方法还包括以下步骤:基于至少一个规则数据库(RD#2),在较旧版本的行为语法中从所述用HDL的RTL描述创建至少一个门级结构网表。例如,将以VHDL’93的RTL描述转换为VHDL’93门级网表。
除了在较旧版本的行为语法中从用HDL的RTL描述创建门级结构网表之外,本发明的另一实施例是直接在较新版本的行为语法中从用HDL的RTL描述创建门级结构网表。
该方法还包括以下步骤:基于至少一个规则数据库(RD#3)将所述门级结构网表映射到代工厂标准单元库。该方法还包括以下步骤:将所述门级结构网表映射到任何FPGA原语(primitive)单元库。原语单元库的示例有英特尔的宏功能(Megafunction)和赛灵思的Unisim。
本发明的实施方式的示例是将行为VHDL-2019或VHDL-2008代码转换为行为VHDL’93代码。这个阶段的输出“网表”(VHDL’93行为代码)将是下一阶段的输入,由此另一或同一解析器将VHDL’93输出转换为门级(结构)网表。然后使用另一或同一解析器将门级结构网表转换为代工厂标准单元库。还可以将行为VHDL-2019代码直接转换为门级(结构)网表;或者将行为VHDL-2019代码直接转换为代工厂标准单元库。
解析器引擎的特征的示例有块注释、程序包中的泛型类型、泛型程序包、实体中的类型泛型、未实例化程序包的多个实例、子程序中的泛型列表、泛型子程序、增强的位字符串文本、简化的过程灵敏度列表、从出模端口的回读以及其他。重要的是要注意,即使出于它们的不同目的使用所述规则数据库(RD#1、RD#2、RD#3);还可以在单个规则数据库或任何数量的规则数据库中完成所述目的。
本发明的目的还在于请求保护上述解析器引擎还可以在硬件而不是规则数据库的正则表达式中实施。
图3示出了阐明本发明的使用至少一个综合引擎的用于数字电路设计的综合用HDL的RTL描述的方法如何通过至少一个互联网浏览器进一步连接到可由至少一个远程用户访问的至少一个远程前端用户界面的框图,所述远程前端用户界面通过网络服务器控制综合引擎的行为。使用超文本标记语言(HTML)、层叠样式表(CSS)、JavaScript、JavaScript对象表示法(JSON)、异步JavaScript和XML(AJAX)或其他合适的语言来设计前端用户界面,以提供电子设计自动化(EDA)工具的界面外观。前端用户界面可以包括菜单、按钮、开关、图形/文本域、提交按钮等。远程前端用户界面由至少一个服务器托管,使用HDL硬件构建或制造该服务器。网络服务器托管前端,在与后端通用网关接口(CGI)通信时使用HTTP。前端用户界面通过使用HTTP请求对象(例如XMLHTTPRequest对象)在接收来自所述CGI的响应的同时向所述CGI发送HTTP请求来与后端CGI通信。CGI脚本可以用Perl、任何其他合适的编程语言来编写,或者可以转换为硬件RTL。CGI被写入以处理来自所述前端用户界面的HTTP请求并向所述前端用户界面发送HTTP响应。后端脚本是实际的综合引擎。重要的是要注意,通过至少一个互联网浏览器连接到至少一个远程前端用户界面的能力也适用于后端CGI脚本,这些脚本是自动布局布线(APR)引擎或基于硬件的引擎。
尽管在被认为是本发明的优选实施例中本文已经示出和描述了本发明,阐明了通过本发明获得的结果和优于现有技术的优点,但是本发明不限于那些具体的实施例。因此,如在本发明所附的权利要求书中所述的,本文示出和描述的本发明的形式被认为仅是示例性的,并且可以在不脱离本发明的范围的情况下选择其他实施例。本发明的范围包括许多替代、修改和等同方案。必然地,有许多替代的方式来配置和实施本发明以适合特定的设施和环境,同时提供不同设计的生物学结果。
Claims (11)
1.一种用于数字电路设计的综合用硬件描述语言(HDL)的寄存器传输级(RTL)描述的方法,该方法使用至少一个综合引擎,包括以下步骤:
(i)在较新版本的行为语法中获得所述用HDL的RTL描述;
(ii)基于至少一个规则数据库比较每个所述较新版本的行为语法,以将所述较新版本的行为语法转换为较旧版本的行为语法。
2.根据权利要求1所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中使用具有相应正则表达式的解析器引擎来完成所述转换。
3.根据权利要求2所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述解析器引擎是包括Perl、C、C++、Python、Java或任何合适的编程语言的正则表达式的编译器。
4.根据权利要求2所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述解析器引擎是内置在HDL硬件中的包括Perl、C、C++、Python、Java或任何合适的编程语言的正则表达式的编译器。
5.根据权利要求1所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述方法还包括以下步骤:基于至少一个规则数据库,在较旧版本的行为语法中从所述用HDL的RTL描述创建至少一个门级结构网表。
6.一种用于数字电路设计的综合用硬件描述语言(HDL)的寄存器传输级(RTL)描述的方法,该方法使用至少一个综合引擎,包括以下步骤:
(i)在较新版本的行为语法中获得所述用HDL的RTL描述;
(ii)基于至少一个规则数据库比较每个所述较新版本的行为语法,以基于较旧版本的行为语法将所述较新版本的行为语法转换为至少一个门级结构网表。
7.根据权利要求5或6所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述方法还包括以下步骤:基于至少一个规则数据库将所述门级结构网表映射到代工厂标准单元库。
8.根据权利要求5或6所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述方法还包括以下步骤:将所述门级结构网表映射到任何FPGA原语单元库。
9.根据前述权利要求中任一项所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述方法通过至少一个互联网浏览器进一步连接到能够由至少一个远程用户访问的至少一个远程前端用户界面,所述远程前端用户界面通过网络服务器控制综合引擎的行为,从而执行根据前述权利要求中任一项所述的方法。
10.根据权利要求9所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中使用超文本标记语言(HTML)、层叠样式表(CSS)、JavaScript、JavaScript对象表示法(JSON)、异步JavaScript和XML(AJAX)或其他合适的语言来设计所述前端用户界面。
11.根据权利要求9所述的用于数字电路设计的综合用HDL的RTL描述的方法,其中所述远程前端用户界面由至少一个服务器托管。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
MYPI2020001514 | 2020-03-20 | ||
MYPI2020001514 | 2020-03-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113496105A true CN113496105A (zh) | 2021-10-12 |
Family
ID=77997433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110305109.6A Pending CN113496105A (zh) | 2020-03-20 | 2021-03-19 | 用于数字电路设计的综合用hdl的rtl描述的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113496105A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000061819A (ko) * | 1999-03-31 | 2000-10-25 | 윤종용 | 다양한 언어로 기술된 프로그램의 시뮬레이션 결과 비교 검증 장치 및 그 방법 |
US6539520B1 (en) * | 2000-11-28 | 2003-03-25 | Advanced Micro Devices, Inc. | Systems and methods for generating hardware description code |
CN101055523A (zh) * | 2006-06-01 | 2007-10-17 | 威盛电子股份有限公司 | 将软件程序代码断言转换为硬件描述语言程序代码的方法 |
US20130111423A1 (en) * | 2011-10-27 | 2013-05-02 | Liang Xia | Tool suite for rtl-level reconfiguration and repartitioning |
US20190064269A1 (en) * | 2017-08-22 | 2019-02-28 | Arm Limited | Apparatus and method for performing a scalability check on a hardware description language representation of a circuit |
-
2021
- 2021-03-19 CN CN202110305109.6A patent/CN113496105A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000061819A (ko) * | 1999-03-31 | 2000-10-25 | 윤종용 | 다양한 언어로 기술된 프로그램의 시뮬레이션 결과 비교 검증 장치 및 그 방법 |
US6539520B1 (en) * | 2000-11-28 | 2003-03-25 | Advanced Micro Devices, Inc. | Systems and methods for generating hardware description code |
CN101055523A (zh) * | 2006-06-01 | 2007-10-17 | 威盛电子股份有限公司 | 将软件程序代码断言转换为硬件描述语言程序代码的方法 |
US20130111423A1 (en) * | 2011-10-27 | 2013-05-02 | Liang Xia | Tool suite for rtl-level reconfiguration and repartitioning |
US20190064269A1 (en) * | 2017-08-22 | 2019-02-28 | Arm Limited | Apparatus and method for performing a scalability check on a hardware description language representation of a circuit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7975233B2 (en) | Automatic conversion of a textual language into a graphical program representation | |
CN101398758B (zh) | 一种代码抄袭的检测方法 | |
US7954059B2 (en) | Automatic conversion of text-based code having function overloading and dynamic types into a graphical program for compiled execution | |
US20020143823A1 (en) | Conversion system for translating structured documents into multiple target formats | |
US20180293332A1 (en) | Development, programming, and debugging environment | |
CN102880468A (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
US5949993A (en) | Method for the generation of ISA simulators and assemblers from a machine description | |
JP2007517336A (ja) | モデリング環境における階層参照又はリンク | |
US11593076B2 (en) | Method for merging architecture data | |
US8849650B2 (en) | System and method for automatically generating sentences of a language | |
US20040205587A1 (en) | System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable | |
CN113496105A (zh) | 用于数字电路设计的综合用hdl的rtl描述的方法 | |
Dall'Ora et al. | A common manipulation framework for transistor-level languages | |
US7849404B2 (en) | System for determining whether screen displayed by program satisfies specification | |
US20050177788A1 (en) | Text to XML transformer and method | |
Yevick | A First Course in Computational Physics and Object-Oriented Programming with C++ Hardback with CD-ROM | |
JP5577619B2 (ja) | 論理回路設計装置 | |
JPH05346332A (ja) | 試験プログラム実行方法 | |
KR20140147438A (ko) | 마크업 파싱 장치, 방법 및 기록 매체 | |
Ebeling et al. | WireLisp: Combining graphics and procedures in a circuit specification language | |
Yevick | A short course in computational science and engineering: C++, Java and Octave numerical programming with free software tools | |
Cyre et al. | A rapid modeling tool for virtual prototypes | |
McDonald et al. | Denotational semantics of a command interpreter and their implementation in Standard ML | |
Nebeling et al. | Domain-specific language for context-aware web applications | |
Hartley et al. | Introduction to Software Engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |