日期:2023-01-24 阅读量:0次 所属栏目:计算机网络
摘 要:本文通过举例简单介绍了一种兼容ADSP_218x系列串行通信口在各种模式下的软件测试方法。通过Visual DSP++对串口一系列寄存器的配置,用Modelsim对收发数据进行仿真、查看波形以及读取仿真后的Memory List中的数据并与所发送的数据进行比较以验证整个串口的正常工作。本测试中采用了数据自发自收的方法,测试过程中每次只需对配置地址进行改变,并在仿真中施以不同激励,无需硬件改动、采取灵活的配置方式,比以往很大程度上降低了系统测试的难度。
关键词:串行通信口;ADSP_218x;寄存器;串行数据接收/发送(DR/DT);接收/发送数据帧同步(RFS/TFS);串行时钟(SCLK)
1. 序言
为了确保ADSP_218x系列处理器间的通信正常,除了DSP芯片本身正常工作外下的项目文件夹AR9001中的idm文件夹中,执行下述命令脚本文件打开Modelsim进行仿真,仿真时长0.5ms。因为需要对串口控制寄存器不同模式下各种字长的寄存器进行配置,在linux下用此脚本命令文件执行仿真,可以省去每次配置后的Modelsim仿真操作,并且可同时进行任意组寄存器的配置,大大提高了仿真的效率。其中下述脚本命令中,verilog_src表示需要执行的".v"配置代码文件,ar9001中包含了所有要仿真的串口测试的仿真代码。
cd ./verilog_src //打开执行代码文件
sed -i s#SPORT1_IN_CLK#SPORT0_IN_CLK# MYDEF.v //将要进行仿真的激励文件 sed -i s#SPORT1_IN_SYNC#SPORT0_EX_SYNC# MYDEF.v 中的默认配置和结果保存路
sed -i s### STI.v
径设置为此次配置、仿真的相sed -i s##fsdb1;# SYSTEM.v 关的值和路径
cd .. //退出设置
vlog -f ar9001.f //对ar9001下所有仿真代码进行编译
vsim SYSTEM //启动Modelsim进行仿真
run 0.5ms //仿真时长为0.5ms
quit -sim //停止仿真
cd ./verilog_src //打开执行代码文件,恢复原执行
sed -i s#SPORT0_IN_CLK#SPORT1_IN_CLK# MYDEF.v 代码中的默认值,以便对其它已
sed -i s#SPORT0_EX_SYNC#SPORT1_IN_SYNC# MYDEF.v 配置的寄存器进行下次的仿真
sed -i s### STI.v
sed -i s### SYSTEM.v
Cd.. //退出代码设置
echo "420f done" //结束一次配置过寄存器的串口的仿真
仿真结束后,在Modelsim视窗下通过"View"下拉链中的"Memory List"即可查询到寄存器接收到的数据,选中数据右击"Export Data Patterns..."将数据保存到AR9001下的mem文件夹中以便分析对比,同时可观察到仿真波形。
3. 结束语
如图4,显示的是最终仿真后通过Modelsim中Memory List导出的*.mem文件,也即串
图4 寄存器收发数据结果对比 图5 Modelsim仿真波形图
口DR端寄存器收到的数据,和此前进行寄存器配置时的发送数据每一行都是一致的,表示串口通信正常。图5则是仿真后的波形图,也直观地显示了信号DT0与DR0的一致,图中信号TFS0和RFS0同步于时钟SCLK0,并且图中可以观察到一个周期帧中,刚好16个时钟周期,一个数据周期中信号DT0与DR0也可以观察到严格保持一致。此次只对串行通信口的控制寄存器进行了举例示范性的验证,用此方法对串口其他寄存器共约200多种模式代码级的验证测试结果都显示正确. IEEE, 11, 2011.