微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Microblaze软核FSL总线的门光子计数器设计与实现

基于Microblaze软核FSL总线的门光子计数器设计与实现

时间:06-05 来源:互联网 点击:

3 功能设计实现

3.1 基于EDK的FPGA软核Microblaze的应用设计实现

系统设计工具主要采用Xilinx公司的嵌入式开发套件EDK,它是用于设计嵌入式处理系统的集成解决方案。它包括搭建硬件平台的XPS和进行软件配置的SDK。

Microblaze是Xilinx公司推出的32位软处理器核,支持CoreConnect总线的标准外设集合。MicroBlaze处理器运行在150MHz时钟下,可提供125 D-MIPS的性能,这种高效的软核在本系统中可用于实现处理器功能,实现对计数IP核的配置,以及支撑Xilinx的clockgenerator、Et-hernet等IP核。系统对计数器的实现采用Verilog语言将计数功能编写为IP核,将其通过FSL总线挂在Microblaze软核上,以实现计数功能。

3.2 通讯协议

Microblaze到计数IP核之间的通讯数据定义如下:

计数IP核到Microblaze之间的通讯数据定义如下:


3.3 计数IP核的设计实现

3.3.1 计数IP核的结构

计数IP核采用verilog硬件语言编写,其结构如图6所示,顶层文件counterpulse3对接口进行配置,并根据FSL总线上的命令参数选择工作模式,pulsecount1、pulsecount2和pulsecount3分别是3种工作模式的代码实现,fsloprt是与FSL进行接口的代码。


3.3.2 与FSL总线接口

fslopn.v的代码完成与FSL总线接口功能。FSL总线是单向点对点的通道,它用于完成任意FPGA中两个模块的快速通讯。FSL总线是基于FIFO的,基于非共享的无仲裁通信机制,它的深度是可以设置的,最大可以到8k,具备高速的通信性能,其结构如图7所示。

由于FSL总线是单向的,所以系统中采用了两条FSL总线,实现Mieroblaze到计数IP核之间的双向通讯,计数IP核在面对两条FSL总线时,担当的分别是MASTER(主)和SLAVE(从)两种角色。因此,fsloprt.v的代码应该同时满足与FSL总线接口的读和写时序。读写时序如图8和图9所示。


3.4 计数IP核和FSL总线的在EDK中的连接实现

为了能使用FSL总线,首先应该在XPS图形界面中对Microblaze进行配置,在Buses中将Number of FSL Links设置为1。再在IP Catalog中将FSL总线加入到工程中两次。

在计数IP核编写后并综合通过后,将该IP核导入到XPS工程中。

在XPS中,分别对Microblaze和计数IP核的MFSL和SFSL进行连接,将Microblaze的MFSL端连接到计数IP核的SFSL端,反之将计数IP核的MFSL端连接到Microblaze的SFSL端。并在system.mhs中进行如下配置:

由于从计数IP到Microblaze方向数据量较大,所以对FSL总线的深度进行了配置,如上述代码中,PARAMETERC_FSL_DEPTH=128,被配置为128级深度。

4 结论

在系统的设计中,光子计数IP核与Mieroblaze软核之间通过FSL总线进行通讯,并且对FSL总线上的FIFO缓冲进行了深度扩充,大大增强了光计数数据的传输可靠性。由于系统将门光子计数的三种模式,以IP核的方式实现,相对于市场上商用的计数器来说,实现方式灵活,易于配置和扩展,这种方式为门光子其他可能潜在的计数需求留下了扩展的基础,并具有较低的设计和生产成本。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top