新闻中心

EEPW首页>嵌入式系统>设计应用> 基于NiosII处理器的通用AD IP核的设计与实现

基于NiosII处理器的通用AD IP核的设计与实现

作者: 时间:2010-04-07 来源:网络 收藏

2.4 带Avalon-MM Slave接口的寄存器文件模块的
 本文的带Avalon-MM Slave接口[4]的寄存器文件模块是具有Avalon-MM Slave 从端口的外设。它内部共有2个8位寄存器,具体结构和功能如表1所示。可以通过Avalon接口采用“基地址+地址偏移量”的方式来访问这2个寄存器,从而核的控制以及采样数据的读取。

本文引用地址://m.amcfsurvey.com/article/151966.htm


对于一些比较复杂的芯片(如AD73360),往往需要对其写控制字、读状态字,这就需要增加寄存器文件模块中的寄存器个数来完成相应的逻辑功能。Avalon接口采用“基地址+地址偏移量”的方式来访问寄存器,这样就可以简单地通过增加地址线的位数并进行译码来,因此对于各种复杂的AD芯片具有很好的可扩展性和适用性。
3 整个核在系统中的硬件测试
采用Verilog HDL语言建立了一个顶层文件tlc549_adc_ip.v,通过对AD控制器模块、FIR滤波器模块、FIFO缓存模块和带Avalon-MM Slave接口的寄存器文件模块进行实例化与互连,最终完成了整个核的设计,它的模块图如图7所示。


本文采用C++语言做了一个的顶层应用测试程序,利用描点法将不断采集到的AD数据绘制成波形显示出来,从而完成对整个IP核的硬件功能测试。测试过程中,在AD芯片的模拟输入端输入一个由1 kHz正弦信号和100 Hz的正弦信号叠加而成的混合信号,整个系统的运行结果显示在NiosII IDE软件的Console控制台中,如图8所示。

通过对图8中的正弦波形以及采样到的数据进行分析与计算可知,采集到的信号频率是100 Hz,信号的幅度与外界的模拟输入信号完全一致,从而验证了整个IP核的功能正确性。整个IP核使用5 275个LE,占总数的15.8%,4 096个存储单元,占总数的0.8%。系统的主频能达到199.64 MHz。
 为了验证AD IP核的性与适用性,本文还针对另外两款AD芯片(AD7476和AD73360)进行了IP核制作与测试,且测试信号与TLC549 IP核的测试信号完全相同。
 AD7476 IP核采用了上述AD IP核的设计方法,它的AD控制器模块是针对AD7476这款 12位串行AD芯片而设计的。FIR滤波器模块的参数与TLC549 IP核中的FIR滤波器参数相同,只是输入数据的位宽设置为12位。由于AD7476芯片的采样速率比较快,所以FIFO 缓存模块的深度设置为1 024,位宽设置为12位,这样可以使NiosII CPU的效率更高。
 AD73360 IP核同样也采用了上述AD IP核的设计方法,它的AD控制器模块是针对6路16位串行AD芯片AD73360设计的。它的FIR 滤波器模块的参数和FIFO 缓存模块的参数与TLC549中的相应参数设置相同,只是把位宽设置为16位。由于控制的过程中需要对AD73360芯片内部的寄存器进行读写,所以在寄存器文件模块中增加了两个寄存器(1个读状态字寄存器,1个写控制字寄存器),从而完成对AD73360芯片内部控制与状态寄存器的读写。
 这两款AD IP核与TLC549 IP核的比较如表2所示。由表2可以看出,本文提出的NiosII的通用AD IP核对于不同精度、不同采样速率、不同时钟速率、不同通道数的AD芯片都适用,并且具有较高的性能和灵活性。在实际应用中,如果对该IP核所占用的资源数有一定的限制,可以自行编写FIR滤波器模块,这样能大大降低IP核所占用的资源数,从而整个IP核的性能与资源之间的平衡。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭