首页> 中国专利> 一种基于FPGA的AT96总线控制器IP核及其构建方法

一种基于FPGA的AT96总线控制器IP核及其构建方法

摘要

一种基于FPGA的AT96总线控制器IP核,它是由AT96总线接口模块、AT96总线控制器状态机模块、FIFO缓存模块、局部总线控制模块、局部总线接口模块和功能配置模块组成,AT96总线接口模块一端连接到AT96总线接口卡上,另一端与AT96总线控制器状态机模块连接;AT96总线控制器状态机模块连接到FIFO缓存模块上,FIFO缓存模块又与局部总线控制模块连接,而局部总线控制模块连接到局部总线接口模块,功能配置模块与后四个模块都有连接。一种基于FPGA的AT96总线控制器IP核的构建方法有六大步骤:一、设计输入;二、功能仿真;三、逻辑综合;四、前仿真;五、输出网表文件;六、输出IP核调用模块。

著录项

  • 公开/公告号CN102184148A

    专利类型发明专利

  • 公开/公告日2011-09-14

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201110096176.8

  • 申请日2011-04-18

  • 分类号G06F13/20(20060101);G06F13/24(20060101);

  • 代理机构11232 北京慧泉知识产权代理有限公司;

  • 代理人王顺荣;唐爱华

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-12-18 03:08:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-04

    未缴年费专利权终止 IPC(主分类):G06F13/20 授权公告日:20141029 终止日期:20170418 申请日:20110418

    专利权的终止

  • 2014-10-29

    授权

    授权

  • 2013-01-30

    实质审查的生效 IPC(主分类):G06F13/20 申请日:20110418

    实质审查的生效

  • 2011-09-14

    公开

    公开

说明书

一、技术领域

本发明涉及通信类单板通过AT96总线接口互联的应用,尤其涉及一种基于FPGA的AT96总线控制器IP核及其构建方法,属于通讯设备设计及应用技术领域。

二、背景技术

为了将AT96总线PC机应用在恶劣的工业环境中,1994年由德国SIEMENS公司发起制定了AT96总线欧洲卡标准(IEEE996),并在欧洲得到了推广应用。AT96总线=AT96总线电气规范+96芯针孔连接器+欧洲卡规范(IEC297/IEEE 1011.1)。AT96总线工控机消除了模板之间的边缘金手指连接,具有抗强震动和冲击能力;其16位数据总线、24位寻址能力、高可靠性和良好的可维护性,更适合在恶劣工业环境中应用。在国外,AT96总线工控机较齐全,有80386、80486产品,也有PENTIUM系列产品,支持高速ETHERNET网络接口。由于AT96总线具有上述优越性,AT96总线开始广泛的用于自动控制、数据传输设备、医疗器械等行业。这些设备为了支持AT96总线访问的功能,必须在设备上设计AT96总线控制器。传统的AT96总线控制器都是以ASIC芯片为主,其优点是硬件设计方便,不必考虑AT96总线协议的内部实现。但缺点是成本较高,可移植性差,配置操作繁琐,应用效率不高。因此,设计一款可移植性强、配置操作简单、应用效率高且成本较小的AT96总线控制器是很有必要的,本文公开了一种基于FPGA的AT96总线控制器IP核的设计和实现方法。

三、发明内容

1)发明目的:

现有的AT96总线控制器大部分基于ASIC芯片设计的,其设计复杂、可移植性差,配置操作繁琐,应用效率不够,且成本较高。本发明的目的是为了克服现有基于ASIC芯片的AT96总线控制器的缺点,提供一种基于现场可编程门阵列(即FPGA)的AT96总线控制器IP核及其构建方法,它配置简单、可移植性强,AT96总线协议完全由FPGA硬件完成,降低了CPU的负荷,同时大大降低应用成本。

2)技术方案:

1、本发明一种基于FPGA的AT96总线控制器IP核,它是由AT96总线接口模块(001)、AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)、局部总线接口模块(005)和功能配置模块(006)组成,如图2所示,它们之间的位置连接关系和信号流向如下所述:

AT96总线接口模块(001)一端连接到AT96总线接口卡上,另一端与AT96总线控制器状态机模块(002)连接,AT96总线控制器状态机模块(002)连接到FIFO缓存模块(003)上,FIFO缓存模块(003)直接连接到局部总线控制模块(004),而局部总线控制模块(004)连接到局部总线接口模块(005),功能配置模块(006)与AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)及局部总线接口模块(005)都有连接。

a)AT96总线接口模块(001)一端连接到AT96总线接口卡上,另一端连接到AT96总线控制器状态机模块(002),其接收来自AT96总线上的数据及控制信号或发送数据及控制信号到AT96总线上;

b)AT96总线控制器状态机模块(002)是整个IP核的控制核心,其采用有限状态机FSM实现AT96总线协议规定的AT96总线时序以及数据的接收或发送缓存控制。AT96总线控制器状态机模块(002)连接到FIFO缓存模块(003)上,由AT96总线控制器状态机模块(002)控制向FIFO缓存模块(003)中缓存接收到的数据和控制信号数据或从FIFO缓存模块(003)中读取要发送的数据和控制信号数据;

c)FIFO缓存模块(003)用于AT96总线时钟域和局部总线时钟域的切换功能,它直接连接到局部总线控制模块(004),由局部总线控制模块(004)控制从FIFO缓存模块(003)读出接收的数据和控制信号或存入要发送到AT96总线上的数据和控制信号;

d)局部总线控制模块(004)连接到局部总线接口模块(005),局部总线接口模块(005)是实现FPGA内部总线接口与CPU接口的转换功能;

e)功能配置模块(006)与AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)及局部总线接口模块(005)都有连接,主要功能是配置AT96总线控制器IP核的参数,设置AT96总线控制器IP核的工作模式、中断检测方式、主从切换及指示运行状态信息。

所述AT96总线接口模块是由FPGA内部的输入输出缓冲器IOB组成,包括输入缓冲器(InPut Buffer),输出缓冲器(Output Buffer)、输入输出双向缓冲器(InOut Buffer)及3态缓冲器(Tri-State Buffer),它们彼此之间相互连接。AT96总线接口模块主要完成FPGA内部的信号电平与AT96总线协议规定的信号电平的相互转换功能以及实现AT96总线信号中的双向传输端口的功能。

所述AT96总线控制器状态机模块是由FPGA内部逻辑实现的一个有限状态机(FSM)组成的,该有限状态机在时钟的节拍下,根据输入到状态机的控制信号及外部的状态信号,实现各状态功能之间的跳转,在不同状态下,状态机输出相应功能的控制信号和指示信号。FIFO缓冲模块根据状态机输出的控制信号和指示信号,完成数据接收、发送及缓存功能。

所述FIFO缓存模块是由FPGA内部的查找表(LookUp Table,LUT)和寄存器REG组成的,他们之间相互关联;具有两组总线端口,分别为输入总线端口和输出总线端口。每组总线端口包括时钟、地址、数据、控制信号及状态信号,他们之间的时序关系有严格定义;FIFO缓存模块主要实现时钟域的切换功能,即输入输出总线的时钟域不一致时,通过输入总线时钟将数据缓存到FIFO缓存模块中,再通过输出总线时钟将数据从FIFO缓存模块中读出,完成数据的先进先出(First In First Out,FIFO),从而实现时钟域的切换功能。

所述局部总线控制模块是由FPGA内部逻辑资源实现的一个与CPU进行交互数据的控制器模块。其根据与它相连接的FIFO缓存模块发出的控制和状态信号,发送控制信号操作FIFO缓存模块的输入输出总线端口,实现数据的写入读出功能,再根据CPU总线的访问信号,将数据发送到局部总线上或从局部总线上采样出来。

所述局部总线接口模块的组成与AT96总线接口模块的组成相同,也是由FPGA内部的输入输出缓冲器IOB组成。局部总线接口模块主要完成FPGA内部的信号电平与CPU总线信号电平的相互转换功能。

所述功能配置模块是由FPGA内部的一组寄存器组成的。功能配置模块主要功能是配置AT96总线控制器IP核的参数,设置AT96总线控制器IP核的工作模式、中断检测方式、主从切换及指示运行状态信息。

2、本发明一种基于FPGA的AT96总线控制器IP核的构建方法,该方法具体步骤如下,其流程图如图3所示。

步骤一:设计输入。根据AT96总线协议需求,将设计目标划分为各个功能模块。功能模块包括AT96总线接口模块(001)、AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)、局部总线接口模块(005)和功能配置模块(006)。再采用硬件描述语言Verilog HDL编写代码实现各个功能。为保证时序满足要求,同时编写逻辑时序约束文件。

步骤二:功能仿真。利用ModelSim仿真工具对各个功能模块及顶层模块进行功能仿真,根据功能仿真的波形图中分析各功能模块及顶层模块的功能是否满足设计要求。如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码。直到满足要求为止。

步骤三:逻辑综合。利用Xilinx ISE编译环境或Synplify编译环境创建工程文件,将通过功能仿真的各个功能模块及时序约束文件作为输入文件,设置编译环境参数使编译输出包括逻辑网表EDIF文件和输入输出端口说明文件。

步骤四:前仿真。即布线布局之前的功能仿真。在ModSim仿真工具中,将步骤三的输出网表文件EDIF文件作为输入文件建立仿真工程,进行布线布局前的功能仿真。根据仿真结果判断整体功能是否满足设计要求。如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码。直到满足要求为止。

步骤五:输出网表文件。因为生成的IP核调用模块要被其他顶层逻辑模块调用使用,所以IP核中不能插入IOBUF。因此在综合工具属性中去除Insert IO Buffer的选项。重新编译综合,输出无IOBUF的网表文件。

步骤六:输出IP核调用模块。逻辑综合后,会输出一个EDIF格式的网表文件和一个对应的输入输出端口声明文件。在调用该IP核时,在逻辑顶层中直接像调用一般的输入文件一样,例化该输入输出端口文件,同时将EDIF文件加入到逻辑工程文件中即可。

其中,在步骤一中所述的Verilog HDL语言是一种硬件描述语言(Hardware DescriptionLanguage),用于制作数字电路而用来描述ASICs和FPGA的设计功能的。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。

其中,在步骤二中所述的ModelSim仿真工具是Mentor公司推出的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

其中,在步骤三中所述的Xilinx ISE编译环境是Xilinx公司推出的完整的FPGA集成开发环境,功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。Synplify编译环境是Synopsys公司提供的专门针对FPGA和CPLD实现的逻辑综合工具,该工具涵盖了可编程逻辑器件(FPGAs、PLDs和CPLDs)的综合,验证,调试,物理综合及原型验证等领域。EDIF是电子设计交换格式(Electronic Design Interchange Format)的英文字头缩写。EDIF文件是不同EDA厂家之间交换设计数据的标准格式,解决了用不同EDA厂家工具完成设计的数据交流问题。

3)有益效果:

采用本发明的设计方案可以有效的实现以AT96总线为接口的多个功能设备之间的互联,本发明采用Verilog硬件语言以FPGA为基础实现AT96总线控制器IP核,其硬件设计灵活、配置操作简单、可移植性强,AT96总线协议完全由FPGA硬件完成,降低了CPU的负荷,相比ASIC芯片来说,以FPGA实现AT96总线控制器大大降低了应用成本。

四、附图说明

图1是一个简单的AT96总线应用实例示意图;

图2是本发明的基于FPGA的AT96总线控制器IP核的结构框图;

图3是本发明的基于FPGA的AT96总线控制器IP核的构建方法流程框图

图中的符号说明如下:

RAM(Random Access Memory):随机存储器;

CPU(Central Processing Unit):中央处理器;

FPGA(Field Programmable Gate Array):现场可编程门阵列;

A/D(Analog-to-Digital Converter):模数转换单元;

D/A(Digital-to-Analog Converter):数模转换单元;

SG-1~N:模拟信号输入1到N路;

CPLD(Complex Programmable Logic Device):复杂可编程逻辑器件;

IO:数字量输入输出;

FIFO(First In First Out Memory):先进先出存储器;

DMA(Direct Memory Access):直接存储器访问。

五、具体实施方式

为了说明本发明的设计思想,在此给出了AT96总线的一个简单应用实例,如图1所示。此应用实例系统由计算机板、AD板,IO板和背板组成。计算机板在CPU模块的控制下发起AT96总线控制器的操作,通过背板的AT96总线去控制和访问AD板和IO板。其中AT96总线控制器是整个系统的核心部分,为AT96总线设备和用户设备提供操作接口,协调AT96总线设备和用户设备之间进行信息交互,使用户设备能够按照AT96总线的规范进行数据的传输。AT96总线控制器的设计比较复杂,根据用户设备的不同性质,AT96总线设备分为主设备和目标设备,因此,AT96控制器也就有主设备控制器和目标设备控制器之分。AT96总线主设备可以主动发起总线上的数据传输,而目标设备不具有这种能力,它只能被动配合主设备完成主设备要求的数据传输。

为了使AT96总线上的其它总线控制器也能对AT96总线进行主控,本发明中的AT96总线控制器IP核设计为可配置的,即AT96总线控制器IP核可配置为两种模式,一种是AT96总线主设备控制器,其可以发起对AT96总线的控制;另一种是AT96总线目标设备控制器,其不能直接控制AT96总线,但可以作为目标设备,使其它AT96总线控制器也可以访问此节点。通过上位机下发指令,由本板上的CPU控制在两种工作模式下的切换或由其它带有总线仲裁机制的主控设备负责两种模式下的切换。

实施例:

图2所示为基于FPGA实现AT96总线控制器IP核的功能模块结构框图。以通过AT96总线控制器进行一次总线读写访问为例,描述本发明的一个实施例。

1、本发明一种基于FPGA的AT96总线控制器IP核,如图2所示,它是由AT96总线接口模块(001)、AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)、局部总线接口模块(005)和功能配置模块(006)组成,如图2所示,它们之间的位置连接关系和信号流向如下所述。a)AT96总线接口模块(001)一端连接到AT96总线接口卡上,另一端连接到AT96总线控制器状态机模块(002),其接收来自AT96总线上的数据及控制信号或发送数据及控制信号到AT96总线上;b)AT96总线控制器状态机模块(002)是整个IP核的控制核心,其采用有限状态机FSM实现AT96总线协议规定的AT96总线时序以及数据的接收或发送缓存控制。AT96总线控制器状态机模块(002)连接到FIFO缓存模块(003)上,由AT96总线控制器状态机模块(002)控制向FIFO缓存模块(003)中缓存接收到的数据和控制信号数据或从FIFO缓存模块(003)中读取要发送的数据和控制信号数据;c)FIFO缓存模块(003)用于AT96总线时钟域和局部总线时钟域的切换功能,它直接连接到局部总线控制模块(004),由局部总线控制模块(004)控制从FIFO缓存模块(003)读出接收的数据和控制信号或存入要发送到AT96总线上的数据和控制信号;d)局部总线控制模块(004)连接到局部总线接口模块(005),局部总线接口模块(005)是实现FPGA内部总线接口与CPU接口的转换功能;e)功能配置模块(006)与AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)及局部总线接口模块(005)都有连接,主要功能是配置AT96总线控制器IP核的参数,设置AT96总线控制器IP核的工作模式、中断检测方式、主从切换及指示运行状态信息。

所述的AT96总线控制器状态机模块(002)是AT96总线控制器的核心,完成AT96总线协议内部控制信号的具体实现,包括两个子模块:一个是通过AT96总线控制器状态机来实现AT96总线协议的各种控制信号;另一个是实现总线控制器状态机与FIFO缓存器单元的接口,用于实现接收或发送数据的缓存。AT96总线控制器状态机在时钟的节拍下,根据输入到状态机的控制信号及外部的状态信号,实现各状态功能之间的跳转,在不同状态下,状态机输出相应功能的控制信号和指示信号。其他功能模块根据状态机输出的控制信号和指示信号,完成数据接收、发送及缓存功能。

所述的AT96总线控制器IP核的配置过程如下所述:终端设备通过局部总线接口模块(005)或本节点局部总线(如CPU)通过读写功能配置模块(006)中的寄存器来配置IP核的参数,用于决定AT96总线控制器工作于主设备控制器模块还是从设备控制器模块、FIFO缓存的存储模式以及局部总线的工作模式等。

所述的通过AT96总线控制器进行总线读写访问可按数据流方向分别描述如下:

a)从AT96总线上获取数据的过程:此时其他AT96总线控制器控制AT96总线的操作,将数据、状态及控制信息发送到AT96总线上,AT96总线接口模块(001)采样AT96总线上的数据、状态及控制信息,转换为FPGA内部的信息格式后送给AT96总线控制器状态机模块(002),AT96总线控制器状态机模块(002)根据AT96总线接口模块(001)送来的状态及控制信息来决定总线状态机的运行状态及总线控制信息的输出,从而决定是否接收来自AT96总线接口模块(001)的数据及数据如何处理。AT96总线控制器状态机模块(002)按照AT96总线的数据速率将数据存入FIFO缓存模块(003)中,局部总线控制器模块(004)以局部总线数据速率读取FIFO缓存模块(003)中的数据,这样就实现了不同时钟域的切换,即数据速率的转换。然后局部总线接口模块(005)按照局部总线时序格式将数据送往终端设备,完成从AT96总线到终端设备的数据传输过程。

b)往AT96总线上发送数据的过程:此时与终端设备交互的AT96总线控制器为主控制设备,终端设备将要发送的数据按照局部总线格式发送给局部总线接口模块(005),局部总线接口模块(005)完成局部总线数据格式的转换,并将数据、状态及控制信息发送给局部总线控制模块(004),局部总线控制模块(004)将局部总线数据转换为内部存贮格式后,存入FIFO缓存模块(003),同时FIFO缓存模块(003)的状态信息提供给AT96总线控制器状态机模块(002),以指示FIFO缓存模块(003)目前的存储状态,AT96总线控制器状态机模块(002)根据FIFO缓存模块(003)提供的状态信息,及时从FIFO缓存模块(003)中读取要发送的数据信息,并根据控制及状态信息来决定AT96总线控制器状态机的运行,AT96总线接口模块(001)按照AT96总线控制器状态机的运行状态正确读取要发送的数据给AT96总线接口模块(001),AT96总线接口模块(001)按照AT96总线协议的格式将数据、状态及控制信息发送到AT96总线上去,完成向AT96总线上发送数据的过程。

2、本发明一种基于FPGA的AT96总线控制器IP核的构建方法,该方法具体步骤如下,其流程图如图3所示。

步骤一:设计输入。根据AT96总线协议需求,将设计目标划分为各个功能模块。功能模块包括AT96总线接口模块(001)、AT96总线控制器状态机模块(002)、FIFO缓存模块(003)、局部总线控制模块(004)、局部总线接口模块(005)和功能配置模块(006)。再采用硬件描述语言Verilog HDL编写代码实现各个功能。为保证时序满足要求,同时编写逻辑时序约束文件。

步骤二:功能仿真。利用ModelSim仿真工具对各个功能模块及顶层模块进行功能仿真,根据功能仿真的波形图中分析各功能模块及顶层模块的功能是否满足设计要求。如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码。直到满足要求为止。

步骤三:逻辑综合。利用Xilinx ISE编译环境或Synplify编译环境创建工程文件,将通过功能仿真的各个功能模块及时序约束文件作为输入文件,设置编译环境参数使编译输出包括逻辑网表EDIF文件和输入输出端口说明文件。

步骤四:前仿真。即布线布局之前的功能仿真。在ModSim仿真工具中,将步骤三的输出网表文件EDIF文件作为输入文件建立仿真工程,进行布线布局前的功能仿真。根据仿真结果判断整体功能是否满足设计要求。如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码。直到满足要求为止。

步骤五:输出网表文件。因为生成的IP核调用模块要被其他顶层逻辑模块调用使用,所以IP核中不能插入IOBUF。因此在综合工具属性中去除Insert IO Buffer的选项。重新编译综合,输出无IOBUF的网表文件。

步骤六:输出IP核调用模块。逻辑综合后,会输出一个EDIF格式的网表文件和一个对应的输入输出端口声明文件。在调用该IP核时,在逻辑顶层中直接像调用一般的输入文件一样,例化该输入输出端口文件,同时将EDIF文件加入到逻辑工程文件中即可。

其中,在步骤一中所述的Verilog HDL语言是一种硬件描述语言(Hardware DescriptionLanguage),用于制作数字电路而用来描述ASICs和FPGA的设计功能的。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。

其中,在步骤二中所述的ModelSim仿真工具是Mentor公司推出的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

其中,在步骤三中所述的Xilinx同E编译环境是Xilinx公司推出的完整的FPGA集成开发环境,功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。Synplify编译环境是Synopsys公司提供的专门针对FPGA和CPLD实现的逻辑综合工具,该工具涵盖了可编程逻辑器件(FPGAs、PLDs和CPLDs)的综合,验证,调试,物理综合及原型验证等领域。EDIF是电子设计交换格式(Flectronic Design Interchange Format)的英文字头缩写。EDIF文件是不同EDA厂家之间交换设计数据的标准格式,解决了用不同EDA厂家工具完成设计的数据交流问题。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号