(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf_第1页
(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf_第2页
(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf_第3页
(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf_第4页
(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(仪器科学与技术专业论文)fir滤波器的sopc实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆大学硕士学位论文中文摘要 i 摘要 滤波技术是信号分析、处理技术的重要分支,是控制电磁干扰,保证设备电磁 兼容性,提高可靠性、保密性的重要技术。 fir(finite impulse response)滤波器是数字信号处理的基本算法之一,是一 类较为重要的线性时不变系统,广泛应用于声音、图像处理等现代通信技术中。 论文结合 fir 滤波器的实现的不同方法,提出一种新的 sopc(system on programmable chip)实现方法,采用软件加硬件的方法进行设计。 论文首先介绍了 fir 滤波器的理论基础,探讨了滤波器的系统结构,对几种 滤波器常用设计方法作了比较,利用 chebyshev 最佳一致逼近原理,给出了最优 法设计 fir 滤波器的流程图。在分析研究 fir 滤波器模块设计软件 matlab/dsp(digital signal processing) builder,以及 quartusii 开发软件的基础上, 讨论了 sopc 设计流程,对 nios 嵌入式软核处理器的灵活设计特性作了表述,并 重点讨论了 nios 系统硬软件开发设计流程。 论文利用 quartus ii 定制出心电信号数据 rom 宏功能块以作为输入数据;采 用 matlab 中 fdatool 设计工具设计出滤波器系数;再用 dsp builder 技术对 16 阶 fir 低通滤波器进行了硬件模块设计,并进行了功能仿真。 论文还对 fir 滤波器的设计规范、系数计算、实现结构、量化系数验证、字 长选择等进行了阐述, 并应用 matlab/dsp builder 技术对 fir 进行了硬件设计,给出 了实现框图及该滤波器设计的仿真波形。 最后将该模块通过sopc接口编辑成nios 处理器的用户指令,组成硬件加速器接口模块。通过软件测试以及将所设计模块 下载到开发系统的 fpga 运行进行检验。 论文创造性的工作在于,提出采用一种自定制指令的方式将 fir 滤波器设计 简化,充分应用 nios 软核可以在设计阶段依据实际需要来增减外设数量和种类的 优点,在 nios 上以一条指令的方式运行,从而提高了运行速度,降低了运算复杂 度。 关键词:fir 滤波器,sopc,最优方法,nios 软核处理器,dsp builder, 自定制指令 重庆大学硕士学位论文英文摘要 ii abstract filtering technology is an important branch in signal analysis and processing domain. it is the important technology to control electromagnetism noise and guarantee electromagnetism compatibility, and hence improve stability and privacy of equipment. fir (finite impulse response) filter is one of the basic algorithms for digital signal processing, which is a kind of important lti discrete- time system, widely used in acoustic processing and image processing area. against various implementation ways, a new way using sopc(system on programmable chip) is introduced to design fir filter, software and hardware employed. basic theory of fir filter is introduced in the first place. the systematic structure of fir filter is discussed and several design theories are compared, in which chebyshev optimal theory is emphasized. the design flow of fir filter is also presented. the designsoftwarematlab/dsp(digitalsignalprocessing)builderandsopc development software quartusii are studied in the paper, and sopc development flow process is introduced. it includes a description of characteristic of nios soft core and nios hardware 二是当fir滤波器为线性相位时,可以 重庆大学硕士学位论文2fir 滤波器的理论基础 8 利用其系数对称的特点,将乘法器个数减半,加法器个数不变。事实上,线性相位fir 滤波器是用得最多的fir滤波器,过去用资源有限的asic、 fpga设计阶数不多的对 称系数fir滤波器时就采用直接型结构。直接型的缺点是需要一个多输入加法器, 当fir阶数较多时,多输入加法器的实现复杂、迟延较大,直接型结构也不便于多个 fir滤波器级连扩展。 转置型结构的优点是乘法器和加法器排列规则,特别便于大规 模集成电路来设计实现,且多个fir滤波器可直接级联扩展来扩展阶数;缺点是要存 储各级乘加器的输出,这些输出的位宽较大,也无法利用线性相位fir滤波器系数对 称的特点。目前用资源丰富的fpga等硬件设计长阶数fir滤波器时,几乎都采用转 置型结构,数据格式都是定点型的 17 。 2.2 fir 滤波器的几种设计方法比较 2.2.1 利用窗函数法设计 fir 滤波器 设计思路:窗函数法是指定连续的理想频率响应,然后用积分的方法求出理 想滤波器的单位抽样响应,再将其移位、截短,得到因果的、具有线性相位的fir df。 fir df 设计的窗函数法的特点: 1. 优点: 无稳定性问题; 容易做到线性相位; 可以设计各种特殊类型的 滤波器; 方法很简单。 2. 缺点: 不易控制边缘频率; 幅频性能不理想; h n较长。 2.2.2 用频率抽样法设计 fir df 所谓频率抽样法就是从频域出发,根据频域的采样定理,对给定的理想滤波 器的频域响应进行等间隔采样 9 15 : jw dd2k n hehk | k=0,1, n- 1(2.8) 把 d hk当作待设计的滤波器频率响应的采样值 h k,通过下式可求出滤波器的 系统函数 h z和频率响应 j h e : n 1 n k1 k 0 n h k h z1 n 1z 1wz (2.9) n 1 j k 0 2 h eh kk n (2.10) 其中, 是一个内插函数: n jn 1 22 2 sin1 e n sin (2.11) j2n n we 由于频谱的有限个采样值恢复出来的频率响应实际上是对理想频率响应的逼 重庆大学硕士学位论文2fir 滤波器的理论基础 9 近,因此,这种方法必然有一定的逼近误差。若被逼近的频率响应比较平滑,则各 采样点之间的逼近误差较小;反之,则逼近误差较大。 为了提高逼近的质量,可以采用人为的扩展过渡带的方法,即在频率相应的 过渡带内插入一个或多个比较连续的采样点,使过渡带比较连续,从而通带和阻 带之间变化比较缓慢,使得设计得到的滤波器对理想滤波器的逼近误差较小。 2.2.3 利用切比雪夫逼近法设计 fir 滤波器 上述两种方法设计的fir df 的频率响应都不理想,即通带不够平,阻带衰减 不够大,过渡带过宽,频率边缘不能精确指定。因此我们要寻找新的设计方法。 此方法即是chebyshev最佳一致逼近法。该方法在数字信号处理中占有重要的定 位,是设计fir df 最理想的方法。但是,该方法的原理稍为复杂 12 13 。 数字滤波器频域设计的最优方法- - - 等波纹切比雪夫法,是采用最大误差最小 准则得到最优数字滤波器,而且其最优解唯一。最优设计实际上是调节 fir 滤波 器 z 域零点的分布, 使得实际滤波器的频域响应 j e a e 和理想滤波器的频域响应 j d he 之间的最大绝对误差最小。 对于型 fir 数字滤波器,其频响可表示为: 1 02cos l j eee n a ehhnn (2.12) 其中, e hn为滤波器系数, lm/2, m 为滤波器阶数。我们将研究对于设计具有广 义线形相位的 fir 滤波器特别有效且广泛使用的算法 parks- mcclellan 11 算法。该 算法的基础是将滤波器的设计问题用公式表示成多项式逼近问题。该算法将滤波 器阶数 l、 带沿频率 p 和 s 以及通带阻带最大误差比 12 /固定, 令 1 或 2 为变 量,有效而系统的改变(l+1)个非限制的脉冲响应值 e hn0nl,从而达到满足 设计指标的目的。(2.12)式中的cosn项可表示为不同幂次之和,形式为 coscos n nt,这里 n tx是 n 次切比雪夫多项式, 1 coscos n txnx 。故 j e a e 可改写 0 cos l k j ek k aea (2.13) 其中, k a是与( ) e h n相关的常数。我们定义逼近误差函数为: jj de ewhea e (2.14) 其中, w为加权函数,要求 e、 w及 j d he 只在0区间有定 义。最大误差最小准则即是在所要求频域上找出使(2.14)式的最大加权逼近误差达 到最小的频响 j e a e 。即最佳逼近就是在 :0 minmax e h nn lf e 意义上所求得的 重庆大学硕士学位论文2fir 滤波器的理论基础 10 逼近。这里 f 是0的闭子集。 使给定阶次的多项式的最大加权误差为最小的充要条件由交替定理给出。其 表达式为 14 ii jj iide ewhea e 1 1 i 1,2,.,2il(2.15) max i f ee (2.16) 为最优误差。(2.15)、(2.16)式说明逼近误差 i e至少要有 l+2 交错点,从而使 e最小, j e a e 唯一。由(2.13)、(2.15)式可以解出系数组 k a和。 另一种更为有效的方法是多项式内插公式,可求得 2 1 1 2 1 1 i l j kd k k l k k k b he b w (2.17) 其中 2 1 1 l k i ki i k b xx ,也即若 j e ae 由满足(2.13)、(2.15)式确定的 k a,并且 由(2.17)式给出,则误差函数就会通过(l+2)个频率 i 上的处。而为避免求解 复杂方程组(2.13)、(2.15)来得出系数 k a ,parks- mcclellan 采用 lagrange 多项式内 插公式,有 1 1 1 1 / / i l kkk j k el kk k dxxc ae dxx (2.18) 其中, 1 1 k k j kd k che w , 1 2 1 1 l kkkl i ki i k dbxx xx , 这里令cosx,cos ii x。 通过(2.18)式可计算通带和阻带中多处频域的 j e a e 和 e值。若对通带和 阻带中的所有,都有 e,则说明已达到最佳逼近。否则,需计算出新的 极值频率。该算法流程图如图 2.1 示 12 。 重庆大学硕士学位论文2fir 滤波器的理论基础 11 假设(l+2)个极值频率的初始值 据极值点集计算最佳值 插入(l+1)个点得出 jw e a e 比较误差并求出 的局部极大点 e e 多于(l+2)个极值点吗 检验极值点是否改变 最佳逼近 得出(l+2)个 最大极值点 改变 是 否 未改变 图 2.1最优法设计 fir 滤波器流程图 fig 2.1flow chart of fir filter based on optimal theory 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 12 3dsp builder 及 sopc 实验开发系统 3.1 dsp builder 设计流程 dsp builder 是一个系统级设计工具,它架构在多个软件工具之上,并把系统 级和 rtl 级两个设计领域的设计工具连接起来,最大程度的发挥了两种工具的优 势。dsp builder 依赖于数学分析工具 matlab/simulink, 以 simulink 的 blockset 形 式出现,而在 simulink 中进行图形化设计与仿真。同时又通过 signalcompiler 把 simulink 的模型文件(后缀是.mdl)转化为硬件描述语言 vhdl 文件, 以及用于控制 综合与编译的 tcl 脚本。 而对后者的处理, 可以由 fpga 开发工具 quartusii 来完成。 dsp builder 可以帮助开发者完成基于 fpga 的 dsp 或其他电子系统设计。 除 了图形化的系统建模外,dsp builder 还可以自动完成大部分的设计过程和仿真, 直至把设计文件下载至 fpga 中。利用 matlabdsp builder 进行 dsp 模块设计是 sopc 技术的一个组成部分。 这是因为, 一方面, 产生于 matlabdsp builderquartus ii 流程的 dsp 模块可以成为单片 fpga 电路系统的一个组成部分,以担任某种局 部电路的功能;另一方面,通过 matlabdsp builder,可以直接为 nios 处理器设计 加速器,并以指令的形式加入到 nios 指令系统,从而成为系统的一个接口设备, 与整个片内嵌入式系统融为一体。继而,用户可根据设计项目的具体要求,构建 自己的 dsp 处理器系统。 图 3.1 是 matlab/dsp builder 设计流程 5 。 设计流程中,通过 signalcompiler 把 simulink 的模型文件(后缀是.mdl)转化为 硬件描述语言 vhdl 文件,是 dsp builder 设计的关键。由于 eda 工具软件不能 直接处理.mdl 文件,这就需要一个转换过程。转换获得的文件是基于 rtl(寄存器 传输级)的 vhdl 描述。 设计流程中,采用手动流程,设计者可以灵活的指定综合、适配条件;手动 的调用 vhdl 综合器进行综合,可先调用 quartusii 进行适配,再调用 modelsim 或者 quartusii 进行仿真, 最后用 quartusii 产生相应的编程文件用于 fpga 的配置 16 。故本论文采用手动流程进行设计。 手动流程步骤如下: (1) matlabsimulink 建模;(2) 系统仿真;(3) dsp builder 完成 vhdl 转换、综合、 适配;(4) modelsim 对 testbench 功能仿真;(5) quartusii 直接完成适配(进行优化 设置);(6) quartusii 完成时序仿真;(7) 引脚锁定;(8) 下载配置与嵌入式分析 仪等实施测试;(9) 对配置器件编程,设计完成。 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 13 s i m u l i n k 模 型 仿 真 综 合 ( q u a r t u si i , l e o n a r d o s p e c t r u m , s y n p l i f y ) a t o mn e t l i s t 产 生 q u a r t u si i h d l 仿 真 ( m o d e l s i m ) 综 合 ( q u a r t u si i , l e o n a r d o s p e c t r u m , s y n p l i f y ) q u a r t u si i 生 成 编 程 文 件 ( . p o f , . s o f ) 下 载 至 硬 件 自 动 流 程自 动 流 程 手 动 流 程手 动 流 程 m d l 转 成 v h d l m a t l a b s i m u l i n k 建 立 模 型 图 3.1matlab/dsp builder 设计流程 fig 3.1design process of matlab/dsp builder 3.2 开发软件 quartusii 介绍 altera 的 quartusii 开发平台,它囊括了从设计输入、综合、布局布线、仿真、 时序分析、下载验证等所有设计流程,是一个完整的开发平台,能满足多种设计 的需要,是 sopc 设计的综合环境和 sopc 开发的基本设计工具,并为 altera dsp 开发包进行系统模型设计提供了集成综合环境。quartus ii 设计工具完全支持 vhdl、verilog 的设计流程,其内部嵌有 vhdl、verilog 逻辑综合器。quartusii 与 matlab 和 dsp builder 结合可以进行基于 fpga 的 dsp 系统开发,是 dsp 硬件系统实现的关键 eda 工具,与 sopc builder 结合,可实现 sopc 系统开发。 quartusii 包括模块化的编译器。编译器包括的功能模块有分析综合器、适配 器、装配器、时序分析器、设计辅助模块、eda 网表文件生成器、编辑数据接口 等。 可以通过选择start compilation来运行所有的编译器模块, 或通过选择compiler tool,在 compiler tool 窗口中运行该模块来启动编译器模块。 此外,quartusii还包含许多十分有用的lpm(library of parameterized modules) 模块,他们是复杂或高级系统构建的重要组成部分,在sopc设计中被大量应用, 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 14 也可与quartusii普通文件一起使用。altera提供的可参数化宏功能模块和lpm函数 均基于altera器件的结构作了优化设计。在许多使用情况中,必须使用宏功能模块 才可以使用某些特定器件硬件功能,如dsp模块,片上存储器,pll等。这可以通 过quartusii中的megawizard plug- in manager来建立altera宏功能模块、 lpm函数和 ip函数,用于quartusii综合工具中的设计 1826 。设计流程如图3.2所示。 设计输入 设计描述 设计编译 功能确认 器件编程 延时确认 在线确认 生产 设计修改 图3.2quartusii设计流程 fig 3.2design process of quartusii 3.3 sopc 实验开发系统介绍 本方案采用的是杭州康芯电子有限公司的产品 sopc/dsp/eda 实验开发系统 gw48- gk2/pk2。该系统的结构与功能特点如下 5 : 1. 结构特点: 整个cpu, 乃至ram、 rom 和通信接口可在单片 fpga 中实现。 2. cpu 指令与微指令存储与形成方式:既可以采用传统的 rom 或 eeprom 存储,又可以采用 fpga 中的 eab 嵌入式方式,构成单片系统,更符合现代 cpu 设计理念。 3. cpu 指令和微指令的实现方式:利用计算机输入,形成专用文件格式,由 eda 工具自动配置进 fpga 中设定的 ram、rom 中,便捷、高效、实用、规范。 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 15 4. 可用硬件资源:采用 fpga 超大规模集成电路,可利用资源丰富,灵活, 设计者可根据需要反复调整和改变电路结构,创新设想易得到验证和实现。 5. 观察计算机内部指令执行情况,及软硬件排错:除了能在 pc 上对整个软 硬件系统进行时序仿真外,还可通过 jtag 口使用嵌入式逻辑分析仪对 cpu 内部 任意点,跟踪指令与测试。 6. 工作速度:采用高速、低压、低功耗 fpga,速度可达 100mhz真实 cpu 7. 嵌入式模块的利用:有 nios、各种 i/o 接口模块,如并行接口、串行通信 接口,vga 等。 8. 可扩展性:可扩展形成计算机构成中不同cpu 结构,总线宽,及实用接口等 9. 嵌入式系统硬件实现和软件开发实验:可利用 quartusii、sopc builder 和 嵌入式软核 nios 来实现。 以下将详述 gw48 系列 sopc/eda 实验开发系统(gw48- gk2/pk2)结构与使 用方法。该系统的实验电路结构是可控的。即可通过控制接口键,使之改变连接 方式以适应不同的实验需要。因而,从物理结构上看,实验板的电路结构是固定 的, 但其内部的信息流在主控器的控制下, 电路结构将发生变化- - - 重配置。 这种“ 多 任务重配置” 设计方案的目的有 3 个:1、适应更多的实验与开发项目;2、适应更 多的 pld 公司的器件;3、适应更多的不同封装的 fpga 和 cpld 器件。系统板 面主要部件及其使用方法说明如下。以下是对 gw48 系统主板功能块的注释。 gw48- gk2/pk2 实验系统有九个实验电路结构,由于本方案主要用到实验电 路结构图 no.5( 如图 3.3 所示),故对它作较为详细的介绍: 结构图结构图 no.5:此电路结构比较复杂,有较强的功能,主要用于目标器件与外 界电路的接口设计实验。该电路主要含以 9 大模块: 1普通内部逻辑设计模块。普通内部逻辑设计模块。在图的左下角。 适用于作加法器、减法器、比较器或乘法器等。例如,加法器设计,可利 用键 4 和键 3 输入 8 位加数;键 2 和键 1 输入 8 位被加数,输入的加数和被加数 将显示于键对应的数码管 4- 1,相加的和显示于数码管 6 和 5;可令键 8 控制此加 法器的最低位进位。 可用于作 vga 视频接口逻辑设计,或使用数码管 8 至数码管 5 共 4 个数 码管作 7 段显示译码方面的实验;而数码管 4 至数码管 1,4 个数码管可作译码后 显示,键 1 和键 2 可输入高低电平。 特点是有 8 个琴键式键控发生器,键控信号是高低电平方式向目标芯片输 入(即乒乓开关)。 适合于设计移位寄存器、环形计数器等。 2 ram/rom 接口。接口。在图左上角,此接口对应于主板上,有 2 个 32 脚的 dip 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 16 座,在上面可以插 ram,也可插 rom(仅 gw48- gk/pk 系统包含此接口)例如: ram: 628128;rom: 27c010、27c020、27c040、27c080、29c010、29c020、 29c040 等。 此 32 脚座的各引脚与目标器件的连接方式示于图上, 是用标准引脚名 标注的,如 pio48(第 1 脚)、pio10(第 2 脚)等等。注意,ram/rom 的使能由拨码 开关“ 1” 控制。 对于不同的 ram 或 rom,其各引脚的功能定义不尽一致,即,不一定兼容, 因此在使用前应该查阅相关的资料,但在结构图的上方也列出了部分引脚情况, 以资参考。 3vga 视频接口。视频接口。在图右上角,它与目标器件有 5 个连接信号:pio40、41、 42、43、44,通过查表(第 3 节的引脚对照表),可的对应于 epf10k20- 144 或 ep1k30/50- 144 的 5 个引脚号分别是:87、88、89、90、91。 4ps/2 键盘接口。键盘接口。在图右上侧。它与目标器件有 2 个连接信号:pio45、46。 5a/d 转换接口。转换接口。在图左侧中。图中给出了 adc0809 与目标器件连接。 6d/a 转换接口。转换接口。在图右下侧。图中给出了 dac0832 与目标器件连接。 7lm311 接口。接口。注意,此接口电路包含在以上的 d/a 接口电路中,可用于 完成使用 dac0832 与比较器 lm311 共同实现 a/d 转换的控制实验。比较器的输 出可通过主板左下侧的跳线选择“ 比较器” ,使之与目标器件的 pio37 相连。以便 用目标器件接收 311 的输出信号。注意,有关 d/a 和 311 方面的实验都必须打开 +/- 12v 电压源,实验结束后关闭此电源。 8单片机接口。单片机接口。给出了单片机与目标器及 lcd 显示屏的连接电路图。 9rs232 通信接口。通信接口。 结构图结构图 no.5 中并不是所有电路模块都可以同时使用, 这是因为各模块与目标 器件的 io 接口有重合。仔细观察可以发现: 1. 当使用 ram/rom 时,数码管 3、4、5、6、7、8 共 6 各数码管不能同时 使用,这时,如果有必要使用更多的显示,必须使用以下介绍的扫描显示电路。 但 ram/rom 可以与 d/a 转换同时使用,尽管他们的数据口(pio24、25、26、 27、28、29、30、31)是重合的。这时如果希望将 ram/rom 中的数据输入 d/a 器 件中,可设定目标器件的 pio24、25、26、27、28、29、30、31 端口为高阻态; 而如果希望用目标器件fpga直接控制d/a器件, 可通过拨码开关禁止ram/rom 数据口。ram/rom 能与 vga 同时使用,但不能与 ps/2 同时使用,这时可以使 用以下介绍的 ps/2 接口。 2. a/d 不能与 ram/rom 同时使用,由于他们有部分端口重合,若使用 ram/rom,必须禁止 adc0809,而当使用 adc0809 时,应该禁止 ram/rom, 如果希望 a/d 和 ram/rom 同时使用以实现诸如高速采样方面的功能,必须使用 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 17 含有高速 a/d 器件的适配板,如 gwak30+等型号的适配板。 3. ram/rom 不能与 311 同时使用,因为在端口 pio37 上,两者重合。另外, 给出目标板插座图(图 3.4)及不同 pld 公司器件编程下载接口说明表(表 3.1)。 图 3.3实验电路结构图 no.5 fig 3.3structural drawing no.5 of test circuit ram/rom使能 拨码开关 1滤波 a/d使能 转换结束 比较器 ds8使能 ds6使能 5th使能 rom使能 on 87654321 8dac0832拨码 :输出滤波使能 7adc0809拨码 :使能,默认关闭,见左图 6adc0809拨码 :转换结束使能,见左图 5lm311拨码 :应用使能,见下图 48拨码 : 数码管显示开关,默认打开 36拨码 : 数码管显示开关,默认关闭 2拨码 :默认关闭 向上拨,由厂家通知升级 1rom/ramcs1拨码 :两个使能,即它们的接地 vcc hspio43() vspio44() bpio42() gpio41() rpio40() 10 5 4 8 7 6 3 2 1 视频接口 vga j6 r78 200 r77 200 r76 200 14 13 gnd pio45 pio465 1 3 ps/2接口 j7 4 ain1 vcc 10k vr1 7拨码 6拨码 ain0 pio8 (23) (24) 12 16 27 26 10 clock 750khza 0 2 1 +5v ref(- ) ref(+) in- 1 in- 0 6 9 22 25 7 17 14 15 8 18 19 20 21 eu1 adc0809 pio16 pio17 pio18 pio19 pio20 pio21 pio22 pio23 pio32 pio33 pio35 pio34 msb2- 1 2- 2 2- 3 2- 4 2- 5 2- 6 2- 7 lsb2- 8 eoc add- a add- b add- c ale enable start 1“ romon”cs1(拨码 :使能即将接地) p29- a14)27010(pin30- vcc,pin3- a15, pin29- a14)27020(pin30- a17,pin3- a15, pin3- a15,pin29- a14) 27040(pin31- a18,pin30- a17, pin30- a17,pin3- a15,pin29- a14) 29c040(pin31- we,pin1- a18, 628128(pin30- vcc,pin3- a14, pin29- we) 8“1 on”(拨码 : 滤波即连接滤波电容) 1滤波 103 pio37comp连接与) 5“on”(拨码 : 比较器即 7.2k pio31 pio29 pio30 pio28 pio27 pio26 pio25 pio24 13 14 15 16 4 d7 d6 d5 d4 d3 5 d2 6 d1 d07 pio37 +5 51pfc27 comp lm311 vcc 10k - 12 +12 4 8 2 3 tl082/1 ain0 aout 5.1k r72 7 6 5 tl082/2 8 4 1 +12 - 12 comm eu2 dac0832 1 18 17 10 3 2 wr1 fb 9 3 211 iout1 iout2 12 /cs wr2 xfer a gnd d gnd vref 8 vcc 20 vcc d1 pio8 d2d3d4d5d6d7d8 pio9pio10pio11pio12pio15pio14pio13 实验电路结构图 no.5 speaker 扬声器 fpga/cpld 目标芯片 12345678 d16d15d14d13d12d11d10d9 pio47- pio44 pio43- pio40 pio39- pio36 pio35- pio32 pio31- pio28 pio27- pio24 pio23- pio20 pio19- pio16 译码器译码器译码器译码器译码器译码器译码器译码器 pio15- pio8 pio0 pio1 pio2 pio3 pio4 pio5 pio6 pio7 1键2键3键4键5键6键7键8键 ram/rompio8右侧的是 ram/rompio62左侧的是 gnd vcc pio62/pio8 pio49 ram/rom a18/a19 a18/a15/we pio26 pio25 pio24 pio32 pio33 pio34 pio35 pio36 pio37 pio38 pio39 pio14 pio47 pio10 pio48 pio9 pio46 pio45 pio11 pio12 pio13 pio15 pio31 pio30 pio29 pio28 pio27 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 1716 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 vcc gnd 27080 27040 27020 27010 27512 27256 2764 628128 62256 6264 vcc a17/vcc wr/a14 a13 a8 a9 a11 oe a10 cs1 d7 d6 d5 d4 d3gnd d2 d1 d0 a0 a1 a2 a3 a4 a5 a6 a7 a12 a14(a15) a16 右侧的3 列目标板插座信号相同 目标板插座 网 l 4 8m呈呈呈呈 网一 1 30 0 0 0 0 0 翮一 重庆大学硕士学位论文3dsp builder 及 sopc 实验开发系统 18 图 3.4目标板插座 fig 3.4sockets on target board 表 3.1不同 pld 公司器件编程下载接口说明 table3.1device interface for programming of different pld companies pld 公司latticealtera/atmelxilinxvantis 编程座 引脚 isplsicpldfpgacpldfpgacpld tck (1)sclktckdclktckcclktck tdo (3)modetdoconf_donetdodonetms tms (5)ispentmsnconfigtms/programenable nsta(7)sdonstatustdo tdi (9)sditdidata0tdidintdi sel0gndvcc*vcc*gndgndvcc* sel1gndvcc*vcc*vcc*vcc*gnd 重庆大学硕士学位论文4sopc 设计流程 19 4sopc 设计流程 随着半导体工艺的迅速发展,单个芯片上的逻辑门数显著增加,同时,eda 技术的推广和设计的普及化,vlsi现在已经可以把整个系统集成到一个芯片,这 就是所谓的soc技术。 然而,在上市时间的压力下,必须要求缩短产品的soc设计与生产时间。为 了快速设计生产出soc产品,设计人员必须利用预先定义并验证好的核 ip(intellectual property,即知识产权核core)。ip核是设计soc的关键技术之一。 虽然ip核一词在众多场合被使用, 但它并没有一个统一的定义。 从概念上可以 这样理解它:ip核是指将一些在数字电路中常用但比较复杂的功能块,如fir滤波 器、sdram控制器、接口等设计成可修改参数的模块,让其他用户可以在pci或 其它总线上直接调用这些模块。这样就可以大大减轻工程师的负担,避免重复劳 动。ip核设计一般可以有个3来源: eda厂商提供,用户自己定义,第三方提供。 ip核一般可以分为3类 30- 33 : (1) 软核(soft- core):软核用硬件描述语言写成,可以是对设计的算法级描述, 或功能级描述,也可以是仅仅用于功能仿真的行为模拟。 (2) 固核(firm- core):固核在软核基础上开发,是一种可综合的、并带时序信 息及布局布线规划的设计,用硬件描述语言写成。 (3) 硬核(hard- core):指和特定工艺相联系的物理版图,设计的正确性已经投片 验证,可在新设计中作为特定的功能模块直接调用。 一般来说, eda厂商及第三方提供的ip核都是功能上比较通用的,但在进行 soc设计时,用户经常有特殊需求,这时必须自定义逻辑来实现所要的功能。所 以在进行soc设计时,如何灵活地加入用户自定义逻辑就显得尤为重要。 sopc技术的本质是soc技术,其特点表现为可编程性。进行sopc设计的环 境是sopc builder,它集成在altera公司的eda工具quartus ii中。sopc builder有 一个友好的图形用户界面,通过这个界面,用户可以从altera提供的ip库中选取一 些组件,如处理器、sdram、flash、各种i/o等,并可通过选择来配置相应的参 数。sopc有个尤为重要的功能:在进行sopc设计时,如果用户有特殊功能要求, 但ip库中没有,则用户可以加入自定义的逻辑来实现。 在进行sopc设计时,用户需要先编写用户逻辑(如果有这种需要的话)及通过 sopc builder选择组件,然后用sopcbuilder产生所选择的系统组件的vhdl或者 verilog源文件以及模拟文件等,之后,用quartusii编译整个系统,编译成功 后,把编译文件下载到开发板上进行验证。 重庆大学硕士学位论文4sopc 设计流程 20 sopc 设计包括以 32 位 nios 软核处理器为核心的嵌入式系统的硬件配置、 硬 件设计、硬件仿真、软件设计、软件调试等。sopc 系统设计的基本软件工具主要 有:quartusii,用于完成 nios 系统的综合、硬件优化、适配、编程下载和硬件系 统测试;sopc builder 是 altera nios 嵌入式处理器开发软件包,用于实现 nios 系统的配置、生成、nios 系统相关的监控和软件调试平台的生成;modelsim,用 于对 sopc builder 生成的 nios 的 hdl 描述进行系统功能仿真;matlab/dsp builder, 可借助于生成 nios 系统的硬件加速器, 进而为其定制新的指令; gnu pro, 用于进行软件调试。图 4.1 为 sopc 开发流程。 用quartusii创建新项目 需要用户逻辑?编写用户逻辑 用sopc builder在ip库中选择并配置组件 用sopc builder生成选择组件的源代码及检查用户逻辑 成功 用quartusii综合并编译整个项目 成功 下载到开发板验证 正确 投片生产 yes no no no yes yes no yes 图 4.1sopc 开发流程 fig 4.1development flow chart of sopc sopc builder 工具的简介工具的简介 sopc builder是一个自动化的系统开发工具,它能够极大地简化高性能sopc 重庆大学硕士学位论文4sopc 设计流程 21 的设计工作。该工具提供一个直观的图形用户界面,用户可以通过图形界面简化 系统的定义工作。由于sopc builder不需要直接编写hdl代码来定义系统,这极 大地节约了设计开发时间。sopc builder为每个元件提供了一个向导,利用该向导 能很容易地定义元件功能。例如通过向导能够非常容易地在一个设计中加入nios 处理器,外设接口等。为了将微处理器核、外围设备、存储器和其它ip 核相互连 接起来,sopc builder能够自动生成片上总线和总线仲裁器等所需的逻辑。通过自 动完成以前易于出错的工作,sopc builder可以节约几周甚至几个月的开发时间。 sopc builder在一个工具中实现了嵌入式系统各个方面的开发, 包括软件的设计和 验证,为充分利用sopc 技术提高电子系统的性能和降低成本提供了强有力的支 持 24- 29 。 4.1 nios 嵌入式 cpu 核 目前最为常用的嵌入式系统大多采用了含有 arm 的 32 位知识产权处理器核 的器件。尽管由这些器件构成的嵌入式系统有很强的功能,但为了使系统更为完 备、功能更为强大、对更多任务的完成具有更好的操作性,通常必须为此处理器 配置许多接口器件,方能构成一个完整的应用系统,如除配置常规的 sram、 dram、flash 外,还必须配置网络通信接口、串行通信接口 usb 接口、vga 接 口、ps/2 接口等等。这样势必会增加整个系统的体积、功耗,降低了系统的可靠 性。 但是如果将 arm 或其它知识产权核以硬核方式植入 fpga 中, 利用 fpga 中 的可编程逻辑资源和 ip 软核来构成该嵌入式系统处理器的接口功能模块,就能很 好地解决这些问题。 nios 是altera 公司推出的嵌入式处理器软核, 包括一个或多个nios cpu、 avalon交换结构总线和其他组件。基于nios内核的片上可编程系统, 配以丰富的ip core, 用户可以构成各种不同的智能系统。基于nios 的sopc系统运算速度快, 硬 件结构简洁、灵活、开放,性价比高,可以广泛地应用于通信、家电、控制等众 多领域 38 。 4.1.1 nios cpu nios cpu是32位结构可配置并包含五级流水线的通用risc微处理器。采用改 进的哈佛存储器结构,cpu带有分离的数据和程序存储器总线控制,并具备高速 缓存,中断处理功能。与其他传统的cpu 相比,nios指令系统可通过自定义指令 和标准cpu选项,利用硬件来明显提高系统性能。硬件加速操作对可编程逻辑器 件(pld)中处理器软核非常有利。nios开发者可以在速度和面积间选择,增加了 sopc设计的灵活性。 重庆大学硕士学位论文4sopc 设计流程 22 4.1.2 avalon 交换结构总线 avalon交换结构总线是altera开发的用于nios嵌入式处理器的参数化接口总 线,由一组预定义的信号组成,用户用这些信号可以连接一个或多个ip模块。 altera的sopc builder系统开发工具自动地产生avalon交换结构总线逻辑。avalon 交换结构总线需要极小的fpga资源,提供完全的同步操作。 altera 的 nios 核含有 first silicon solutions(fs2)开发的基于 jtag 的片内设备 (oci)内核(这为开发者提供了强大的软硬件调试实时代码,oci 调试功能可根据 fpgajtag 端口上接受的指令,直接监视和控制片内处理器的工作情况)。此外, 基于 quartus平台的用户可编辑的 nios 核含有许多可配置的接口模块核,包括: 可配置高速缓存(包括由片内 esb 或外部 sram 或 sdram,100m 以上单周期访 问速度)模块, 可配置 rs232 通信口、 sdram 控制器、 标准以太网协议接口、 dma、 定时器、协处理器等等。在植入(配置进)fpga 前,用户可根据设计要求,利用 quartus和 sopc builder,对 nios 及其外围系统进行构建,使该嵌入式系统在硬 件结构、功能特点、资源占有等方面全面满足用户系统设计的要求。nios 核在同 一 fpga 中被植入的数量没有限制,只要 fpga 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论