HAD管理和组合HDL电路单元IP库的辅助设计软件的管理

1、简介

在 Xilinx 和 Altera 的设计工具中,提供了一些 HDL 形式的电路库。但是库单元是比较简单的小规模数字电路,如逻辑门、74系列器件等,对于中、大规模、复杂逻辑时序电路的设计没有帮助。此外,还有一些外围功能模块和复杂的逻辑单元库,如通用异步收发器、有限脉冲响应滤波器等,但不是以HDL的形式提供的,只适用于一些特定的PLD器件,以及便携性比较差。因此,在实际工作中,编写了一个辅助设计软件——HAD软件,对HDL电路单元IP库进行管理和组合。通过HAD软件对设计好的HDL电路库进行管理,并根据系统设计规范的要求从库中选取相应的电路单元进行组合,大大降低了系统设计和调试的难度,提高了系统的稳定性。和可靠性,有利于系统未来的升级。

2、 HAD 辅助设计软件功能

辅助设计(HAD)软件主要对HDL语言的电路起到辅助设计的作用。HAD软件有两个功能:管理电路单元IP库和生成所需外围电路的HDL程序。

电路单元库的管理主要包括两个方面:电路单元接口的管理和电路单元HDL程序的管理。因此,电路单元库由两个库组成,一个是电路单元的接口库,另一个是电路单元HDL程序库[7]。电路单元接口库中的基本单元是各个电路单元的接口信息d触发器是同步还是异步,电路单元HDL库中的基本单元是描述各种电路单元的HDL源程序。与标准芯片类似,比如8255芯片,电路单元的接口信息描述了标准芯片的输入输出及其功能,相当于8255的管脚和功能描述;电路单元HDL程序描述了内部标准芯片。实际电路以及采用什么样的电路结构来实现相应的功能,相当于8255芯片内部的电路组成和结构。管理一个图书馆,基本的操作主要是增加、删除和修改图书馆单元。

HAD软件的最终目的是生成外围电路的HDL程序。即根据系统设计规范的要求,从IP库中选择合适的电路单元,然后将它们组合成合适的形式,成为一个完整的HDL程序。

3、 电路模块HDL程序生成

HAD软件的主要功能是电路模块HDL程序的生成。电路模块HDL程序的生成过程主要是对电路单元IP库中的一些单元进行多次实例化的过程。

实例化必须满足两个条件:第一,模块输入和输出端口的列表,第二,连接到这些端口的信号列表。根据两者的对应关系,完成例化,然后将例化的电路模块组合起来,形成HDL程序文件。电路模块HDL程序生成流程如图2所示:

通过以上分析,首先创建两个数据库。一个存放各个模块的HDL程序的源文件,另一个存放各个模块对应的输入输出端口的信号列表。

存储HDL程序源文件的数据库比较简单,其操作仅限于复制文件内容,这里不再赘述。

存储端口信号列表的数据库结构如表1所示。

在表1中,最上面一行是数据库的表头,字段名代表了每个字段下面内容的具体含义。其中,module是电路单元模块的名称;detail 是存储模块端口详细信息的数据库名称;PortN代表模块中的端口名称,N为自然数。

表 1 中从第二行开始的记录是不同的模块。例如,第二行记录中描述的模块是一个带异步清零端的D触发器,模块名称为DFF,模块端口的详细信息存储在DFF_D的数据库文件中。一共有4个端口,分别是CLK、CLR、D和Q。每个端口的方向和宽度都存储在数据库文件DFF_D中。

以DFF模块为例,对应的数据库文件DFF_D的内容如表2所示:

数据库文件 DFF_D 中有两种类型的字段。前半部分字段是“Pn_io”的形式,代表这个端口的流向,是输入、输出还是双向。后半部分字段采用“Pn_bit”的形式,表示端口信号的宽度。

通过以上两类数据库,可以完整掌握一个模块的所有接口信息。

在图 1 所示的流程图中,最重要的步骤是“实例化、组合”。根据上述数据库的定义和描述,实例化和组合的流程如图3所示。图中两个准备过程(六角框)的工作是“实例化组合”之前的准备工作。根据系统设计规范的要求,确定所需功能模块的类型和数量,然后设计者确定所有模块的名称及其输入输出信号。这些操作可以通过键盘输入来完成,从而将实例化和合成过程中所需的信息传递给HAD软件。

一旦确定了所需的模块,就可以一个一个地实例化每个模块。首先打开端口信号列表数据库,找到选中的模块。接下来,打开存储模块端口详细信息的数据库,读取端口的类型和数量,根据指定的连接信号名称实例化模块。最后,将实例化的 HDL 程序合并到一个文件中。

4. 管理电路单元库程序的设计思路

管理电路单元库的软件的功能是添加、删除和修改电路单元。该过程如图 4 所示。

在图4中,管理流程主要由三个处理分支组成,即增加、删除和修改电路单元分支。

电路单元的新增功能是将电路模块的HDL程序添加到电路单元库中。库中添加了一个新的电路单元,这意味着有更多功能可供选择。随着库中电路单元数量的增加,可以通过HAD软件完成的硬件设计比例会增加,有利于系统设计。

添加电路单元处理分支的流程如图5所示。添加电路单元涉及到两个数据库的操作,一个是端口列表数据库,另一个是端口明细数据库。首先对端口列表数据库进行新的操作d触发器是同步还是异步,添加一条空记录,在空记录的对应字段中填写新模块的I/O名称。然后,创建一个新的端口详细信息数据库文件。它有两倍于新模块的 I/O 域,其中一半用于指定 I/O 的方向,另一半用于指定端口信号的宽度。最后在新建数据库的相应字段中填写I/O信号的方向和宽度。处理分支结束后,返回管理流程入口,再次选择管理内容。

图6显示了删除电路单元的处理分支的流程。电路单元的删除功能是从库中删除不再需要的电路单元。用程序实现时,只需要删除数据库中电路单元的记录,同时将对应的详细信息数据库一起删除即可。

图7显示了修改电路单元的处理分支的流程。本单元的修改功能是修改库中电路单元的信息。

5、 结论

HAD软件采用VB设计软件中的数据库管理控制,通过数据库管理控制完成数据库单元的增删改等操作。该软件具有界面友好、操作方便等优点。它在许多嵌入式系统的设计中取得了很好的效果。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论