近年来,随着数百万门级的现场可编程门阵列FPGA( Field Programmable Gate Array )芯片、功能复杂的IP核和可重构的嵌入式处理器软核的出现,SOPC( system on a programmable chip )设计已成为一种切实可行的、重要的设计方法。
可复用的IP( intellectual property )核是SOPC设计的基础,可以由EDA厂商提供、用户自己定义、第三方提供。一般而言,EDA厂商及第三方提供的IP核都是功能上比较通用的,但在进行SOPC设计时,用户经常有特殊需求,这时必须自己定义IP核来实现所需要的功能。用户自定义IP核具有灵活性、紧藕合性、高效率、低功耗等特性,使SOPC设计的优越性得以充分体现。面向SOPC Builder的用户自定义IP核可以方便、灵活地实现用户自定义逻辑。
用户自定义IP核开发流程
用户自定义IP核按照对Avalon总线操作的不同可分为Avalon Master外设、Avalon Slaver外设及Avalon Streaming外设。用户开发的外设大多为Avalon Slaver设,Avalon Master和Avalon Streaming外设的开发比Avalon Slaver外设要复杂,但开发流程相同。一个典型的Avalon外设的开发步骤如下:
( 1 )规划元件的硬件功能。如果采用微控制器来控制该元件,则规划访问该硬件的应用程序接口( API );
( 2 )在硬件和软件要求的基础上,定义一个恰当的Avalon接口(一般为Avalon从端口);
( 3 )使用硬件描述语言描述硬件逻辑。片上总线Ava1on从端口的信号都不是必须的,一个典型的Avalon从端口所包含的信号如表1所示;
( 4 )单独验证元件的硬件功能;
( 5 )写用于描述寄存器的C头文件来为软件定义硬件寄存器映像;
( 6 )写元件的驱动软件;
( 7 )把通过测试的源代码使用元件编辑器封装硬件HDL和软件文件,完成元件定制。