电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章EDA/PLD基于FPGA嵌入式的多比特自相关器设计

基于FPGA嵌入式的多比特自相关器设计

11-20 00:28:30 | http://www.5idzw.com | EDA/PLD | 人气:345
标签:eda技术,eda技术实用教程,http://www.5idzw.com 基于FPGA嵌入式的多比特自相关器设计,http://www.5idzw.com


  2.2 累加器及1/N相乘单元实现:

  如果使用2的N阶次幂数据用作自相关计算,在二进制下可以通过向右移位N个bit位实现除法功能。在设计中采用了2×16个采样数据组成的数组完成自相关计算,其算法具体流程图如图7所示。


  3 微处理器的设计实现

  嵌入式微处理器的设计包括3个部分:利用SoPCBuilder定制的软核CPU,在Quartus II环境下设计的电路和Nios II编程。

  Nios II的软件编程主要基于嵌入式操作系统μC/OS-Ⅱ。μC/OS-Ⅱ是一个完整的、可移植、固化和剪裁的占先式实时多任务核(Kernel)。从1992年发布至今,μC/OS-II已经有上百个的商业应用案例,在40多种处理器上成功移植。其中Altera提供对μC/OS-II的完整支持,非常容易使用。

  μC/OS—II提供以下系统服务:任务管理(Task Management);事件标志(Event Flag);消息传递(Mes-sage Passing);内存管理(Memory Management);信号量(Semaphores);时间管理(Time Management)。在应用程序中,用户可以方便地使用这些系统调用实现目标功能。

  在该设计中,建立了一个主任务和两个子任务(任务1,任务2):主任务主要是负责启动子任务;任务1主要负责数据的采集和采集数据的存储,任务2主要负责调用存储器中存储的采集数据控制外围计算模块进行自相关计算。总体软件算法流程图如图8所示。图9为由SoPC实现的Nios II处理器图。





  在Nios II系统中,首先,通过main()主函数调用OSTaskCreateExt()函数创建任务1,即数据采集任务。

  由于AD7822作为AVALON的从外设挂接在了AVALON总线上,通过在任务1中通过调用IORD_16DIRECT()端口查询函数实时发起A从端口传输启动AD7822,获取采集数据,然后使能外围RAM的wren端口存储。当存储到该设计中存储器长度的数据以后,通过“尾触发”方式启动任务2,即自相关计算任务,并且调用延迟函数OSTimeDlyHMSM(),交出CPU的使用权。程序要点如下:




  在任务2中,首先关闭两个存储器的写入使能,使之只能读出数据;然后输出相应的两个地址码:两个地址码之间有相对k的延时,并且同时使能18×18乘法器,累加器及1/N相乘单元,当循环完成后,自动删除任务2,交CPU使用权给数据采集任务。程序要点如下:


  4 结 语

  首先,该设计采用嵌入式操作系统实时控制外围运算逻辑电路的方式。实现了多乘加的DSP运算,由于嵌入式操作系统的灵活性和广泛的可移植性,使得该设计的可读性和移植性增强;其次,本设计采用天生并行结构的FPGA处理器完成多乘加运算,有利于提高运算速度和处理的稳定度;再次,将必要的外设作为AVALON总线器件,采用总线查询传输的方式进行访问,不必在嵌入式操作系统中过多的考虑底层硬件的驱动和时序,这样提高电路的稳定性且也增强了程序的通用性。


上一页  [1] [2] 

,基于FPGA嵌入式的多比特自相关器设计