片上可编程系统

2024-08-12

片上可编程系统(精选四篇)

片上可编程系统 篇1

关键词:串行通信,SMS4,加密通信,片上系统

串行通信是商用、民用及工业控制用电子系统广泛使用的一种通信方式,多种电子系统通过串行通信接口传输敏感数据,如无线电通信设备、IC卡刷卡机等,为保证数据传输安全,对串行通信数据加密是必要的技术手段。SOPC技术是百万门级大规模FPGA出现后新兴的电子系统设计技术,实现的电子系统具备集成度高、功能可配置、性能可伸缩和资源可重构的特点。因此,采用SOPC技术设计加密通信系统具备良好的应用推广价值。

分组密码算法是大量数据加密存储与传输的主要密码算法,SMS4 算法是我国官方公布的第一个商用分组对称密码算法,为发展自主可控的信息安全技术,应该将SMS4 算法作为串行通信核心密码算法的重要选择。由于SMS4 算法提出较晚,目前尚未有采用SMS4 算法进行加密通信SOPC设计的成果出现。为使信息安全技术自主可控,优化加密通信系统设计,提高系统的加密通信功能可定制能力,因此有必要开展基于SMS4 的加密通信SOPC研究与设计。

分组密码算法具有速度快、易于标准化和便于软硬件实现等特点,通常是信息网络安全中实现数据加解密的核心体制,其在计算机通信和信息系统安全领域有着广泛的应用,如国外发布的DES算法、AES[1]算法、NESSIE[2]算法等。2006 年1 月,我国国家商用密码管理办公室公布了SMS4[3]分组密码算法标准,用于保护无线局域网产品的数据安全,并被WAPI标准采纳作为其中的分组密码算法。2007 年12 月,在国家密码管理局公布的《可信计算密码支撑平台功能与接口规范》中,SMS4 算法被规定为可信密码模块( TCM) 中要求实现的对称密码算法。

SMS4 是一个分组对称密码算法,分组长度和密钥长度为128 bit。加密算法与密钥扩展算法均采用32 轮非线性迭代结构。其中非线性变换所使用的S盒是一个具有很好密码学特性的、由8 bit输入产生8 bit输出的置换。但不存在永远安全的密码算法。SMS4 设计灵活,其中所采用的S盒可灵活地被替换,以应对突发性的安全威胁[4]。

1 基于SMS4 的加密通信原理

SMS4 密码算法是一种128 位数据输入输出的加解密算法,输入数据需经过32 轮的函数运算才能得到输出结果,存在较大的首个数据输出潜伏延迟,而一旦进入连续输出,通过硬件流水线设计可达到较高的吞吐率。串行通信控制器是一种典型的中低速通信设备,由于受到串/并转换、波特率除数分频、16 分频收发等设计的影响,串行通信速率不可能有较大提升。 因此,SMS4 算法和串行通信之间存在明显的吞吐量不匹配问题。

通过研究SMS4 密码算法32 轮迭代运算[5]、轮密钥运算的运算特点,并分析全流水、全循环、循环与流水结合、单引擎、多引擎等硬件运算结构,提出合适的运算结构作为算法的基础实现结构,以轮函数内部分级流水、节拍同步作为进一步优化的手段,突破面向串行通信的SMS4 算法硬件实现优化技术,使该算法逻辑占用较少的FPGA内部资源,并使其算法的运算速度能尽量接近串行通信速率,最终达到资源占用与运算性能的平衡。该算法硬件实现的功能组成如图1 所示。

串行通信过程中,最小的数据收发单元为8 位数据,即1 Byte。对128 位SMS4 加密运算而言,输入的明文数据可能不是128 位数据,而是1 ~ 7 Byte,无法直接完成明文的SMS4 加密运算[6]。在128 位密文发送过程中,若对应明文不是128 位的,还需嵌入字节计数值来标识有效数据长度,而字节计数值和有效数据难以区分。在密文接收与SMS4 解密过程中,也存在得到字节计数值与有效明文提取的问题[7]。如图2 所示。数据包具备16 Byte的数据段和1 Byte的有效字节计数值,通过有效字节计数值识别数据段中的有效数据,而其他数据则为填充数据。

通过分析处理器访问8位通信控制器的特点,采取有效硬件逻辑设计延长8位明文连续写入等待时间,尽可能具备128位明文输入。通过字节自动填充将非128位明文输入补满到128位,实现明文的128位SMS4加密运算。将有效数据/字节计数值混合编码,实现非128位明文对应密文的发送、接收、解密与填充字节去除。通过以上技术手段,突破非128位明文的加密传输数据控制技术,使处理器始终按8位明文数据访问SMS4加密通信控制器,屏蔽128位加解密过程,具备非128位明文的加密传输数据控制过程对处理器透明、兼容通用串行传输协议、处理器加密通信负载小等特点。

一般的串行通信控制器以8 位数据进行收发,当进行128 位密文传输时,存在数据发送接口、数据接收接口、接收线状态接口设计的位宽不匹配问题。通过设计128 位宽发送数据FIFO、128 位宽接收数据FIFO、128 位区间接收线状态FIFO,缓冲128 位密文数据和相应的接收线状态; 通过128 位/8 位收发匹配逻辑,实现发送数据的128 位/8 位转换、接收数据的8 位/128 位转换、连续16 Byte的接收线状态组合译码; 通过以上技术手段,突破基于8 位异步模式的128 位数据串行收发技术,使128 位密文串行收发无需软件干预,故进一步降低了处理器的通信接口处理负载。

2 基于SMS4 的加密通信实现

2. 1 SMS4 加密通信控制器IP技术

SMS4 加密通信控制器IP功能组成如图3 所示[8],分为8 位串行收发功能逻辑、128 位收发逻辑、 面向串行通信的SMS4 算法逻辑、非128 位明文的加密传输数据控制逻辑和处理器访问接口逻辑。SMS4 加密通信控制器IP对外提供8 位数据位宽的处理器访问接口和8 位串行收发数据接口,并兼容通用串行传输协议,将128 位SMS4 密码运算隐藏在IP内部。

8 位串行收发功能逻辑提供8 位数据收发、接收线状态检测、MODEM线控制与线状态检测功能。128 位收发逻辑使128 位SMS4 密文和8 位串行收发数据之间的传输能够平滑、顺畅地进行。面向串行通信的SMS4 算法逻辑在完成128 位SMS4 加解密运算的同时,还具备FPGA资源利用少、加解密吞吐量与串行通信吞吐量匹配的特点[9]。非128 位明文的加密传输数据控制逻辑重点解决非128 位明文的加解密运算和串行传输问题。处理器访问接口逻辑为处理器提供8 位数据位宽的访问接口,使处理器对SMS4 加密通信控制器IP的访问方式尽可能地接近于一般的8 位串行通信控制器[10]。

2. 2 加密通信IP核仿真验证

本文设计了SMS4 加密通信控制器IP核完成加密通信,图4 为SMS4 加密通信控制器IP的原理框图。

采用Altera公司的Quartus II FPGA开发工具完成SMS4 加密通信控制器IP的HDL代码编译。

使用ISim仿真器进行SMS4 加密通信控制器数据接收与发送仿真,得到仿真波形,如图5 和图6 所示。 SMS4 加密通信控制器IP对加密算法、数据收发、数据缓冲、接收线状态等功能进行了模块化设计,各个模块既相对独立又有机组合,可完成各自功能,不同模块之间进行数据和信号的交换实现时序控制、信息交互,从仿真结果可看出,SMS4 加密通信控制器IP在不影响通信吞吐量的情况下,实现了数据的SMS4 的加解密处理。

如图5 所示,SMS4 加密通信控制器IP接收数据通过信号wb_cyc_i作为计数器,每接收一个有效数据,产生一次脉冲。we_sel_i表示接收控制器片选信号,在接收期间保持为高; wb_adr_i表示数据地址,wb_ dat_i则表示接收数据值。

如图6 所示,SMS4 加密通信控制器IP接收数据通过信号wb_cyc_i作为计数器,每接收一个有效数据,产生一次脉冲; we_sel_is表示发送控制器片选信号,在发送数据期间保持为低。wb_adr_i表示数据地址,wb_dat_i表示接收数据值。

面向串行通信的SMS4 算法逻辑设计,并已集成到SMS4 加密通信控制器IP中。使用ISim仿真器对SMS4 算法逻辑的Verilog代码进行波形仿真,输入128 bit数据,进行加解密,其仿真波形如图7 所示。

从图中可看出,SMS4 加密IP利用points计算通信量,图7 的通信量为1 024 bit,data_in表示输入加密数据,addr_wr表示加密过程中的地址转换; data表示输出解密后的密文。

2. 3 基于SMS4 的加密通信SOPC软硬件架构

基于SMS4 的加密通信SOPC软硬件架构如图9 所示,分为SOPC硬件层和SOPC软件层。SOPC硬件层由电源、复位、时钟、JTAG接口、FPGA、配置器件、存储器、串行数据收发器等电路组成,其中FPGA是核心器件,内部集成了处理器IP、存储器及桥IP、SMS4 加密通信控制器IP等。SOPC软件层主要由嵌入式操作系统内核、SMS4 加密通信控制器驱动程序、SMS4 加密通信应用程序等部分组成。

SOPC硬件功能方面,电源电路、复位电路、时钟发生器为SOPC提供必须的电源供应、上电和硬件复位信号、时钟同步信号。JTAG接口电路用于调试SOPC的硬件逻辑和软件程序,同时也用于在线下载FPGA配置文件。FPGA配置器件存储FPGA静态配置,在上电时自动对FPGA进行配置; 由于FPGA内部存储资源有限,需外扩RAM、Flash等片外存储器。串行数据收发器实现TTL电气接口信号与RS - 232/422 电气接口信号的转换,使串行数据收发信号能适应远距离传输环境。

SOPC软件功能方面,嵌入式操作系统内核提供基本的存储管理、设备管理、中断管理及任务调度等功能。SMS4 加密通信控制器驱动程序将SMS4 加密通信控制器抽象成一个以文件方式访问的设备,供应用程序调用。SMS4 加密通信应用程序实现明文数据的收发,由于SMS4 加密通信控制器IP可屏蔽密文传输过程,应用程序中无需进行加解密处理。

基于SMS4 的加密通信SOPC硬件集成,需软件集成及性能分析。SMS4 加密通信SOPC主要依靠专用串行接口扩展模块的FPGA芯片进行硬件集成,图9为运行于Altera公司SOPC Builder开发环境的SMS4 加密通信SOPC硬件集成界面。如图所示,SMS4 加密通信SOPC集成有NiosII处理器IP、SMS4 加密通信控制器IP、SRAM和Flash的存储器控制IP等IP核,需为各IP核指定Avalon总线互连拓扑关系、时钟路径、 数据访问空间及中断路由等。

3 结束语

面向串行通信优化SMS4 算法的硬件实现,通过基于8 位异步模式的128 位数据串行收发技术实现SMS4 加解密和串行通信的深度整合,通过非128 位明文的加密传输数据控制技术实现SMS4 加解密运算与处理器无关,设计的SMS4 加密通信控制器IP具备FPGA逻辑资源用量小、加解密与串行通信吞吐量匹配、处理器加密通信处理负载小等特点。

通过SMS4 加密通信控制器IP封装与IP复用、硬件抽象层驱动软件设计、基于SOPC开发环境集成处理器IP及配套IP,采用软硬件协同设计方式实现了基于SMS4 的加密通信SOPC,使电子系统的SMS4 加密通信功能具备较强的可定制能力。

片上可编程系统 篇2

一、设计题目:基于Verilog HDL的数字秒表和电子时钟设计

二、设计目的

1、掌握Verilog HDL用于数字逻辑系统的设计技术和方法;

2、掌握CPLD/FPGA器件的应用方法;

3、学习掌握EDA综合开发环境(如ALTERA公司的Quartus II等)下进行设计、仿真、综合、下载及调试的方法。

三、设计任务 基础部分:

1、设计用于体育比赛用的数字秒表功能,要求

⑴ 计时精度应大于1/100秒,计时器能显示1/100秒的时间;

⑵ 计时器的最长计时时间为1小时,为此需要一个6位的显示器,显示的最长时间为59分59.99秒。

2、设置有复位和启/停开关,要求

⑴ 复位开关用来使计时器清零,并做好计时准备;

⑵ 启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关,计时中止。

3、采用Verilog HDL语言用层次化设计方法设计符合上述功能要求的数字秒表。

4、在此基础上增加电子时钟功能

(1)加入一个模式开关按键,按一下,变为秒表模式,再按一下切换回电子时钟模式。

(2)设计电子时钟,要求能够对当前时间进行设置。用6个数码管分别显示小时、分钟、秒钟。

(3)同时要求能够设置闹钟时间,到达时间后蜂鸣器会响5秒钟。

加分部分:

5、加分任务:利用实验箱资源设计一个系统,加分的分数视系统的新颖性,功能和复杂程度而定。(新颖性体现在:如果多个人实现相同的系统,那么此系统的加分分数相应降低)

四、设计步骤

1、采用层次化设计方法将设计项目分为若干模块;

2、对各模块分别设计,写出行为描述的Verilog HDL源文件;

3、对所作设计进行功能仿真,通过有关波形确认设计是否正确;

4、完成全部设计后,通过实验箱下载验证课题设计的正确性。

五、课程设计报告要求

1、设计目的、任务;

2、设计步骤;

3、根据分层方法进行模块设计,写出各模块Verilog HDL源代码;

4、记录综合、仿真、调试过程及结果;

5、总结所做设计及设计方法;

6、自我鉴定(实验报告册封底对应栏)。

六、时间安排

12节课 34节课 56节课 78节课

第一周周一 1班 1班 2班 3班 周二 2班 2班 3班 1班

周三 3班 3班 1班 2班

周四 1班 1班 2班 3班

周五 2班 2班 3班 1班

第二周周一 3班 3班 1班 2班

周二 1班 1班 2班 3班

周三 2班 2班 3班 1班

周四 3班 3班 1班 2班

周五 1班同学答辩 2班同学答辩 3班同学答辩

七、考核方法

片上可编程系统 篇3

随着电子电力技术、微电子技术以及稀土永磁材料的快速发展, 永磁同步电机 (Permanent Magnet Synchronous Motor, PMSM) 逐步成为工业控制领域中一种常用的伺服控制电机。由于它采用了无刷结构, 可以提高电动机运行的可靠性;又因其无需励磁电流, 没有励磁损耗, 提高了电动机的效率和功率密度[1]。它在很多应用场合可以实现高精度、高效率的控制效果。

片上可编程系统 (System on a Programmable Chip, So PC) 是近年来热门的微电子应用技术, 具有可编程的片上系统特点, 设计方式灵活多样。基于FPGA的电机控制器较传统的基于DSP或单片机的控制器具有设计周期短、移植性好、接口灵活、运算速度快、控制精度高等优点[2]。

本设计使用FPGA作为主控制器, 完成除数据采集等外围接口逻辑外, 使用了Altera芯片自带的嵌入式软核NiosⅡ, 实现伺服控制系统位置和速度的控制算法。同时使用DSP Builder工具, 生成基于模型的电流环控制算法模块, 实现了三闭环控制的永磁同步电机的控制器。

1 空间矢量算法原理及系统整体设计

空间矢量控制 (Field Oriented Control, FOC) 的基本思想是:将磁场定向坐标通过矢量变换, 把定子三相交流电流分解成两个独立、相互垂直的励磁电流分量iq和转矩电流分量id, 分别进行调节后得到电压控制量, 然后通过SVPWM脉宽序列来控制逆变器的开关模式, 从而达到利用六方向电压矢量合成的方式, 来追踪旋转的电压空间矢量目的[3], 以获得像直流电动机一样良好的动态特性。

图1是PMSM矢量控制基本原理。

由图1可以看出, 电机控制系统包括三部分功能[4]:

(1) 调节环节, 包括位置、速度和电流控制模块;

(2) 数据采集环节, 包括位置、速度及相电流检测;

(3) 逆变器模块, 将直流电通过SVPWM电压调制得到控制电机的三相交流电。

本文根据FOC矢量控制原理, 设计了基于So PC技术的永磁同步电机控制器, 电机控制系统整体框图如图2所示。图中, So PC系统在一块FPGA上实现, NiosⅡ作为系统的主处理器完成系统参数的配置、位置和速度的控制算法。

传统的PMSM电机控制器大都采用DSP+FPGA的架构, DSP以其能处理大量浮点运算的优势用来实现复杂的控制算法, FPGA则以其速度快的优势做一些数据管理、接口逻辑的处理。这种架构下的系统虽然也能实现PMSM电机的控制, 但是有几点不足之处:

(1) 需要使用两块处理器芯片, 增加了硬件成本及硬件电路板布局布线难度;

(2) FPGA与DSP之间数据通信接口比较复杂;

(3) 对于多轴向的电机控制系统, DSP很难达到像单轴电机同样的控制效果。

而基于So PC技术的控制器, 用NiosⅡ代替DSP, 可以有效解决上述问题。

2 So PC系统的组成与实现

本文使用了Altera公司的FPGA芯片EP3SE110F780I3, 根据系统功能需求将控制器进行功能划分, 主要由外围接口控制逻辑、NiosⅡ处理器、FOC电流环控制模块组成, 下面分别介绍几个模块的功能实现。

2.1 外围接口控制逻辑

为了完成永磁同步电机的闭环控制, 需要采集位置、速度、相电流信息, 本文采用了旋转变压器及配套的解算模块完成位置信息的采集, 采用AD7890完成速度的采集, 通过AD7476实现相电流的采集, 用VHDL语言完成几个采集芯片的接口控制逻辑。

2.2 NiosⅡ处理器

本设计使用的FPGA芯片内嵌NiosⅡ软核, 使用Altera公司So PC Builder开发工具可方便的根据系统需求定制NiosⅡ处理器以及片上外设[5]。本设计添加了搭建软核系统所必需的几个模块, 并且使用普通PIO作为与外部模块进行数据通信的接口。

NiosⅡIDE是NiosⅡ处理器的软件开发环境, 在此环境下可方便地编写基于C语言的软件程序。本设计软件需要完成的功能主要包括:电流环参数配置、位置控制算法、速度控制算法、产生电流环的定时启动信号。

2.3 FOC控制模块

由矢量控制原理可知, 电流环控制涉及大量运算, 包括Park变换、Clarke变换、Park逆变换等, 用VHDL语言是无法实现这么复杂的算术运算, 若使用NiosⅡ做算法处理, 又会因运算时间过长影响了实时性, 无法达到较好的电流环控制效果。因此使用DSP Builder工具搭建基于模型的FOC算法模块, 顶层文件如图3所示。

模型包括了参数配置接口、各种变换、PI调节以及SVPWM生成模块, 实现完整的电流环控制算法。将模型作为一个模块加入到So PC系统中, 模型的参数及启动信号由NiosⅡ处理器通过PIO端口进行配置。与传统DSP实现的FOC算法相比, 本设计生成的FOC模型是由组合逻辑构成的, 有更短的运算时间, 二者运算时间的比较如图4 (a) 所示。

从图4 (a) 可以看出, 基于模型的电流环只要一个运行周期10μs即可完成, 而DSP是顺序执行的, 控制周期较长, 运行一次电流环大约需要50μs (DSP主频为150 MHz) 。因此基于模型的方式具有更高的执行效率, 保证了电流环的控制效果。

另外, 当系统同时控制多路电机时, 基于模型的方式优势会更明显, 二者运行时间比较如图4 (b) 所以。从图中可以看出, DSP需要顺序执行各个电流环, 运行n轴电机需要n个的电流运行周期, 运算时间加长必然导致控制效果变差。而基于模型的方式下几个电流环可以同时运行, 运行完多轴电机的电流环只需要一个运行周期, 与单轴电机控制效果无差别。因此, 当实现多轴向电机控制时, So PC系统中只需添加相应数量的FOC模型, 同时NiosⅡ处理器配合给出电流环参考值, 几个电流环并行运行, 大幅度提高了多轴电机控制的精度。

3 系统工作流程

系统软件工作由NiosⅡ完成, 包括配置参数、完成位置和速度控制算法, 以及产生启动电流环的中断信号, 系统软件工作流程图如图5所示。

系统的工作过程为:上位机通过串行接口发送控制命令, 并给出电机的转速和目标位置, FPGA解析接收到的命令信息, 并将这些信息传递到NiosⅡ处理器, 同时传递到处理器的信息还包括FPGA采集到的位置、速度反馈值, 处理器根据目标值和反馈值完成位置及速度的调节, 并最终输出电流的参考值。FOC模块利用相电流反馈值与参考值进行电流环调节并输出SVPWM调制信号驱动功率管, 从而控制电机按照命令执行相应的动作。

4 实验结果分析

在搭建的完整PMSM伺服系统环境下进行控制器功能的验证, 首先验证电流环的控制效果, 给定电流环参考值为0.7 A, 反馈的电流值曲线如图6 (a) 所示, 电流曲线较平滑;图6 (b) 是采集到的电机相电流Iu、Iv的曲线图。

给定速度参考值来验证速度环, 以45 (°) /s匀速运行, 采集到速度反馈值曲线如图7所示, 速度曲线较平滑。

最后验证位置环, 此时位置、速度、电流三个环协同工作, 上位机给定命令是:在±30°之间以15 (°) /s往复运动, 采集到位置反馈值、指令与实测的绝对偏差曲线如图8所示。由图8 (a) 可以看出, 电机不仅能稳定运行, 并且位置指令和实测值两条曲线几乎重合, 图8 (b) 是位置指令和实测值之间的误差, 稳态跟踪误差小于0.2°。由此可见, 基于So PC设计的PMSM控制器具有较高的控制精度和很好的稳定性。

5 结论

本文基于So PC技术设计实现了PMSM控制器, 以FPGA为载体, NiosⅡ为中央处理器, 数据采集接口作为片上外围设备, 并使用DSP Builder工具实现基于模型的空间矢量控制算法模块, 组成完整的片上系统, 实现电流、速度和位置的精确控制, 达到了精度高、稳定性好的控制效果, 尤其在多轴电机控制系统中效果会更为明显, 对多轴向数字化永磁同步电机控制研究具有重大意义。该设计已成功应用在某型新研雷达的伺服控制系统上, 经过长时间的试验试飞表明, 该设计能够对雷达天线系统的运行角度、扫描速度和位置实施精确控制, 满足工程实践要求。

参考文献

[1]SKINNER J H, BASSIN N J. The environmental protection agency's hazardous waste research and development program[J]. Journal of the Air Pollution Control Association, 1998, 38 (4) :377-387.

[2]国务院.国务院关于两控区酸雨和二氧化硫污染防治“十五”计划的批复[EB/OL].[2002 - 09 - 19].http://cache.baiducontent.com.

[3]李文华.室内照明设计[M].北京:中国水利水电出版社, 2007.

[4]覃海益.教室灯光自动控制系统[J].电子科技, 2011 (10) :22-23.

[5]金永镐, 金杰.微功耗高灵敏度声光控制型LED照明灯的设计[J].电子科技, 2012 (3) :66-68.

一种片上系统复位电路的设计 篇4

一般而言,So C中的复位通常包括上电复位、外部复位、软件复位和看门狗(Watch Dog)复位,合理分配这些复位所作用的模块和范围非常重要。同时,由于So C在系统复位后需要将程序从Flash搬移至SRAM,此段时间内MCU及相关模块必须保持复位状态,以防止错误执行未准备好的程序,因此复位顺序需要特别留意。此外,对于异步复位的释放需要考虑亚稳态带来的影响。随着测试的重要性越来越突出,可测性设计DFT(DesignFor Test)在可控性和可观测性等方面对复位网络的设计也提出了要求。

本文设计的电路综合考虑了上述各种因素,能够妥善处理各种复位信号之间的关系及释放顺序,产生正确合理的复位信号,并对DFT设计加以支持。如图1所示。

1复位电路设计

图1所示的So C中复位电路的结构框图,由上电复位处理电路、外部复位处理电路、软件复位与看门狗(Watch Dog)复位处理电路和复位信号产生等几部分组成。

图2所示为So C复位电路设计实现的实际门级电路图。

1.1上电复位处理电路

So C通常会在芯片上电时进行系统复位。该复位信号(如图1中POR)一般来自于So C的模拟部分,与时钟信号的相位关系是不确定的,相对于数字部分而言是一个异步复位信号,故在复位释放时容易引起亚稳态的问题。上电复位处理电路用于实现对POR的同步化处理,以减少亚稳态对电路带来的影响[2,3]。如图3所示,使用两组同步器在CLK域和CLK_32K域分别对POR进行同步化处理。经同步处理后的por_32k和por_clk大大减小了POR释放时可能引起的亚稳态影响,能够提供稳定有效的异步复位。

1.2外部复位处理电路

So C中另一个常用的复位信号来源于芯片的外部复位管脚(图1中external_reset)。外部复位信号容易受到外界环境的干扰,如果该复位信号使用外部按键,还容易引发抖动,造成复位电平的波动,引起系统的不稳定,因此在设计中需要使用去抖电路进行滤波。

图4所示为外部复位处理电路的实际电路图。该电路首先对外部复位信号external_reset进行滤波,再将滤波后得到的复位信号经CLK域同步化处理得到最终的复位信号ext_porn,然后送至复位信号产生电路。

经实验测定,在本设计环境下需要滤除宽度为90μs以下的毛刺。由于设计中使用了频率为32 k Hz的时钟CLK_32K,为了简化电路,使用5级D触发器DFF(D Flip-Flop)级联来完成滤波功能。其中D1、D2为同步器,对external_reset在CLK_32K域做同步化处理[4];之后经过D3、D4、D5分别得到external_reset的延迟信号。由于CLK_32K的一个周期大约为30μs,并且external_reset为低电平有效,故将各延迟信号经过一个“或”门输出即可得到滤波后的复位信号;该信号经D6、D7、D8后,得到最终的经过CLK域同步化处理的复位信号ext_porn,送至复位信号产生电路。其中,D6的作用是将滤波后的复位信号寄存,为D7、D8组成的同步器提供稳定的寄存器输出,以避免由于布线及“或”门对信号造成不对称延迟所引起的毛刺被同步器捕获,从而进一步降低亚稳态的影响。

图5所示为Xilinx自带工具Chip Scope获得的65μs低电平信号输入到外部复位管脚时的波形图。从图中可以看到,在此输入下系统没有复位发生。

图6所示为Chip Scope获得的124μs低电平信号输入到外部复位管脚时的波形图。从图中可以看到,在此输入下系统所有模块均被复位。

由图5和图6所显示的结果可以看出,本设计的外部复位处理电路可以将90μs以下的毛刺滤除。

1.3软件复位与Watch Dog复位处理电路

软件复位在软硬件协同工作的So C中不可或缺。在某些特定的情况下,需要在软件的控制下对系统或者其中某些特定模块进行复位。此外,So C中通常使用Watch Dog在程序“跑飞”的情况下使系统复位至初始化状态。图7所示为软件与Watch Dog复位电路,其中soft_reset是软件复位信号,WDT是Watch Dog复位信号,二者均为高电平有效。由D9、I1和A1所组成的电路用来检测soft_reset或WDT的上升沿;由D10、D11、D12和O3组成的电路将信号展宽后,经过反相器I2输出,送给复位信号产生电路。

1.4复位信号产生

So C中的复位信号来源繁多,不同的复位信号作用的模块也有所不同,需要对各复位信号进行处理,以得到系统中每个模块所需的复位信号。复位信号产生电路将经过滤波和同步化处理后得到的各个复位信号进行收集,再根据系统需求,经过相应的处理,产生符合要求的各种复位信号,最终分配至系统中各模块,连接至各寄存器复位端。

1.4.1 DMA模块复位电路

So C在系统上电后,由DMA模块将存储于Flash中的程序读出,然后写入SRAM中供MCU执行。在此过程中,芯片中除DMA之外的其他模块(尤其是MCU)仍然处于复位状态。因此,DMA模块的复位电路需要独立于So C的复位网络单独设计。

图2中包括中DMA模块复位信号(dma_rstn)的产生电路。图中,flash_program来自于Flash控制模块,用来指示Flash当前的状态。Flash在芯片外部控制下被烧录时,flash_program信号一直保持高电平,dma_rstn输出为低电平,此时DMA处于复位状态,不进行程序搬移的操作;当Flash完成烧录后,flash_program信号变为低电平,DMA进入正常工作状态时,开始从Flash搬移数据。同样,在外部复位或上电复位之后,DMA开始从Flash中搬移数据。

1.4.2 CGU模块复位信号的产生

So C中通常包含时钟产生单元CGU(Clock Generate Unit),主要完成对系统时钟分频、时钟切换等工作。为保证系统的稳定性,该模块中的寄存器仅在上电复位信号和外部复位信号的作用下才进行复位,因此仅需将经处理后的ext_porn直接送至该模块。

1.4.3 MCU复位信号的产生

MCU的复位来源包括上电复位、外部复位以及软件/Watch Dog复位。在复位顺序上,为了防止MCU在系统尚未准备好时执行程序,通常会将MCU的复位一直保持有效,直至系统中其他所有模块就绪并且程序准备好才被释放。在本设计中,MCU的复位一定要在DMA模块完成程序搬移之后释放。因此,MCU的复位逻辑中包含了DMA模块输出的状态标志信号dma_over,该信号用来指示DMA已经完成了程序搬移,MCU可以离开复位状态开始执行程序。

1.4.4其他模块复位信号的产生

系统中其他模块包括接口电路和Flash控制电路,在上电和Flash烧录结束时都需要将其复位。因此,这些模块的复位电路也需要独立设计。

图8所示为系统中其他模块复位信号产生电路。D10、I3、A3组成的电路用来检测flash_program的下降沿,经过反相器I4之后,与ext_porn、soft_WDT一起经过与门A4送出。

1.5 DFT设计相关电路

芯片测试的原则之一是要求被测电路具备良好的可控性。由于So C中各寄存器的复位端信号全部来自于复位网络的寄存器输出端,在ATPG(Auto Test Pattern Generation)测试模式下,这些寄存器输出会迫使位于扫描链中后级的寄存器输出值被强制清零,从而覆盖正确的测试采样值,违背了可控性的原则。因此,需要在电路中使用选择器,将所有寄存器的复位端旁路至外部复位管脚,以满足可控性的要求,这样就避免了芯片测试过程中前级寄存器的输出端对后级寄存器清零的问题,保证了测试的有效进行。Mux的选择端信号(如图2所示M1~M7的S端)使用测试使能信号scan_en,当退出测试模式回到正常工作模式时,So C中各寄存器复位端从外部可控复位管脚切换至正常复位网络,功能不受影响。

2设计结果与分析

本设计采用Verilog语言编写代码,使用NC-Verilog工具进行电路仿真。此外,将整个系统设计适配至Xilinx Spartan-6 FPGA上进行了验证,并通过Xilinx自带工具Chip Scope观察设计结果。

由于软件复位和WDT复位信号的处理方式一致,故只给出软件复位测试结果。图9所示为软件复位时系统复位信号产生情况,除了cgu_rstn之外,其余复位信号均将进入复位状态。

图10所示为flash_program结束时的验证结果。此时,dma_rstn撤离复位状态;per_rstn有一个系统时钟周期的复位;而MCU一直处于复位状态,直到DMA完成了程序的搬移(dma_over为高电平),MCU才撤离复位状态;cgu_rstn一直为高电平,即cgu模块没有被复位。

本文设计了一种片上系统复位电路,针对So C的特点,可以正确稳定地产生各模块所需要的复位信号,同时可以满足DFT设计的要求。Xilinx Spartan-6 FPGA验证结果表明,该电路能够满足系统的应用需求,可以有效正确地复位系统中的各模块,同时可以滤除90μs以下的外部干扰信号。该设计已成功应用于电容式触控芯片中。

摘要:设计了一种片上系统(SoC)复位电路。该电路能对外部输入信号进行同步化处理以抑制亚稳态,采用多级D触发器进行滤波提升抗干扰能力,并且控制产生系统所需的复位时序以满足软硬件协同设计需求。同时,完成了可测性设计(DFT)。基于Xilinx spartan-6 FPGA进行了验证。结果表明该电路可以抑制90μs以下的外部干扰信号,并能正确产生系统所需的复位信号。

关键词:片上系统,复位电路,亚稳态,DFT

参考文献

[1]谢平.基于龙芯IP核SoC芯片的FPGA验证技术研究[J].电子技术应用,2010,36(10):128-131.

[2]CUMMINGS C E,MILLS D.Synchronous resets?Asyn-chronous resets?I am so confused!How will I everknow which to use?[M/OL].(2002-04-xx)[2012-07-31].http://www.sunburst-design.com.

[3]KLEEMAN L,CANTONI A.Metastable behavior in digitalsystems[J].IEEE Design&Test of Computers,1987,4(6):4-19.

上一篇:走进智慧教室下一篇:优秀企业文化