自定义外设

来源:互联网 发布:matlab数据储存在哪里 编辑:程序博客网 时间:2024/05/01 20:44

自定义外设作为NiosII软核处理器超强灵活性的体现,其开发遵循一定的规律。一个用户自定义外设必须进行硬件设计,也就是说,必须用硬件描述语言来描述出硬件的逻辑组成。一般来说,一个自定义外设主要由下列部分组成:

       ①  描述自定义外设逻辑的硬件描述文件部分(主要是HDL程序)。
       ②  软件文件,一个用来定义外设寄存器的C语言头文件,以及让程序员控制这个元件的软件驱动程序。
       ③  元件的描述文件(class.ptf)。该文件定义了元件的架构,提供了SOPC。

       Builder将该元件集成到一个系统的各种信息。该文件由元件编辑器根据用户提供的硬件和软件文件以及在图形用户界面中设置的各个选项和参数自动生成。图1给出了带Avalon从端口的自定义外设组成框图。

       从图中可以看出,一个典型的自定义外设主要由下列功能模块组成:
      
       ①  任务逻辑。任务逻辑实现外设的基本功能,是必不可少的组成部分。
       ②  寄存器文件。寄存器文件部分提供任务逻辑和外界交换信息的桥梁。有了寄存器文件,用户就可以通过Avalon接口采用“基地址+地址偏移量”的方法来访问外设内部的各个寄存器。
       ③  Avalon接口。Avalon接口为寄存器文件提供了一个标准的Avalon前端。该模块使用Avalon规定的信号来访问寄存器文件,并且支持任务逻辑的传输类型。


 

 


 

用户自定义IP核按照对Avalon总线操作的不同可分为Avalon Master外设、Avalon Slaver外设及AvalonStreaming外设。用户开发的外设大多为Avalon Slaver外设,Avalon Master和Avalon Streaming外设的开发比Avalon Slaver外设要复杂,但开发流程相同。一个典型的Avalon外设的开发步骤如下:

(1)规划元件的硬件功能。如果采用微控制器来控制该元件,则规划访问该硬件的应用程序接口(API);

(2)在硬件和软件要求的基础上,定义一个恰当的Avalon接口(一般为Avalon从端口);

(3)使用硬件描述语言描述硬件逻辑。一个典型元件的硬件架构一般3部分组成:接口模块(avalon inteRFace)作为顶层模块,定义总线接口信号;寄存器文件模块(register file)完成该元件与外部信号进行通信,提供访问与控制元件的逻辑界面;行为模块(task logic)实现元件的硬件功能。片上总线AvaIon从端口的信号都不是必须的,一个典型的Avalon从端口所包含的信号如表1所示。

(4)单独验证元件的硬件功能;

(5)写用于描述寄存器的C头文件来为软件定义硬件寄存器映像;

(6)写元件的驱动软件;

(7)把通过测试的源代码使用元件编辑器封装硬件HDL和软件文件,完成元件定制。

原创粉丝点击