基于FPGA的PWM与定时计数器IP核的设计.doc

基于FPGA的PWM与定时计数器IP核的设计.doc

ID:58863631

大小:118.00 KB

页数:4页

时间:2020-09-22

基于FPGA的PWM与定时计数器IP核的设计.doc_第1页
基于FPGA的PWM与定时计数器IP核的设计.doc_第2页
基于FPGA的PWM与定时计数器IP核的设计.doc_第3页
基于FPGA的PWM与定时计数器IP核的设计.doc_第4页
资源描述:

《基于FPGA的PWM与定时计数器IP核的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于FPGA的PWM与定时计数器IP核的设计前言PWM是脉冲宽度调制(PulseWidthModulation)的简称,在自动控制系统和计算机技术领域都有非常广泛的应用。在许多硬核式的嵌入式CPU中都有PWM和定时计数器模块的I/O口供用户使用,在交流检测、电机控制等实际应用系统中,PWM是整个系统的技术核心,在嵌入式操作系统中定时计数器也是不可缺少的部分。而在FPGA中的SOPC中,很多时候并没有提供这种模块供用户使用,因此设计出支持PWM输出的IP核具有很大的实用价值。针对市场上使用的FPGA情况,本文所提出的IP功能实现是基于Altera公司

2、的cycloneII芯片,该功能模块不仅可以作为独立的模块使用,而且可以嵌入到Altera公司提供的NIOSII处理器中,并通过NIOSII对该模块进行控制。HDL语言是一种通用性很强的语言,因此这个模块具有很高的移植性,不仅可以用于大多数的Altera芯片,而且对于其它公司生产的FPGA芯片同样适用。本设计中给出了模块与主系统的接口电路、功能逻辑电路以及外部输出端口。1芯片功能描述本设计实现了PWM输出和定时器/计数器两大功能,IP核将根据内部寄存器的状态选择相应的工作模式完成系统的功能。(1)PWM工作模式。当IP工作在PWM模式下时,模块内部

3、计数器将计算高低电平脉冲的时间长度(或者是脉冲个数),模块根据用户自定义的PWM输出脉冲占空比,产生具有占空比可调的二进制信号,最后以脉冲的形式输出。(2)定时器/计数器工作形式。当IP工作在定时器模式下时,芯片内部的32位定时器/计数器模块开始计数时钟周期的个数,当时钟周期数达到内部寄存器的预设的数值,则产生一个中断信号。该信号可以被主系统识别,并产生相应的中断功能。定时/计数的模式有单一循环和连续循环两种方式,并有内部系统时钟源和外部时钟源供选择,工作方式与时钟源的选择通过置位控制寄存器相应的位来选择。不论芯片是工作在PWM模式下,还是工作在定

4、时器/计数器模式,它都必须使用内部寄存器。如果内部寄存器的值达到了预设值后不再增加,那么芯片应采取单一循环计数方式;如果内部寄存器的值达到了预设值后便复位,重新开始加1计数,那么芯片应采取连续循环计数方式。上述逻辑功能是通过AVALON交换结构与主系统端口进行连接。2IP结构设计本设计的总体电路结构包含主系统电路接口、芯片内部寄存器区和数据缓存区、芯片内部组合逻辑电路模块和时序逻辑电路模块和独立的外部I/O端口4个主要的功能模块,如图1所示。图1芯片总体结构图2.1设备接口电路主系统电路接口使用的是基于AVALON总线标准的SoC(System-o

5、n-Chip)电路互连接口规范,可以通过它与其他主系统(如NIOSII处理器)互连,共同组成功能更大的芯片。假设某个主系统设计需要应用本设计,完成PWM输出,或者完成定时、计数功能,那么必须按下图所示的模型通过电路接口进行互连,这种互连结构由Quartus里的SOPCBuilder自动完成,用户只需要定义从端口的接口逻辑。图2电路系统的应用模型AVALON标准的SoC(System-on-Chip)电路互连接口规范定义了两种类型的接口:主设备接口和从设备接口。本设计使用的从设备接口。主设备和从设备按照下列步骤进行互连。(1)主设备利用主接口向本设计

6、芯片发送数据和功能请求。(2)AVALON总线结构对主系统的数据进行翻译、打包,将其转换为接口标准所能识别的格式。(3)从设备接口交给从设备进行数据独立处理,并不向主系统返回数据。AVALON交换结构能支持任何位宽度的总线(数据总线与地址总线的总和)。但为了能让IP有更好的移植性,使用的是32位的总线宽度。2.2寄存器描述寄存器是芯片电路实体区域与AVALON交换结构之间的缓冲区,这些寄存器的值联合起来确定芯片的工作方式和操作类型。本设计使用了4类寄存器:(1)PRTC_CNTR寄存器。PRTC_CNTR寄存器是芯片内部真正的计数寄存器,其存储的数

7、值每经过一个有效的计数/定时时钟周期(由系统时钟或外部时钟端口的输入)后自动加1。为了实现计数、定时,系统还需要根据RPTC_CTRL寄存器其他控制位的值来实现。RPTC_CNTR寄存器是32位宽度的计数寄存器,若复位清零,则它重新从0开始向上加1计数。(2)PRTC_HRC寄存器。PRTC_HRC寄存器是芯片内部引用寄存器(信号缓存器)的第二级输出,它具备以下两个功能:①若寄存器用作引用寄存器,则它可以用于输出芯片PWM波形的高32位部分,也可以用于产生中断输出。②若寄存器用作信号缓存器(也称为信号捕捉寄存器),则它在PTC_CAPT信号为高电平

8、期间捕捉并缓存RPTC_CNTR寄存器的值。RPTC_CNTR寄存器是32位宽度的引用寄存器(信号缓存器),若芯片复位清零

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。