CN102184148B - 一种基于fpga的at96总线控制器ip核及其构建方法 - Google Patents
一种基于fpga的at96总线控制器ip核及其构建方法 Download PDFInfo
- Publication number
- CN102184148B CN102184148B CN201110096176.8A CN201110096176A CN102184148B CN 102184148 B CN102184148 B CN 102184148B CN 201110096176 A CN201110096176 A CN 201110096176A CN 102184148 B CN102184148 B CN 102184148B
- Authority
- CN
- China
- Prior art keywords
- module
- bus
- fpga
- output
- input
- 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.)
- Expired - Fee Related
Links
Landscapes
- Bus Control (AREA)
- Logic Circuits (AREA)
Abstract
一种基于FPGA的AT96总线控制器IP核,它是由AT96总线接口模块、AT96总线控制器状态机模块、FIFO缓存模块、局部总线控制模块、局部总线接口模块和功能配置模块组成,AT96总线接口模块一端连接到AT96总线接口卡上,另一端与AT96总线控制器状态机模块连接;AT96总线控制器状态机模块连接到FIFO缓存模块上,FIFO缓存模块又与局部总线控制模块连接,而局部总线控制模块连接到局部总线接口模块,功能配置模块与后四个模块都有连接。一种基于FPGA的AT96总线控制器IP核的构建方法有六大步骤:一、设计输入;二、功能仿真;三、逻辑综合;四、前仿真;五、输出网表文件;六、输出IP核调用模块。
Description
一、技术领域
本发明涉及通信类单板通过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厂家工具完成设计的数据交流问题。
Claims (5)
1.一种基于FPGA的AT96总线控制器IP核,其特征在于:它是由AT96总线接口模块、AT96总线控制器状态机模块、FIFO缓存模块、局部总线控制模块、局部总线接口模块和功能配置模块组成,AT96总线接口模块一端连接到AT96总线接口卡上,另一端与AT96总线控制器状态机模块连接;AT96总线控制器状态机模块与FIFO缓存模块连接,而FIFO缓存模块又与局部总线控制模块连接;而局部总线控制模块连接到局部总线接口模块,功能配置模块与AT96总线控制器状态机模块、FIFO缓存模块、局部总线控制模块及局部总线接口模块都有连接;
所述AT96总线接口模块是由FPGA内部的输入输出缓冲器IOB组成,包括输入缓冲器即Input Buffer,输出缓冲器即Output Buffer、输入输出双向缓冲器即InOut Buffer及3态缓冲器即Tri-State Buffer,它们彼此之间相互连接;AT96总线接口模块完成FPGA内部的信号电平与AT96总线协议规定的信号电平的相互转换功能以及实现AT96总线信号中的双向传输端口的功能;
所述AT96总线控制器状态机模块是由FPGA内部逻辑实现的一个有限状态机即FSM组成的,该有限状态机在时钟的节拍下,根据输入到状态机的控制信号及外部的状态信号,实现各状态功能之间的跳转,在不同状态下,状态机输出相应功能的控制信号和指示信号;FIFO缓冲模块根据状态机输出的控制信号和指示信号,完成数据接收、发送及缓存功能;
所述FIFO缓存模块是由FPGA内部的查找表即Look Up 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.根据权利要求1所述的一种基于FPGA的AT96总线控制器IP核的构建方法,其特征在于:该方法具体步骤如下:
步骤一:设计输入;根据AT96总线协议需求,将设计目标划分为各个功能模块;功能模块包括AT96总线接口模块、AT96总线控制器状态机模块、FIFO缓存模块、局部总线控制模块、局部总线接口模块和功能配置模块;再采用硬件描述语言Verilog HDL编写代码实现各个功能;为保证时序满足要求,同时编写逻辑时序约束文件;
步骤二:功能仿真;利用ModelSim仿真工具对各个功能模块及顶层模块进行功能仿真,根据功能仿真的波形图中分析各功能模块及顶层模块的功能是否满足设计要求;如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码,直到满足要求为止;
步骤三:逻辑综合;利用Xilinx ISE编译环境或Synplify编译环境创建工程文件,将通过功能仿真的各个功能模块及时序约束文件作为输入文件,设置编译环境参数使编译输出包括逻辑网表EDIF文件和输入输出端口说明文件;
步骤四:前仿真;即布线布局之前的功能仿真,在ModSim仿真工具中,将步骤三的输出逻辑网表EDIF文件作为输入文件建立仿真工程,进行布线布局前的功能仿真;根据仿真结果判断整体功能是否满足设计要求;如果不满足要求,返回步骤一,修改不满足要求的功能模块设计代码,直到满足要求为止;
步骤五:输出网表文件;因为生成的IP核调用模块要被其他顶层逻辑模块调用使用,所以IP核中不能插入IOBUF;因此在综合工具属性中去除Insert IO Buffer的选项,重新编译综合,输出无IOBUF的网表文件;
步骤六:输出IP核调用模块;逻辑综合后,会输出一个EDIF格式的网表文件和一个对应的输入输出端口声明文件;在调用该IP核时,在逻辑顶层中直接像调用一般的输入文件一样,例化该输入输出端口文件,同时将EDIF文件加入到逻辑工程文件中即可。
3.根据权利要求2所述的一种基于FPGA的AT96总线控制器IP核的构建方法,其特征在于:在步骤一中所述的Verilog HDL语言是一种硬件描述语言即Hardware DescriptionLanguage,用于制作数字电路而用来描述ASICs和FPGA的设计功能的,该Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级各个层次的设计和描述。
4.根据权利要求2所述的一种基于FPGA的AT96总线控制器IP核的构建方法,其特征在于:在步骤二中所述的ModelSim仿真工具是HDL语言仿真软件,它能提供友好的仿真环境,是单内核支持VHDL和Verilog混合仿真的唯一仿真器。
5.根据权利要求2所述的一种基于FPGA的AT96总线控制器IP核的构建方法,其特征在于:在步骤三中所述的Xilinx ISE编译环境是完整的FPGA集成开发环境,功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,其工作流程无需借助任何第三方EDA软件;Synplify编译环境是专门针对FPGA和CPLD实现的逻辑综合工具,该工具涵盖了可编程逻辑器件的综合,验证,调试,物理综合及原型验证领域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110096176.8A CN102184148B (zh) | 2011-04-18 | 2011-04-18 | 一种基于fpga的at96总线控制器ip核及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110096176.8A CN102184148B (zh) | 2011-04-18 | 2011-04-18 | 一种基于fpga的at96总线控制器ip核及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184148A CN102184148A (zh) | 2011-09-14 |
CN102184148B true CN102184148B (zh) | 2014-10-29 |
Family
ID=44570327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110096176.8A Expired - Fee Related CN102184148B (zh) | 2011-04-18 | 2011-04-18 | 一种基于fpga的at96总线控制器ip核及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184148B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218325B (zh) * | 2013-01-14 | 2016-03-16 | 无锡普智联科高新技术有限公司 | 基于plb总线的sja1000接口ip核及其控制方法 |
CN106802967A (zh) * | 2015-11-26 | 2017-06-06 | 北京华大九天软件有限公司 | 一种滤除指定单元网表输出的方法 |
CN105843993B (zh) * | 2016-03-17 | 2020-10-20 | 中科芯时代科技有限公司 | 一种ip生成方法及工具 |
CN106529043A (zh) * | 2016-11-14 | 2017-03-22 | 无锡华润矽科微电子有限公司 | 基于计算机软件系统对电路进行分模块综合设计的方法 |
CN106781867B (zh) * | 2016-12-30 | 2020-05-12 | 福建师范大学 | 基于ip核和eda软件的实验平台 |
CN108268801A (zh) * | 2018-01-19 | 2018-07-10 | 电子科技大学 | 基于逆向工程的Xilinx FPGA固核IP破解方法 |
CN108490820A (zh) * | 2018-02-06 | 2018-09-04 | 中国科学院合肥物质科学研究院 | 一种可编程电源控制器 |
CN109740247B (zh) * | 2018-12-29 | 2023-04-18 | 京微齐力(北京)科技有限公司 | 一种ip与efpga端口连接方法及其优选方法 |
CN110098763A (zh) * | 2019-05-10 | 2019-08-06 | 天津科技大学 | 一种基于fpga的超声导波压电陶瓷驱动电源 |
CN110210133B (zh) * | 2019-06-03 | 2022-07-08 | 哈尔滨工程大学 | 一种edif网表级组合逻辑电路的自动故障注入方法 |
CN111475437A (zh) * | 2020-04-14 | 2020-07-31 | 深圳忆联信息系统有限公司 | 固态硬盘soc芯片fpga原型验证ddr的装置、方法、计算机设备及存储介质 |
CN113009820A (zh) * | 2021-02-22 | 2021-06-22 | 中国科学院光电技术研究所 | 一种基于fpga的高速控制算法的系统架构设计方法 |
CN113961500B (zh) * | 2021-09-01 | 2024-04-09 | 中国航空工业集团公司西安航空计算技术研究所 | 一种iic总线从控制器及其工作方法 |
CN116521468B (zh) * | 2023-07-05 | 2023-09-15 | 西安智多晶微电子有限公司 | 一种fpga在线调试方法及支持在线调试的fpga |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2739704Y (zh) * | 2004-11-19 | 2005-11-09 | 华南理工大学 | 基于pci总线的ip核仿真验证平台 |
US7165229B1 (en) * | 2004-05-24 | 2007-01-16 | Altera Corporation | Generating optimized and secure IP cores |
-
2011
- 2011-04-18 CN CN201110096176.8A patent/CN102184148B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7165229B1 (en) * | 2004-05-24 | 2007-01-16 | Altera Corporation | Generating optimized and secure IP cores |
CN2739704Y (zh) * | 2004-11-19 | 2005-11-09 | 华南理工大学 | 基于pci总线的ip核仿真验证平台 |
Non-Patent Citations (8)
Title |
---|
1553B总线协议IP核设计与实现;周密等;《电子器件》;20070131;第30卷(第1期);第334页-338页 * |
SoC及其IP核的设计与其在通信中的应用研究;苗长云等;《天津工业大学学报》;20050228;第24卷(第1期);第59-63页 * |
刘红等.基于IP核的PCI总线接口设计与实现.《电子技术应用》.2006,(第6期),第6-8页. |
周密等.1553B总线协议IP核设计与实现.《电子器件》.2007,第30卷(第1期),第334页-338页. |
基于FPGA的PCI总线从接口IP核的设计与实现;蒋豪;《中国优秀硕士论文全文数据库》;20080930;第1-69页 * |
基于IP核的PCI总线接口设计与实现;刘红等;《电子技术应用》;20060630(第6期);第6-8页 * |
苗长云等.SoC及其IP核的设计与其在通信中的应用研究.《天津工业大学学报》.2005,第24卷(第1期),第59-63页. |
蒋豪.基于FPGA的PCI总线从接口IP核的设计与实现.《中国优秀硕士论文全文数据库》.2008,第1-69页. |
Also Published As
Publication number | Publication date |
---|---|
CN102184148A (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184148B (zh) | 一种基于fpga的at96总线控制器ip核及其构建方法 | |
CN102279830B (zh) | 基于cpci总线的多功能数据采集模块 | |
US8286025B1 (en) | Selection of port adapters for clock crossing boundaries | |
WO2002005144A1 (en) | Circuit component interface | |
US6292764B1 (en) | Tunable architecture for device adapter | |
Ahmed et al. | Design and implementation of a direct memory access controller for embedded applications | |
Ma et al. | Design and implementation of APB bridge based on AMBA 4.0 | |
CN201993640U (zh) | 一种基于fpga的at96总线控制器ip核 | |
Niharika et al. | The Configuration and Verification Analysis of AMBA-Based AHB2APB Bridge | |
US20090132747A1 (en) | Structure for universal peripheral processor system for soc environments on an integrated circuit | |
Sarekokku et al. | Design and Implementation of APB Bridge based on AMBA AXI 4.0 | |
JP2006236395A (ja) | コンピュータ用バスインタフェース | |
Kurmi et al. | Design of AHB protocol block for advanced microcontrollers | |
CN103226537B (zh) | 一种实现手机硬件接口的可编程逻辑器件 | |
CN107562673B (zh) | 一种应用于嵌入处理器总线协议转换桥接装置 | |
Mroczek | SoPC-based DMA for PCI Express DAQ cards | |
Roy et al. | On efficient minimization techniques of logical constituents and sequential data transmission for digital IC | |
CN102402492B (zh) | 一种服务器管理模块和时序控制模块的通信方法 | |
Velagaleti | A Low Power APB with an Area Efficient Structure | |
Purohit et al. | Area Optimization using Structural Modeling for Gate Level Implementation of SPI for Microcontroller | |
Nagarajan | The Design and Verification of a Synchronous First-In First-Out (FIFO) Module Using System Verilog Based Universal Verification Methodology (UVM) | |
CN101290582A (zh) | 组件化时钟精确的多核体系模拟器的实现方法 | |
CN107562674B (zh) | 一种嵌入处理器的总线协议异步逻辑电路实现装置 | |
Roopa et al. | UART controller as AMBA APB slave | |
Xing et al. | Porting from Wishbone bus to Avalon bus in SoC design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141029 Termination date: 20170418 |