Verilog HDL设计自动数据采集系统

发布者:快乐之源最新更新时间:2012-08-04 来源: 21ic关键字:Verilog  HDL 手机看文章 扫描二维码
随时随地手机看文章
   

随着数字时代的到来,数字技术的应用已经渗透到了人类生活的各个方面。

数字系统发展在很大程度上得益于器件和集成技术的发展,著名的摩尔定律(Moore's Law)的预言也在集成电路的发展过程中被印证了,数字系统的设计理念和设计方法在这过程中发生了深刻的变化。从电子CAD、电子CAE到电子设计自动化(EDA),随着设计复杂程度的不断增加,设计的自动化程度越来越高。目前,EDA技术作为电子设计的通用平台,逐渐向支持系统级的设计发展;数字系统的设计也从图形设计方法向硬件描述语言设计方法发展。可编程器件在数字系统设计领域得到广泛应用,不仅缩短了系统开发周期,而且利用器件的现场可编程特性,可根据应用的要求对器件进行动态配置或编程,简单易行地完成功能的添加和修改。

在现代工业的发展中,实时测控系统得到广泛应用,这就对高速数字信号处理系统提出了更高的要求。因为要涉及大量的计算,为了提高运算速度,应用了大量DSP器件。数据采集系统是整个系统的核心部分之一,传统方法是应用MCU或DSP通过软件控制数据采集的模/数转换,这样必将频繁中断系统的运行从而减弱系统的数据运算能力,数据采集的速度也将受到限制。因此,DSP+CPLD的方案被认为是数字信号处理系统的最优方案之一,由硬件控制模/数转换和数据存储,从而最大限度地提高系统的信号采集和处理能力。

1 系统总体方案

数据采集系统是基于DSP的信号处理系统中的一部分,框图如图1所示。该数字信号处理系统用于随机共振理论在弱信号检测中的应用研究中。整个系统由信号放大、信号滤波、信号采样、高速数字信号处理、与主计算机的高速数据传输接口等部分组成。其中,信号放大是对输入信号进行调理以满足采样的要求;信号滤波是防止信号产生"混叠现象";信号采样是完成模拟信号的数字化;高速数字信号处理是在建立随机共振模型的基础上完成各种算法;与主计算机的高速数据传输接口是满足信号检测的实时性,将DSP处理的数据传给计算机以进行进一步的处理。 基于Verilog HDL设计的自动状态机由硬件控制A/D转换以及自动向FIFO中存储数据,采样频率由DSP系统的输出时钟确定,当采样数据达到一帧时,FIFO向DSP申请中断,DSP系统启动DMA完成数据读取。这期间数据采集不中断,从而实现连续的实时数据采集和实时数据处理。数据采集系统由A/D芯片MAX196、逻辑控制芯片EPM7128、FIFO芯片CY7C425组成。控制逻辑用Verilog HDL语言描述,并进行了仿真和实际验证。

2 硬件电路设计

2.1 A/D转换芯片

系统A/D转换由MAX196芯片实现。MAX196的特点为:

①12位A/D转换精度,1/2 LSB线性度;

②单5V电源供电;

③软件选择模拟量输入范围,分别为:±10V、±5V、0~5V、0~10V;

④6模拟量输入通道;

⑤6μs转换时间,100ksps采样速率;

⑥内部或外部采样控制;

⑦内部或外部时钟控制转换。

在MAX196的控制字中:

①A2A1A0为通道选择字:000~101分别代表通道0~5;

②BIP、RNG为输入范围和极性选择;

③ACQMOD:采样控制模式,0为内部控制采样,1为外部控制采样;

④PD1、PD0为时钟与省电模式选择。

内部转换模式时序如图2所示。当向MAX196写入包含通道选择、量程选择、极性选择的控制字时,完成A/D转换的初始化。控制字的ACQMOD位用来选择内部转换模式和外部转换模式,当写入ACQMOD位为0的控制字时,将启动内部转换模式,这里采用内部采样模式,一次转换需要12个时钟周期,转换周期由芯片内部时钟确定。写入一个写脉冲(WR+CS)可以启动一次转换。当在A/D转换期间写入新的控制字时,将中止转换并启动一次新的采样周期。A/D转换结束,输出低电平信号INT有效,信号RD读取A/D转换结果并复位INT信号,完整的一个转换周期结束。

2.2 数据缓存器

系统采集的数据常常放在数据缓存器中。数据缓存区要求既要有与A/D芯片的接口又要有与系统DSP的接口以提高数据吞吐率,因此常选用双口RAM或FIFO。由于FIFO不需要地址寻址,为了简化控制信号,本模块采用FIFO芯片CY7C425作为数据缓存区。FIFO存储器允许数据写入和读出不依赖于数据速率,并且总是以写入的顺序读出。根据Full和Empty标志来判断存储器全满或空。FIFO芯片可以进行数据宽度和存储深度的扩展而不会增加额外的时间延迟。当写信号(W)为低电平时发生写操作,当读信号(R)为低电平时发生读操作。A/D转换的结果通过写操作不断存入FIFO中,当FIFO满时,Full标志有效,向系统申请中断,DSP响应中断,立即启动DMA读FIFO中的数据,当读到空时,Empty标志有效,DSP停止读入操作。采用两片CY7C425扩展为18位1024字的高速异步FIFO存储器,数据处理速度达到50MHz,可以实现数据的高速写入和高速读出。FIFO异步读写时序见图3。

2.3 状态机模块

状态机FSM完成自动A/D转换和数据存储,控制芯片是EPM7128SQC100。该状态机由系统时钟驱动,产生RD、WR、INT信号,状态机能连续运行,不断地写命令字以启动A/D转换,然后读出A/D的转换结果并同时写入FIFO。

复位时,产生写脉冲WR,芯片MAX196在WR的上升沿锁存外部输入的命令控制字,开始A/D转换。当A/D转换结束时,芯片INT变为低电平,在下一个时钟的上升沿,RD变为低电平,数据总线上输出数据。当RD信号低电平有效时,INT信号变为高电平,下一个时钟的上升沿,RD信号变为高电平,在RD的上升沿数据被锁存进FIFO。RD信号回到高电平后,WR信号变为低电平,于是又开始下一次转换。

3 系统的Verilog HDL描述

电子系统设计中一般遵循自上而下的设计思路,对系统进行设计、描述与仿真。考虑到模块的通用性和可移植性,常常使用HDL语言来描述数字系统,如Verilog HDL、VHDL、AHDL语言等。其中Verilog HDL语言具有结构清晰、文法简明、功能强大、高速模拟和多库支持等优点,被近90%的半导体公司使用,成为一种强大的设计工具。

3.1 用Verilog HDL语言描述MAX196

用Verilog HDL程序描述MAX196模块,可以把模块用于采集系统的仿真,以验证状态机设计的正确性。该模块主要有三个输入信号和一个输出信号,与芯片的控制信号是一致的。程序说明如下:

module adc(reset,rd_adc,wr_adc,int_adc);

input reset,rd_adc,wr_adc;

output int_adc;

reg int_adc;

always @(posedge wr_adc or negedge rd_adc or negedge reset)

begin

if(!reset)int_adc=1;

else if(rd_adc==0)begin int_adc=1;end

else begin #10 int_adc=0;end

end

endmodule

3.2 用Verilog HDL语言描述自动状态机

自动状态机有三个输入信号和两个输出信号,输入信号中clk由DSP系统输出以控制采样速度,reset信号复位自动状态机,int_adc是A/D芯片转换结束的响应信号;输出信号rd_adc、wr_adc控制A/D芯片的转换开始和数据的读出,以及控制FIFO将数据写入FIFO。程序说明如下:

module fsm(int_adc,clk,reset,rd_adc,wr_adc);

output rd_adc,wr_adc;

input int_adc,clk,reset;

reg rd_adc,wr_adc;

reg[1:0]present;

parameter reset_ad=2'h0,start_ad=2'h1,wait_ad=2'h2,read_ad=2'h3;

always @(posedge clk or negedge reset)

if(~reset) begin present=reset_ad;rd_adc=1;wr_adc=0;end

else

begin

case(present)

reset_ad:if(rd_adc)

begin present=start_ad;wr_adc=1;end

start_ad:if(~int_adc)

begin present=wait_ad;rd_adc=0;end

wait_ad:if(~rd_adc)

begin present=read_ad;wr_adc=0;end

read_ad:if(~int_adc)

begin present=reset_ad;rd_adc=1;end

endcase

end

endmodule

3.3 数据采集系统

MAX196模块和状态机模块组成高层模块--自动采样系统,通过模块实例的调用和端口映射语句实现模块的组合。特别设定输出信号int_adc,可使仿真波形看得更加清楚。程序说明如下:

module simuadc(clk,reset,rd_ad,wr_adc,int_adc);//系统模块

output rd_adc,wr_adc,int_adc;

input clk,reset;

reg rd_adc,wr_adc,int_adc;

adc adcmax196(reset,rd_adc,wr_adc,int_adc);//A/D芯片模块

fsm fsmdsp(int_adc,clk,reset,rd_adc,wr_adc);//状态机模块

endmodule

3.4 仿真图形

图5为采集系统的时序仿真图。CLK是系统外部时钟,用于控制采样频率;RESET接外部复位信号,可以控制采样的起始时刻;MAX196的WR_ADC、RD_ADC、INT_ADC分别与逻辑芯片EPM7128的控制引脚相连接。仿真图表明,复位后,只要有CLK时钟输出,A/D转换将连续进行,转换数据依次存入FIFO,当FIFO满时,向DSP发出中断请求,DSP及时响应并启动DMA高速读入FIFO中的值,由于DSP读入的速度足够快,因此A/D转换并不需要停顿,从而实现实时采样和实时处理。 本文提出的自动采集系统采用CPLD芯片,用硬件描述语言设计自动状态机,实现硬件控制数据采集和存储。目前采集系统应用于DSP应用板卡上,免去了DSP监控A/D芯片的时间,使信号处理系统能高效地完成复杂的随机共振系统的研究。

关键字:Verilog  HDL 引用地址:Verilog HDL设计自动数据采集系统

上一篇:基于TMS320F28335的恒流型馈能式电子负载的设计
下一篇:关于SoC处理单元性能评估及功能划分

推荐阅读最新更新时间:2024-05-02 22:14

基于FPGA的数据采集系统设计
0 引言 在电气测控系统中,常常需要采集各种模拟量信号、数字量信号,并对它们进行相应的处理。一般情况下,测控系统中用普通MCU(如51、196等单片机或控制型DSP)就可以完成系统任务,但当系统中要采集的信号量特别多时(特别是各种信号量、状态量),仅仅靠用普通MCU的资源就往往难以完成任务。本文所提出的一种基于FPGA技术的模拟量、数字量采集与处理系统,利用FPGA的I/O端口多,且可以自由编程支配、定义其功能的特点,能很好地解决采集的信号路数多的问题。 1 系统组成 本系统中的外围电路设计相对简单、可靠,且鉴于FPGA自身的特点,系统具有较好的扩展性,在监测和控制系统中也具有一定的通用性。系统主要包括:FPGA芯片区、多
[测试测量]
基于FPGA的数据采集系统设计
芯片设计:verilog断言(SVA)语法
断言assertion被放在verilog设计中,方便在仿真时查看异常情况。当异常出现时,断言会报警。一般在数字电路设计中都要加入断言,断言占整个设计的比例应不少于30%。以下是断言的语法: 1. SVA的插入位置:在一个.v文件中: module ABC (); rtl 代码 SVA断言 endmodule 注意:不要将SVA写在enmodule外面。 2. 断言编写的一般格式是: 【例】 断言名称1:assert property(事件1) //没有分号 $display( ........ ,$time)
[单片机]
基于VerilogHDL的SDX总线与Wishbone总线接口转化的设计与实现
随着微电子设计技术与工艺的迅速发展,数字集成电路逐步发展到专用集成电路(ASIC),其中超大规模、高速、低功耗的新型FPGA的出现,降低了产品的成本,提高了系统的可靠性。同时,各种电子产品的复杂度和现代化程度的要求也逐步提高,文中针对机载信息采集系统的可靠性、数据管理的高效性以及硬件成本的需求。设计实现了与Wishbone总线SDX总线的接口转化,完成了数据采集功能模块与SDX总线协议之间的数据传输。 该设计主要采用硬件描述语言VerilogHDL在可编程逻辑器件FPGA上实现,由于数据采集功能模块繁多,而Wishbone总线可以与任何类型的ROM或RAM相连,因此需在SDX总线与数据采集模块中嵌入Wishbone总线,使得整体设
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved