1 SOPC和Nios II概述
SOPC(System On Programmable Chip,可编程片上系统)是基于大规模FPGA的单片系统,是美国Altera公司于2000年提出的(同时推出了相应的开发软件QuartusII)。SOPC的设计技术是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物。SOPCBuilder是Altera公司为硬件设计人员开发的一套系统级硬件设计工具,通过它可以方便地创建Nios II CPU系统级设计项目,从而为设计人员提供SOPC设计必需的软硬件设计平台。
Nios II嵌入式处理器是FPGA生产厂商Altera公司推出的软核CPU,是一种面向用户的、可以灵活定制的通用精简指令集架构(RISC)32位高性能嵌入式CPU。NiosII以软核的方式提供给用户,并专门为在Altera的FPGA上实现做了优化,用于SOPC集成,最后在FPGA上实现。Nios II IDE是SOPC系统的软件开发环境,在Nios II IDE中可以进行软件的编写、下载和调试等工作。
2 误码率测试仪功能概述
误码率测试仪分别设有2个通信测试端口——输出端口和输入端口,分别连接到待测试电缆的两端,构成数据传输回路。FPGA内部有一个Nios II软核CPU,负责初始化和管理该系统;用VHDL语言编写了收发芯片AM7968和AM7969的控制器接口模块,完成测试码发送、接收、误码率统计的任务;系统还设有4×4的矩阵扫描键盘和128×64分辨率的0LED图像点阵显示屏作为人机接口,如图1所示。
用户通过矩阵键盘输入并设置测试代码、通信速率以及测量模式(定时测量、定量测量)。确认开始测量后,Nios配置AM7968和AM7969,并通过AM7968发送测试代码,经待测试电缆及AM7969接收到数据后,将接收的代码与原始数据比较。如果发现不等,即认为是误码,统计误码个数的计数器加1。当测量停止时,0LED显示屏输出误码率数值及其他测量信息。
3 硬件设计
3. 1 收发模块设计
误码率测试仪的收发芯片采用的是美国AMD公司的AM7968和AM7969。
AM7968发送端芯片和AM7969接收端芯片提供通过同轴电缆或者光线传输的一般通用接口,通信速率在40~175 Mbps的范围内可以调节。AM7968/AM7969为并行TTL总线接口,一共有12位的数据和控制总线,可以灵活配置成8~10位数据总线,对应4~2位控制总线的接口形式。
(1)发送端设计
如图2所示,芯片AM7968是信号的发送端。根据功能设置,测试代码的发送模式有固定代码模式、循环码模式和自定义代码模式3种。故设置控制寄存器(mode_reg)位宽为2:OO为初始状态,系统位于初始化状态;01为固定代码模式,发送系统预设的代码;lO为循环代码模式,测试代码从00h~FFh连续循环发送;11为自定义代码模式,发送用户自定义的代码。
发送频率的设置,是通过AM7968的输入时钟(50MHz)直接分频实现的。在AM7968的控制器中,设有时钟分频寄存器(clk_div_reg)。该寄存器位宽为8。也就是说,用户可以在40~175 Mbps范围之内,设定256种不同频率,进行误码率的测试工作,尽可能地满足用户的测试频率要求。