集成电路数字滤波器的设计和实现的系统及方法

文档序号:6656366阅读:315来源:国知局

专利名称::集成电路数字滤波器的设计和实现的系统及方法集成电路数字滤波器的设计和实现的系统及方法DennisR.Best禾卩RobertO.Silco的专利申请发明领域本公开涉及满足特定规格的电子数字滤波器的设计,实现以及测试。
背景技术
:用于对一套期望的滤波器规格计算数学解的技术和算法被富有经验的滤波器设计者所熟知。现代解决方案经常采用数字滤波器技术以实现增强的稳定性、多功能性以及比先前模拟技术更低的成本。数字滤波器通常目的是从一个既有所期望频率又有非期望噪声频率的电子信号中选择所期望的频带。当前的滤波器设计实现通常需要非常富有经验的、对相关系统的信号处理链以及噪声源的原理和噪声消除技术有广泛认识的模拟电路工程师。设计者必须熟练使用各种滤波器设计模拟器和工具,并且跟上当前可用滤波器集成电路的性能。一旦设计者决定了系统中所需滤波器的近似要求(比如通过噪声条件的测量,或者根据设计中系统的频率计划),那么他必须选择一个能够实现的设计方法;这将是滤波器抽头(tap)的数量以及滤波器系数值。现在被广泛使用的设计方法是Parks-McClellan等波纹多项式近似算法。有一些基于Parks-McClellan和其他算法的可用软件包,能够生成给定规格所需要的系数和抽头数。尽管如此,也有数学解决方案。设计者必须找到实现解决方案的一个或多个部分,并且解决任何由数字表示法的精度限制或者分量差异导致的错误项。这可能需要设计方法阶段和实现阶段的几次反复才能达到可接受的解决方案。同样,从所得到的系数和设备控制参数到选定部分的转换可能是一个艰难的任务。我们需要一种系统,其能够通过关闭滤波器的纯粹数学设计与该滤波器的详细硬件实现之间的设计回路来实现数字滤波器。换言之,设计者应该能够执行数学设计、选择适当硬件、按照所述设计由所述硬件执行的情况来模拟并验证所述设计、以及把所述设计的操作和控制参数转换为其最终硬件实现,所有这些都在一个单一的集成系统中。
发明内容我们公开一种实现数字滤波器的方法,包含在数字计算机上计算数字滤波器的数学模型;其中,所述数学模型具有预定的第一组参数。所述第一组参数被转换为第二组参数,其中,所述第二组参数包括预先选择的数字滤波器集成电路(IC)的控制参数。然后,所述系统验证由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为。然后,将经验证的所述第二组参数写入所述数字滤波器IC上的永久存储器。所述系统优选地读取用于实现处于设计中的滤波器的特定滤波器IC的设备-文件映射特征。所述第一组参数至所述第二组参数的转换进一步包括,计算与所述第二组参数相对应的、符合所述数字滤波器IC中的有效数字精度的值,以及把由此计算的值赋给所述第二组参数。所述数字滤波器的数学模型通过使用所述第二组参数重新计算所述模型来验证。图1示出优选实施例的系统硬件的全景;图2示出优选实施例的数字滤波器集成电路的全景;图3示出优选实施例的数字滤波器处理器部分的平面图;图4是优选实施例中数字滤波器的数学设计的步骤流程图;图5是优选实施例中数字滤波器的物理实现的设计的步骤流程图;以及图6是优选实施例中数字滤波器参数的硬件下载的步骤流程图。具体实施例方式图1示出了优选实施例的全部硬件连接。计算机(100)执行滤波器设计软件(110),此软件包括本说明书中公开的方法。计算机(100)典型地包括处理器、RAM、以及大容量存储器设备,比如硬盘。计算机(100)通过数据总线(120)连接到评估电路板(130)上。数据总线(120)优选地为串行总线,比如通用串行总线(USB)标准,尽管其他的数据总线协议也是可采用的。硬件实现评估板(130)被配置为与数字滤波器集成电路(IC)(200)相连。滤波器IC(200)是一个复合信号、硅集成电路。所述设备典型地具有串行总线接口,用于与所述PC通信;非易失性存储器,用于存储滤波器系数和设备控制参数;静态随机访问存储器,用于存储数字化的输入数据流以及滤波操作的中间结果;一个或多个算数单元,用于执行与滤波器计算相关联的加法,乘法和累加运算;以及用于芯片工作的必要的程序控制、时钟生成与控制、功率调节、以及电源开启复位功能。所述IC还可以具有模拟至数字转换器(ADC),和数字至模拟转换器(DAC)与相关的抗混叠和重建滤波器,以及信号调节电路,以允许滤波器与模拟数据输入和输出直接相连。图2是优选实施例中这种IC(200)的综览。典型地,IC(200)具有输入(210),用于串行总线(120)。如以下所述,串行总线(120)携带定义特定数字滤波器的编程指令和数据。IC(200)具有ADC(220),用于要被处理的模拟信号的输入。在所述系统的其他实施例中,IC(200)的输入可能是数字信号,而不需要ADC。IC(200)具有非易失性存储器(230)的区域,用于存储滤波器系数和控制参数,如下面所述。因此,所述IC包括处理器(240),如下图所示,以便当其被连接到评估板(B0)上时,根据下载到其中的滤波器系数和控制参数来执行所需的数字滤波器计算。这些计算的结果典型地放置在DAC(260)中以便输出,尽管其他的实施例忽略DAC(260)并且输出数字数据流。所述芯片将具有典型地由外部晶体(270)所控制的时钟源(250)。应该注意的是,处理器(240)不是传统的数字信号微处理器,而是用来接收定义特定数字滤波器的滤波器系数和控制参数的特殊的集成电路。图3示出了优选实施例的处理器(240)部分平面图。滤波器IC(200)以及处理器(240)可以用特定用途集成电路(ASIC)实现,或者如果只需要数字I/O解决方案的话,则其可以采用现场可编程门阵列芯片来实现,比如加利福尼亚州圣何塞的Xilinx有限公司生产的VirtexII芯片。这种实现十分适宜于传统的数字信号微处理器,因为其可以更快地执行滤波器操作。处理器(240)通过数据端口(300)接收数据。数据端口(300)连接到数据总线(305)。地址总线(310)连结地址和控制寄存器(315)。数据总线(305)和所述地址总线(310)连接到奇操作数存储器(320)、偶操作数存储器(325)以及系数存储器(330)。根据控制指令,如以下所述,处理器(240)实现信号处理数字滤波器所需的典型的数学运算,并且还控制输入输出接口。在优选实施例中,有第一组被乘数和乘数寄存器(335)、产生第二被乘数的第一加法器(340);第二组被乘数和乘数寄存器(345)、乘法器(350)、第二加法器(355)以及最终乘法与累加寄存器(360)。数据输出端口(365)输出从第二加法器(355)得到的计算结果。优选实施例的典型数据滤波器IC(200)的设计可以按照如下指定的,具有3个存储器体或寄存器体的滤波器,其中,一个用于系数,具有0-255的地址范围,另外两个用于数据,具有在0-511范围内的奇偶交叉的地址。在所示设计中的最大抽头数是512,尽管所述设计可以被扩展到与可用硬件相一致的任何数量的抽头。初始化电源开关复位清除所有的寄存器,建立缺省时钟,并且对从板上非易失性存储器的控制参数与滤波器参数的下载进行初始化。该下载初始化所有地址和控制寄存器,把滤波器系数写入系数存储器(或寄存器),并且将数据存储器清零。将地址和控制寄存器设为适当的值,并且如果用到模拟部分的话,也要对其初始化。输入/输出9DatalnOprand来自输入管脚或ADC,计时入寄存器中数据DIO由输入管脚或ADC所设定的进入有效控制寄存器中的数据DataOut滤波器输出到输出管脚或DACD02由外部设备或DAC重设的从滤波器至输出管脚或DAC的数据输出有效控制初始值其中N二滤波器的抽头数量RO一喿作数的存储器地址寄存器,用来填充被乘数0寄存器(MCO)Rl二操作数的存储器地址寄存器,用来填充被乘数1寄存器(MCI)C一喿作数的存储器地址寄存器,用来填充乘数0寄存器(MPO)CTR-倒计数的抽头数量计数器W二下一数据点的存储位置的存储器地址寄存器R0=0,R1=N-1,C=0,CTR=N-1,W=N-1数据写入控制器IFDI0==0,THENWAITELSE,(W)=DataIn,DI0'=0,DI1'=1IFW==0,THENW'=N-1Else,W'=W-1操作数读取控制器IFDI1==0,THENWAITELSEMC0'=(R0),MC1'=(R1),MP0'=(C)IFCTR==0,THENR0'=0,R1'=N-1,C'=0,CTR'=N-1,DI1=0,DOO=1,DI2=DI1ELSEIF0=N/2-l,THENR0'=CTR,R1'=CTR-1,C=0,CTR'=CTR-1ELSEIFR0==N-1,THENRO'K)ELSER0'=R0'+1IFR1==0,THENR1'=N-1ELSER1'=R1-1ADD控制器IFDI2==0,THENWAITELSEMC'=MC0=MC1,MP,=MP0,DI3,=DI2,DOl,=DO0,DO0'=0MAC控制器IFDI3==0,THENWAITELSEMAC'=MAC+(MCxMP)IFD01==l,THENDATAOUT'=MAC=(MCxMP),DOl'=0,D02'=l(通过接收逻辑一外部或者DAC来重设D02)软件实现前述部分描述了优选实施例的典型硬件实现。接下来的部分描述优选实施例的软件过程。数学设计图4示出了所述系统的设计部分的软件过程中的执行流程。在步骤400,用户与设计输入对话框相互交流。在此对话框中,用户可以选择所期望的滤波器类型比如低通、高通、带通或者带阻,所期望的开窗功能以及频率范围。在步骤405,用户可以选择截止频率、阻带、波纹、衰减、釆样率以及输入和输出数据流的位长度(或精度)。在步骤410,所述软件使用传统技术比如Parks-McClellan方法,来计算滤波器抽头的数量、采样率、滤波器系数以及响应。所得到的滤波器响应在步骤415显示,在步骤420,用户可以批准设计好的滤波器或者返回修改所述设计并重复所述过程。该第一作用参数提供了所期望滤波器的理想数学设计。当用户在步骤420批准该滤波器设计后,执行转至步骤500,如图5所示。向物理约束的转换图5描述了刚计算的滤波器的物理设计的执行流程。在步骤500,ii用户选择具有适合于所述数学设计的参数例如存储器容量、执行速度、以及所期望模拟特征的数字滤波器IC(200)。优选地,如果在能够执行所期望滤波器的设备文件中没有设备,则所述程序不应该进行。在步骤505,所述程序接着为滤波器IC(200)加载设备文件(510)。所述设备文件在下一部分讨论。设备文件所述设备文件包含对最多到N个抽头的滤波器的操作进行编程所必需的所有控制域、初始寄存器值以及系数值。这些域也定义了所述设备的操作模式,包括输入/输出选择和数据类型、采样率/时钟率、ADC/CDA使能和增益设置、抗混叠滤波器设置,级联积分梳状(CIC)滤波器抽取值、以及通信接口模式和协议。这些控制参数被存储映射(memorymap)至所述设备上的非易失性存储器中,并且还存储映射至所述设备上的存储器和寄存器中。此映射告知所述软件,对每一设备类型而言什么是必须被配置的。所述设备可以用一个或多个滤波器和最大速率值操作输入数据流,直到达到片上存储器的容量。所述设备上的每一滤波器都需要如下所述的存储映射。典型设备文件映射的数据结构在下面表格中示出。所述表格示出了具有抗混叠波器以及用于模拟输入的ADC的滤波器设备以及随后的抽取CIC滤波器以及N抽头数字滤波器硬件的文件组织。在示例中的输出部分包括了DAC。所述滤波器可以用于带有串行或并行I/O的单独数字模式,或者ADC和DAC能被分别使能以提供模拟滤波器替代。<table>tableseeoriginaldocumentpage12</column></row><table>FIR控制初始值(N=抽头数量)保留输入/输出控制时钟率/采样率控制通信接口抗混叠滤波器ADCDAC256257258259260261262268274278280282284511数据写入地址(W=N-1)操作数A读出地址(R0=0)操作数B读出地址(R1=N-1)系数C读出地址(C=0)抽头计数器回路控制(CTR=N-1)比例因子数据/系数位长度/格式数字输入使兽A匕6b模拟输入使旨数字输出使能模拟输出使能串行或并行微分/单端串行或并行微分/单端ADC时钟、CIC时钟、FIR时钟、PLL控制、PLL状态、芯片使能、电源开启复位延迟模式(I2C,SPI),协议截止频率、增益、旁路、使能比例因子、使能增益、使能模拟和验证在步骤520,用户能够选择滤波器IC(200)的各种选择,例如数字或模拟的输入或输出、模拟输入增益,数字输出增益以及类似参数。接下来执行转至步骤525,其中将所计算的系数对于特定的滤波器IC结构进行量化。上述数学建模优选地采用32位浮点数完成。这些必须被转换为2的补码二进制形式或其他可以与所述滤波器IC(200)的硬件相兼容的形式。因此必须使用为固定的二进制运算以来生成滤波器模拟,以便在滤波器IC(200)上的滤波器硬件实现能够满意地再现所期望的滤波器响应。在优选实施例中,在步骤525,通过使用经过适当量化的值重新运行所述模拟来实现以上内容。例如,所述模拟可以使用16位、二进制补码运算、给定十进制的四位精度来重新运行,而不是典型的由浮点运算实现的十进制的15位精度。在精度更重要的滤波器中,例如具有大量抽头的那些滤波器,可以使用20位的定点算数,并且滤波器IC(200)在此精度上构造并执行运算。在步骤530显示此模拟的结果。如果所述结果不令人满意,用户可以返回到步骤405以更改滤波器参数。如果所述结果令人满意,那么代表所述结果的数据就准备号下载到滤波器IC(200)。此第二组参数既包括设计中的滤波器的系数,还包括滤波器操作的控制参数。因此,第二组参数表示能够在滤波器IC上执行的完整功能的数字滤波器。所述数据集合可以被下载到评估板(130)上的滤波器IC(200)中,以便进一步的工程模拟,或者下载到编程固定设备上的一个或多个滤波器IC(200)中,以建立系统中使用的预编程芯片。可以选择的是,可以将所述数据存储在用户系统中,以便在需要时实时下载到用户终端装置中。总得来说,所计算得到的表示数字滤波器的数据集合可以被存储在计算机可读介质上,例如硬盘、CD-ROM、闪存ROM、非易失性ROM以及RAM。由于本领域技术人员可以更改以上所述的特定实施例,我们意欲将权利要求解释为覆盖这种修改和等价物。1权利要求1、实现数字滤波器的一种方法,包括在数字计算机上计算数字滤波器的数学模型;所述数学模型具有预定的第一组参数;把所述第一组参数转换至第二组参数,其中,所述第二组参数包括预先选择的数字滤波器集成电路(IC)的控制参数;验证由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为;以及把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器。2、如权利要求1所述的方法,其中,所述第一组参数至所述第二组参数的转换还包括计算与所述第二组参数相对应的、符合所述数字滤波器IC中的数字精度的值;以及把由此计算的值赋给所述第二组参数。3、如权利要求l所述的方法,其中,对由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为的验证还包含,使用所述第二组参数重新计算所述数字滤波器的数学模型。4、如权利要求3所述的方法,还包括,将所述数字滤波器的重新计算的数学模型与第一次计算的数学模型进行图形比较。5、如权利要求1所述的方法,其中,把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器还包含写入所述数字滤波器IC的控制和系数参数。6、如权利要求1所述的方法,其中,把所述第一组参数转换至所述第二组参数还包含读取设备文件映射。7、具有用来执行一种方法的计算机可执行指令的计算机可读介质,所述方法包含在数字计算机上计算数字滤波器的数学模型;所述数学模型具有预定的第一组参数;把所述第一组参数转换至第二组参数,其中,所述第二组参数包括预定的数字滤波器IC的控制参数;验证由所述数字滤波器ic对所述第二组参数的执行基本上再现了所述数学模型的行为;以及把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器。8、如权利要求7所述的计算机可读介质,其中,所述第一组参数至所述第二组参数的转换还包括计算与所述第二组参数相对应的、符合所述数字滤波器IC中的数字精度的值;以及把由此计算的值赋给所述第二组参数。9、如权利要求7所述的计算机可读介质,其中,对由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为的验证还包含,使用所述第二组参数重新计算所述数字滤波器的数学模型。10、如权利要求9所述的计算机可读介质,还包括,将所述数字滤波器的重新计算的数学模型与第一次计算的数学模型进行图形比11、如权利要求7所述的计算机可读介质,其中,把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器还包含写入所述数字滤波器ic的控制和系数参数。12、如权利要求7所述的计算机可读介质,其中,把所述第一组参数转换至所述第二组参数还包含读取设备文件映射。13、如权利要求7所述的计算机可读介质,进一步具有存储在其上的数据结构,包含用于数字滤波器系数的序列存储的多个域;输入/输出控制域;时钟率/采样率域;通信接口模式域;以及抗混叠滤波器控制域。14、如权利要求13所述的计算机可读介质,还具有模拟至数字转换器控制域。15、如权利要求13所述的计算机可读介质,还具有数字至模拟转换器控制域。16、一种计算机系统,包含可编程数字滤波器IC、可编程数字计算机、以及连接所述数字滤波器IC与所述可编程数字计算机的总线;所述数字计算机含有用于实现数字滤波器的指令,包括在所述数字计算机上计算数字滤波器的数学模型;所述数学模型具有预定的第一组参数;把所述第一组参数转换至第二组参数,其中,所述第二组参数包括所述数字滤波器IC的控制参数;验证由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为;以及把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器。17、如权利要求16所述的计算机系统,其中,所述第一组参数至所述第二组参数的转换还包括计算与所述第二组参数相对应的、符合所述数字滤波器IC中的数字精度的值;以及把由此计算的值赋给所述第二组参数。18、如权利要求16所述的计算机系统,其中,对由所述数字滤波器IC对所述第二组参数的执行基本上再现了所述数学模型的行为的验证还包含,使用所述第二组参数重新计算所述数字滤波器的数学模型。19、如权利要求18所述的计算机系统,还包括,将所述数字滤波器的重新计算的数学模型与第一次计算的数学模型进行图形比较。20、如权利要求16所述的计算机系统,其中,把经过验证的所述第二组参数写入所述数字滤波器IC上的永久存储器还包含写入所述数字滤波器IC的控制和系数参数。21、如权利要求16所述的计算机系统,其中,把所述第一组参数转换至所述第二组参数还包含读取设备文件映射。22、如权利要求16所述的计算机系统,其中,所述数字滤波器IC还具有模拟至数字转换器,用于转换模拟输入信号。23、如权利要求16所述的计算机系统,其中,所述数字滤波器IC还具有数字至模拟转换器,用于输出模拟信号。全文摘要实现数字滤波器的一种系统以及方法,包含在数字计算机上计算数字滤波器的数学模型;其中,所述数学模型具有预定的第一组参数。把第一组参数转换至第二组参数,其中,第二组参数包括预先选择的数字滤波器集成电路(IC)(200)的控制参数。然后,所述系统验证由数字滤波器IC(200)对第二组参数的执行基本上再现了所述数学模型的行为。然后把经过验证的第二组参数写入数字滤波器IC(200)上的永久存储器(230)。所述系统优选地读取用于实现处于设计中的滤波器的特定滤波器IC的设备-文件映射特征。第一组参数至第二组参数的转换进一步包括,计算与第二组参数相对应的、符合数字滤波器IC(200)中的有效数字精度的值,以及把由此计算的值赋给第二组参数。所述数字滤波器的数学模型通过使用第二组参数重新计算所述模型来验证。文档编号G06F17/50GK101427252SQ200580022713公开日2009年5月6日申请日期2005年6月9日优先权日2004年7月6日发明者丹尼斯·贝斯特,罗伯特·西尔科申请人:奎克菲尔特技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1