基于Verilog HDL滤波器的设计

现代计算机和通信系统中广泛采用数字信号处理的技术和方法,其基本思路是先把信号用一系列的数字来表示,然后对这些数字信号进行各种快速的数学运算。其目的是多种多样的,有的是为了加密,有的是为了去掉噪声等无关的信息,称为滤波;有时也把某些种类的数字信号处理运算成为变换,如离散的傅里叶变换,小波变换等。veriloghdl是目前应用最广泛的一种硬件描述语言,用于数字电子系统的设计。可用它进行各种级别的逻辑设计,并进行数字逻辑系统的仿真验证,时序分析,逻辑综合。小波滤波器的设计属于复杂算法的电路设计,因此利用veril—oghdl对双正交小波滤波器进行建模、仿真,实现电路的自动化设计,将是一种较为理想的方法。
verilog hdl介绍
verilog hdl是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 verilog hdl和vhdl是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由gateway design automation公司开发。两种hdl均为ieee标准。
verilog hdl就是在用途最广泛的c语言的基础上发展起来的一种硬件描述语言,它是由gda公司的philmoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年moorby推出它的第三个商用仿真器verilog-xl,获得了巨大的成功,从而使得verilog hdl迅速得到推广应用。1989年cadence公司收购了gda公司,使得veriloghdl成为了该公司的独家专利。1990年cadence公司公开发表了verilog hdl,并成立lvi组织以促进verilog hdl成为ieee标准,即ieee standard 1364-1995.
verilog hdl的最大特点就是易学易用,如果有c语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把verilog hdl内容安排在与asic设计等相关课程内部进行讲授,由于hdl语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,vhdl的学习要困难一些。但verilog hdl较自由的语法,也容易造成初学者犯一些错误,这一点要注意。
l 小波滤波器的设计
对于小波函数,要求它具有正交性、紧支集、对称性和平滑性。正交性可以使变换无冗余;紧支集则带来优良的空间分辨率;对称性保证了与其对应滤波器的相位为线性;平滑性可以产生较小的失真。这样使离散二进小波变换受到很大的限制,为此,人们提出一种双正交的小波变换。本文设计小波滤波器正是基于双正交小波变换的一种双通道完全重构滤波器,因此可以对信号进行分解后实现精确重构,所以对信号的滤波有很好的作用。由于它具有正变换二元上抽样采样和反变换二元下抽样采样特性,在进行滤波器设计时可以将双正交小波滤波器设计成具有多相结构的双通道完全重构滤波器。双正交小波变换可以看成原始信号通过一系列高低通滤波器滤波并经过抽样后所得到的结果,重构过程与此相反。为了使变换后的信号能够完全重建,须满足y(n)=x-kx(n),在这里取k=1。双正交小波滤波器分解和重构过程如图1所示。
设g(z),h(z)分别为分解低通,高通滤波器,下采样后用h(z)滤波等价于先用h(z2)滤波,然后下采样,所以:
其中:ge和go分别是g(z)的偶数项和奇数项,he和h。分别是h(z)的偶数项和奇数项。根据式(1),式(2)可以建立双正交小波滤波器的多相结构模型如图2所示。
下面对双正交小波滤波器用veriloghdl进行顶层设计:
对于双正交小波滤波器的部件ge,go,he,ho设计,采用行为描述方式进行设计。veriloghdl行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和rtl级的模型设计。在veril—oghdl语言中行为描述分为算法和rtl两种。算法级:用语言提供的高级结构能够实现算法的运行模型。rtl级:描述数据在寄存器之间的流动和如何处理,控制这些数据的流动,采用改进的da算法(如图3所示)。da算法完成一次滤波所需要b次的累加也就是b个时钟周期完成一次运算,b位输入数据的位宽。它的查找表(lut)的大小是由滤波器的阶数n决定的,共需要2n个查找表单元,如果系数n过多,用单个lut不能够执行全字查找则可把系数分组,利用部分表并将结果相加,为了简单的阐述算法,在此系数只分了2组,每个单元的位宽是由滤波器的系数的量化决定的。ge,go,he,ho四个滤波器虽然长度不同,但具有相同的电路结构,如图4所示。
计算控制器用于控制滤波单元中移位寄存器移位,累加器的循环周期和计算输出,并控制移位寄存器的数据输入。
2 利用veriloghdl语言实现以上功能
2.1 用veriloghdl语言进行算法建模
计算机控制器的veril—oghdl模型:
寄存器组中每个寄存器的位数为0,1,…,num一1。

一文看懂断相保护器接线图解说明
三安光电的Micro LED专利解析
基于FPGA的原型,具备最高性能和可扩展容量
为什么余压监控系统对消防疏散来说如此的重要
新兴的高性能计算集群库
基于Verilog HDL滤波器的设计
如何将多个温度计连接到同一引脚并获取温度计OneWire地址
鸿海发射两颗“珍珠号”,将为通讯科技带来革命性突破
通俗易懂!高手带你理解嵌入式Linux中高端内存与低端内存
Linux防火墙配置(iptables和firewalld)
TTL转485,自动流向,PCB BOM
AEC-Q101|SiC功率器件高温反偏
Vicor与Voltserver™ 合作开发“数字电力”
小米6最新消息:小米6明日10点准时发售,抢购攻略告诉你,该怎么抢!
全球AI行业创业公司排名 中国有十家公司挺进
VXI总线专用中频信号源的设计
一种新型调频连续波高度表
苹果WWDC22:帮助开发者更好的和工程师沟通
国际科研团队研发新技术精准控制光纤光学电路,助推量子计算发展
华为如何牵动东莞和深圳两地政府的心?