一种改进型的时分多址的实现方法
间周期内把读出的64个4位数据的第一位送给时分多址的输出,然后回到起始地址,在划分的第二个时间周期内再重新读出一次64个4位数据,把数据的第二位送给时分多址的输出,以此类推,直到4路数据全部输出。由于在一个48 kHz周期内要重复读取双口RAM中的数据4次,所以此时位时钟的频率要提高到原来的4倍,因此,读取数据的位时钟频率应该为12.288 MHz。
在接下来的一个48 kHz周期内,将双口RAM中后64个4位存储空间内的数据以与上面相同的方式发送出去,同时,由于前64个4位的存储空间的数据已经发送完成,不再需要保存,则新输入的数据可被存储到前64个4位的存储空间,以此类推,前64个4位存储空间与后64个存储空间交替存储输入数据,并交替将存储的数据发送出去。
由此可以看到,所需要双口RAM的大小应为2x64×4bit,在A端口对数据写入,在B端口对数据进行读出。
2 FPGA的实现
实验所采用的FPGA是XILINX公司的SPARTAN 3E系列中的XC3SS00E芯片,该芯片的封装是PQ208,芯片速度为-5,采用的程序开发语言是VHDL,综合工具为Xilinx公司的ISE 10.1,仿真工具采用的是ModelSim se 6.2。
与理论算法对应,硬件实现的VHDL程序包括了以下几个模块。
使用芯片内部的双口RAM的IP核,通过例化IP核,利用一个双口RAM有两套读写地址,将程序的输入输出与双口RAM的输入输出进行映射,则内部电路将程序的输入输出连接到了双口RAM的输入输出上。对程序的输入输出脚的操作相当于对双口RAM进行操作。图1是双口RAM的VHDL代码在Xilinx ISE中综合后的寄存器传输级电路图。
图1 双口RAM的寄存器传输级电路
在端口A输入时钟clk3072的每个下降沿,端口A输入地址AddrIn都递增1,则在elk3072的上升沿,根据例化的双口RAM的IP核,端口A的四路输入数据将存储进相应的地址空间中。
在端口B输入时钟elk12288的每个下降沿,端口B输入地址AddrOut都递增1,则在elk12288的上升沿,根据例化的双口RAM的IP核,相应的地址空间中的数据将通过Dout被读出来。
依次将输出数据以时分多址的帧格式传输出去。
3 仿真结果
用ModelSim se 6.2b对程序进行仿真,在48 kHz的时钟周期内,给第1路输入源的64位输入信号为0x1111111111111111,第2路输入源的64位输入信号为0x2222222222222222,第3路输入源的64位输入信号为0x3333333333333333,第4路输入源的64位输入信号为0x4444444444 444444。仿真结果如图2所示。
图2 仿真结果
由仿真图可以看出,在一个48 kHz的时钟周期内,TDMA_OUT,即时分多址帧格式的输出为0x11111111111111112222222222222222333333 33333333334444444444444444,即每一帧被分成了4个时隙,4路输入信号在每一帧中占用各自的时隙进行传输,通过该仿真结果,可以验证该方法的可用性。
将VHDL语言程序通过ISE10.1综合,布局布线后,通过JTAG线缆下载到XC3S500E中进行电路板上的测试,再次验证了该方法的正确。
通过ISE综合后,可以看到程序所占用的芯片资源如下表所示。
表1 芯片资源情况
从表中的数据可以看出,通过使用一个BRAM从而节约了大量的资源,FPGA芯片资源的重要指标Slices仅仅占用了15个,LUTs仅仅用了29个,可见,该方法所占用的FPGA资源极少,达到了设计目标。
4 结论
本文研究了FPGA实现时分多址的一种改进型的方法,通过使用FPGA芯片内部的双口RAM,利用IP核,实现了多路信号转换成时分多址帧格式信号进行传输,根据所占资源的统计数据,可以看到在完成相同功能的前提下,该方法相比于已有的方法,确实能大量节省FPGA芯片的逻辑资源,从而使单片FPGA能完成更多的逻辑功能。但是,此方法会占用一部分双口RAM,在双口RAM资源紧张的时候不是太适用。
用ModelSim SE 6.2b对FPGA程序进行了仿真,并且将程序下载到电路板上进行了验证,证实了该方法的可用性。
- GSM/UMTS手机的检验和最终测试方法(09-07)
- 多种Wi-Fi定位方法对比 移动领域选谁(09-17)
- 轻轻松松让你学会阻抗匹配原理和方法(06-28)
- 频谱仪的结构,检定项目和方法(07-04)
- 一种解决FMCW雷达发射机功率泄漏的方法(04-22)
- 基于有限元的螺旋天线设计方法(11-04)