怎么用mentorgraphics画画出此滤波器的线性相位结构器

EDA技术及应用(第4版)百度会学 - 定义优质教育资源
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
EDA技术及应用(第4版)
扫一扫领20元阅读代金券
相关书籍榜单
  《EDA技术及应用(第4版)》分为三大部分,共七章。第1部分概括地阐述了EDA技术及应用的有关问题(第1章);第二部分比较全面地介绍了EDA技术的主要内容,包括EDA的物质基础——Lattice、Altera和Xilinx公司典型FPGA/CPLD的性能参数、组成结构以及FPGA主流设计技术及发展趋势(第2章),EDA的主流表达方式——VHDL的编程基础(第3章),EDA的设计开发软件——QuanusII、ISESuite、synplifyPRO、ModelSimSE等常用EDA工具软件的安装与使用(第4章),EDA的实验开发系统——通用EDA实验开发系统的基本组成、工作原理、性能指标及GW48系列EDA实验开发系统的结构及使用方法(第5章):第三部分提供了12个综合性的EDA设计应用实例(第6章)和8个综合性、设计性的EDA技术实验(第7章),其中综合性的EDA设计应用实例,包括数字信号处理、智能控制、神经网络中经常用到的高速PID控制器、FIR滤波器、CORDIC算法的应用等实例。  《EDA技术及应用(第4版)》可供高等院校电子工程、通信工程、自动化、计算机应用、仪器仪表等信息工程类及相近专业的本科生或研究生使用,也可作为相关人员的自学参考书。
作者简介更新中
第1章 绪论1.1 EDA技术的涵义1.2 EDA技术的发展历程1.3 EDA技术的主要内容1.3.1 大规模可编程逻辑器件1.3.2 硬件描述语言(HDL)1.3.3 EDA软件开发工具1.3.4 EDA实验开发系统1.4 EDA工具的发展趋势1.5 EDA的工程设计流程1.5.1 FPGA/CPLD工程设计流程1.5.2 ASIC工程设计流程1.6 数字系统的设计1.6.1 数字系统的设计模型1.6.2 数字系统的设计方法1.6.3 数字系统的设计准则1.6.4 数字系统的设计步骤1.7 EDA技术的应用展望1.8 EDA技术研究性教学探讨1.8.1 开展EDA技术研究性教学的意义1.8.2 开展EDA技术研究性教学的方法1.8.3 开展EDA技术研究性教学的成效习题第2章 大规模可编程逻辑器件2.1 可编程逻辑器件概述2.1.1 PLD的发展进程2.1.2 PLD的分类方法2.1.3 常用CPLD和FPGA标识的含义2.2 FPGA主流设计技术及发展趋势2.2.1 FPGA主流设计技术2.2.2 FPGA前沿设计技术与未来发展趋势2.3 Lattice公司的CPLD和FPGA器件2.3.1 Lattice公司的CPLD和FPGA概述2.3.2 ispMACH系列CPLD结构2.3.3 EC/ECP系列FPGA结构2.4 Altera公司的CPLD和FPGA器件2.4.1 Altera公司的CPLD和FPGA概述2.4.2 MAX系列CPLD结构2.4.3 CycloneⅢ系列FPGA结构2.4.4 StratixⅡ系列FPGA结构2.5 Xilinx公司的CPLD和FPGA器件2.5.1 Xilinx公司的CPLD和FPGA概述2.5.2 XC9500系列CPLD结构2.5.3 Spartan-3系列FPGA结构2.5.4 VirtexⅡPro系列FPGA结构2.6 CPLD和FPGA的编程与配置2.6.1 CPLD和FPGA的编程配置2.6.2 CPLD和FPGA的下载接口2.6.3 CPLD器件的编程电路2.6.4 FPGA器件的配置电路2.7 FPGA和CPLD的开发应用选择习题第3章 VHDL编程基础3.1 概述3.1.1 常用硬件描述语言简介3.1.2 VHDL的优点3.1.3 VHDL程序设计约定3.2 VHDL程序基本结构3.2.1 VHDL程序设计举例3.2.2 VHDL程序的基本结构3.2.3 库、程序包使用说明3.2.4 实体描述3.2.5 结构体描述3.2.6 结构体配置3.3 VHDL语言要素3.3.1 VHDL文字规则3.3.2 VHDL数据对象3.3.3 VHDL数据类型3.3.4 VHDL操作符3.4 VHDL顺序语句3.4.1 赋值语句3.4.2 转向控制语句3.4.3 等待语句3.4.4 返回语句3.4.5 空操作语句3.4.6 其他语句和说明3.5 VHDL并行语句3.5.1 进程语句3.5.2 块语句3.5.3 并行信号赋值语句3.5.4 元件例化语句3.5.5 生成语句3.6 子程序3.6.1 子程序概述3.6.2 函数的定义及使用3.6.3 过程的定义及使用3.7 程序包3.7.1 程序包的定义3.7.2 程序包的使用3.8 VHDL描述风格3.8.1 行为描述3.8.2 数据流描述3.8.3 结构描述3.9 基本逻辑电路设计3.9.1 组合逻辑电路设计3.9.2 时序逻辑电路设计3.9.3 存储器电路设计3.10 状态机的VHDL设计3.10.1 状态机的基本结构和功能3.10.2 一般状态机的VHDL设计3.10.3 摩尔状态机的VHDL设计3.10.4 米立状态机的VHDL设计习题第4章 常用EDA工具软件操作指南4.1 常用EDA工具软件安装指南4.2 常用EDA工具软件操作用例4.2.1 位十进制计数器电路4.2.2 计数动态扫描显示电路4.2.3 EDA仿真测试模型及程序4.3 AlteraQuartusⅡ操作指南4.3.1 QuartusⅡ的初步认识4.3.2 QuartusⅡ的基本操作4.3.3 QuartusⅡ的综合操作4.3.4 QuartusⅡ的SOPC开发4.3.5 高版本QuartusⅡ的仿真4.4 XilinxISEDesignSuite操作指南4.4.1 XilinxISE的初步认识4.4.2 ISESuite的基本操作4.4.3 ISESuite的综合操作4.5 SynplicitySynplifyPRO操作指南4.5.1 SynplifyPRO的使用步骤4.5.2 SynplifyPRO的使用实例4.6 MentorGraphicsModelSim操作指南4.6.1 ModelSim的使用步骤4.6.2 ModelSim的使用实例习题第5章 EDA实验开发系统5.1 通用EDA实验开发系统概述5.1.1 EDA实验开发系统的基本组成5.1.2 EDA实验开发系统的性能指标5.1.3 通用EDA实验开发系统的工作原理5.1.4 通用EDA实验开发系统的使用方法5.2 GW48系列EDA实验开发系统的使用5.2.1 GW48系列EDA实验开发系统介绍5.2.2 GW48实验电路结构图5.2.3 GW48系统结构图信号名与芯片引脚对照表5.2.4 GW48系列EDA实验开发系统使用实例习题第6章 VHDL设计应用实例6.1 位加法器的设计6.2 位乘法器的设计6.3 位除法器的设计6.4 PWM信号发生器的设计6.5 数字频率计的设计6.6 数字秒表的设计6.7 单片机总线接口电路的设计6.8 交通灯信号控制器的设计6.9 高速PID控制器的设计6.10 FIR滤波器的设计6.11 CORDIC算法的应用设计6.12 综合计时系统的设计6.12.1 系统设计思路6.12.2 VHDL源程序6.12.3 仿真结果验证6.12.4 逻辑综合分析6.12.5 硬件逻辑验证习题第7章 EDA技术实验7.1 实验一:计数器电路的设计7.2 实验二:算术运算电路的设计7.3 实验三:PWM信号发生器的设计7.4 实验四:数字频率计的设计7.5 实验五:数字秒表的设计7.6 实验六:交通信号灯控制器的设计7.7 实验七:FIR滤波器的设计7.8 实验八:CORDIC算法的应用设计7.9 实验报告范例附录 利用WWW进行EDA资源的检索主要参考文献
书摘更新中
相关书籍推荐EDA未来的的设计主流与三代仿真技术的发展
工欲善其事,必先利其器。现今的芯片设计已经达到亿门级集成度,即便经验最丰富的设计工程师也无法凭手工完成。在芯片设计过程中,仿真验证是十分重要的一个环节,以确保芯片进入流片生产环节前符合预期设计性能要求。专门为芯片设计工程师提供仿真和验证工具的EDA细分行业是整个半导体行业生态链中最上游,最高端的节点。全球EDA市场基本上被三家公司霸占:、Synopsys和 Graphics,其中规模最小的Mentor Graphics已经被收购。经过30多年的行业发展和市场竞争,这三家主要的EDA供应商各有自己的独特优势,在全球半导体技术和市场的动态变化中保持相对平衡的格局。
Cadence Proum验证平台大显身手
专注于数字娱乐系统的晶晨半导体(AmLogic)最近推出一款新的多媒体系统级芯片(SoC),其设计周期比传统设计流程缩短2个月。在竞争异常激烈的消费电子市场,比同行提前2个月上市新产品意味着什么,业界人士应该都很清楚。而实现这一芯片设计背后的功臣就是来自Cadence的FPGA原型验证平台Protium S1。
新推出的Protium S1是Cadence基于FPGA的原型验证平台,晶晨是该验证平台的早期测试参与者之一。受益于该平台独有的设计实现和原型验证加速能力,晶晨可以比以往更早启动SoC设计的软件开发。
据晶晨半导体软件工程总监Jerry Cao称,使用Protium S1平台可以同时执行多个设计实例,大大提高了生产力。此外,该平台与Cadence Pallum Z1企业级硬件仿真加速器共享同一个通用编译流程,可以充分利用现有Cadence验证环境,保持平台间的功能一致性,进一步提高了设计效率。
图1:Protium S1平台的完整套件
在最近的深圳新产品媒体发布会上,Cadence公司全球副总裁石丰瑜,以及系统与验证事业部产品管理与运营副总裁Michal Siwinski,详细介绍了该公司新推出的这款FPGA原型验证平台。Protium S1平台具有如下性能优势:
1、高速原型设计:Protium S1平台具备先进的存储单元建模和实现能力,可将原型设计启动时间从数月降至数日,大幅提前固件开发日程。
2、创新的软件调试能力:Protium S1平台提供多种提高固件和软件生产力的功能,包括存储单元后门读写、跨分区转存波形、force-release语句,以及运行控制。
3、方便使用与部署:Protium S1平台和Palladium Z1共享一套通用编译流程,现有编译环境的重复利用率最高可达80%,两个平台之间可保持前端流程高度一致。
Protium S1采用Xilinx Virx Ultra Scale FPGA技术,设计容量比上一代平台提升6倍,性能提高2倍。它与Cadence Palladium Z1企业级仿真平台前端保持一致,使得初始设计启动速度较传统FPGA原型平台提升80%。除晶晨半导体外,Protium S1已被网络、消费者类和存储类市场多家厂商先期采用。相信在大规模SoC设计中,它将成为芯片设计工程师的得力助手。
并行仿真已成今年的EDA设计主流
在硬件仿真和FPGA原型验证的推动下,软件环境下的验证已经成为EDA的关键增长领域之一。芯片开发流程越来越需要考虑特定应用的专门需求,现今EDA设计领域的一大主题就是&物联网()&。物联网跨越多个应用领域,包括与移动设备相连的可穿戴电子产品、与机顶盒相连的智能家居、驾驶员辅助系统(ADAS)和车辆互联等联网汽车应用,以及用于实现自动化的智能工业、医疗保健、城市和能源管理等。
设计验证的四大核心引擎包括仿真、形式验证、硬件加速器和FPGA原型验证,除了继续改善这些核心引擎外,并行仿真也已经成为今年的EDA主流趋势。为满足这一设计需求,Cadence推出了基于多核并行运算技术的并行仿真平台Xcelium。
Xcelium是已经通过产品流片验证的第三代并行仿真平台,其单核版本的性能较Cadence上一代仿真平台平均可提高2倍,多核版本性能平均可提高5倍以上。这一并行仿真平台可以大幅加速系统开发,缩短系统级芯片(SoC)的设计时间,其主要亮点如下:
1、多核仿真:Xcelium源于Cadence收购的Rocketick带来的技术,是基于产品流片的并行仿真平台。利用Xcelium可显着缩短执行时间,在传输级(RTL)仿真可平均提速3倍,门级仿真可提高5倍,DFT仿真可提高10倍,节约项目时间达数周至数月。
2、应用广泛:Xcelium支持多种设计方式和IEEE标准,工程师无需重新编码即可提升性能。
3、使用方便:Xcelium的编译流程将设计与验证测试环境代码分配至最优引擎,并自动选取最优内核数目,提高执行速度。
4、采用多项专利技术:优化整个SoC验证时间的新技术包括为达到快速验证收敛的System
Testbench覆盖率和多核并行编译。
图2:Xcelium的并行仿真架构
Xcelium仿真平台适用于移动、图像、服务器、消费电子、物联网(IoT)和汽车等多个领域,已经在和ST等早期用户中得到了成功应用,并通过了产品流片验证。ARM公司技术服务产品部总经理Hobson Bullman表示,Xcelium并行仿真平台对于基于ARM的SoC设计,在门级仿真可获得4倍的性能提升,在RTL仿真可获得5倍的性能提升。基于这些早期试用结果,他相信Xcelium可以帮助ARM及其客户更快和更可靠地交付复杂的SoC。
&针对智能汽车和工业物联网应用中复杂的28nm FD-SOI SoC和设计,快速和可扩展的仿真是满足严苛开发周期的关键!&公司CPU团队经理Francois Oswald说,&我们使用Cadence Xcelium并行仿真平台,在串行模式DFT仿真中得到8倍的速度提升,所以数字和混合信号SoC验证团队选择Xcelium作为标准的仿真解决方案。&
芯片设计仿真技术的发展历史和未来趋势
针对芯片设计的第一代商用仿真技术出现于上世纪80年代后期,以Verilog-XL和Rad Sim等解释代码为代表。其工作机制是先编译成p代码再将其解释执行,因此运行速度极为缓慢,但足够应付当时的小型设计。
随着设计规模慢慢变大,90年代中期出现了编译代码仿真器来满足设计对速度、容量的要求。其工作原理是在运行仿真之前,将源代码转化为机器代码。这是第二代仿真技术,开发比较复杂,用了大概三年时间实现对当时的语言和使用模型仿真的支持。自此第二代仿真器一直是业内主流仿真器,并实现了对e、Syst、SystemVerilog、CPF和UPF等多种新标准的支持。
然而,随着芯片设计尺寸变得越来越大,越来越复杂,第二代仿真技术已无法满足市场需求。现在的SoC普遍包含百万门级以上的多核设计,测试这些芯片可能耗费数周之久。幸运的是,为了适应SoC尺寸的增长和复杂度的提升,仿真技术也在迅速发展。最近出现的并行仿真正是这样一种通过加快测试速度来提高验证效率的技术。
图3:三代仿真技术的发展
Cadence推出的Xcelium并行仿真平台支持标准多核服务器(多达64核)且采用细粒多进程技术,可以将编译代码仿真平台上运行的仿真分解成可加速和不可加速两个部分。可加速的部分(如门级网标或SystemVerilog RTL部分)由并行引擎处理,验证工程师无需改变测试平台、设计或断言。Xcelium在语言层运作,因此不依赖于工艺节点,也无所谓设计是一个CPU、处理器,还是一个数据通路设计。此外,设计层次也不会造成影响。
图4:第三代并行仿真技术将成为未来20年的主流
前两代仿真技术都各自发展了20年左右。我们有理由相信,全新的并行仿真技术将成为未来20年的仿真基础。
SoC设计中的主要仿真和验证工具
三大EDA供应商都能提供全套的芯片设计解决方案,包括模拟、数字前端、后端、DFT、Signoff等一整套设计工具。Cadence的强项在于模拟和混合信号的模拟仿真和版图设计,但其Signoff的工具偏弱。Synopsys的优势在于数字前端、数字后端和PTsignoff,而Mentor的优势是Calibre signoff和DFT。
此外,dence和Synopsys还提供IP授权(硬核和软核),这对中小规模的设计公司很具吸引力。授权的IP通常有memory、Serdes和Power management之类的研发成本或门槛相对较高的硬核。
下表列出了一些SOC设计中常用的主要仿真和验证工具,供大家参考。
原文标题:未来EDA设计的主流是什么?
文章出处:【微信号:Anxin-360ic,微信公众号:芯师爷】欢迎添加关注!文章转载请注明出处。
发布评论请先
探讨高频电磁场的多尺度模拟方法。在首篇文章中,我们将介绍必要的支撑理论和定义。后续的文章将探讨如何使用COMSOL Mult...
C66xx_0: Trouble Writing Memory Block at 0x400 on Page 0 of Length 0x200: (Error -1190 @ 0x400) Unable to acces...
& & 在设计模块过程中,使用到了放大器和结构上的分腔,但是这种做法容易导致模块盒在某一点谐振(自激),请问有什么...
原理图已附上,问题是在我汇编程序开头,就是一个简单的向8255写入控制字的问题却无论如何也写不进去,程序中DX为控制口地址,...
使用ADIsimPE仿真AAD8099(从官网下载了最新的CIR文件)提示“The circuit is too large too simulate with this ve...
我写一个程序,程序段如下:
EDA和单片机技术在键盘上的应用为了更深入的研究 EDA 技术和单片机技术,下面对键盘中, EDA ....
本文档的主要内容详细介绍的是星三角减压启动梯形图详细资料免费下载,GXworks2中仿真通过。
“EDA产业的耕耘是一个比较漫长的过程,从芯禾7年前创办,到现如今举办首届用户大会,更是见证了这一点....
根据DesignCon大会上的一项小组讨论,各供应商与研究人员正在将机器学习应用于棘手的芯片设计难题....
离线编程,我的理解就是在离线编程系统的软件中通过鼠标和键盘操作机器人的三维图形做事情(对比在线示教通....
在现代无线通信中,经常将多部电台安装在同一地点,并要求多部电台满足同时跳频模式。为了解决复杂电磁兼容....
大家好,在军工测试仿真领域,有很多电子设备的接口需要进行测试,其中接口类型包括模拟量,离散量,总线信号等等信号需要进行测...
在miltism上用AD633和AD630搭载了一个调制和解调电路(没有加低通滤波器)。这两个芯片单独仿真波形都可以出来。但是放在一个...
AD8475的spice模型有问题,无法导入TINA-TI中进行仿真计算...
人民币为何会突然贬值?目前普遍分析认为,此次人民币贬值原因主要是美元指数因避险情绪飙升和特朗普重燃中....
过去几年里,半导体产业风云变幻,除了大小企业之间的并购不断之外,作为新挑战者的中国企业也在全球市场上....
采用阴极保护的方法可以预防船体在恶劣的海洋环境中受腐蚀。外加电流阴极保护 (ICCP) 方法就是通过....
本文档的主要内容详细介绍的是单片机原理及应用电子教材的仿真实例详细资料合集免费下载,每个章节的pro....
随着技术的不断进步和利益攸关者需求的不断增多,以飞机和导弹为代表的航空装备正向着单项技术越来越尖端,....
EDA技术可面向三个不同的层次,即系统级、电路级和物理实现级。进入20世纪90年代以来,EDA技术逐....
“中兴事件”自爆发以来,从最初的国内一片哗然,到中美两国领导人的磋商斡旋,再到中兴再缴纳罚款、重新复....
在我们做工作站仿真时候常常只关注到仿真动作的完成,常常忽略了背景与LOGO其实会让你的仿真做的更生动....
有一个公认的准则就是在所有模拟电路印制电路板中,信号线应尽可能的短,这是因为信号线越长,电路中的感应....
动物试验是新药研发临床前研究关键的一环,不过,阿斯利康(以下简称AstraZeneca)为加速新药开....
随着电子电路仿真技术的不断发展,许多公司推出了各种功能先进、性能强劲的仿真软件。既然它们能百家争鸣,....
大家都知道,我们国家和美国在芯片领域差别可谓巨大,但是具体到数字IC,模拟IC和芯片制造,哪一部分和....
本人需要利用Vivado软件中的DDS核生成一个正弦信号。由于后期还要生成线性调频信号,如果直接编写....
Protel99se官方版是Altium公司在80年代末推出的EDA软件,在电子行业的CAD软件中,....
台湾地区从1980年代后期逐渐建立起完整的半导体上、中、下游供应链,Cadence可说见证并亲身参与....
当下,半导体行业正在掀起一波新的整合浪潮,为一些高风险的市场竞争铺平了道路,同时也给在产品预计生命周....
一家成立于2017年的EDA新创公司在日前于美国旧金山举行的年度设计自动化大会(DAC 2018)上....
这个参数确定的是移位寄存器的移位时钟个数。这个时钟个数取决于后面的Depth参数。其中第一个参数Fi....
HFSS天线仿真技巧:边界条件与后处理
转化为的浮点数可以是单精度也可以是双精度。
Altium Designer系统是Altium公司于2006年年初推出的一种电子设计自动化(Ele....
通过旗下的自动驾驶车辆公司——奥迪智能驾驶公司(Autonomous Intelligent Dri....
数字电路设计中一般包括3个大的阶段:源代码输入、综合和实现,而电路仿真的切入点也基本与这些阶段相吻合....
Proteus 软件的ISIS原理图设计界面同时还支持电路仿真模式VSM(虚拟仿真模式)。当电路元件....
本文档的主要内容详细介绍的是电子秤proteus仿真+程序资料的合集,有需要的可以下载参考学习下
利用4个dsp48e1模块,实现四路加法器,dsp48e1模块在手册中表示比较复杂,找了两个图,可以....
本文主要介绍了51单片机历程之protues仿真100例 .
本文主要介绍了EDA学习之万年历电路的设计.
电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。目前....
Max10 ADC IP - 可配置采样率、Dual ADC 工具包和逻辑仿真
本文主要介绍了频率计设计与仿真.
概念设计的可视化---介绍CosmosMotion及LabVIEW机械仿真视频教程
如何通过ModelSim-Altera生成测试台,并通过NativeLink运行RTL仿真
如何在Arria 10 PCI Express (PCIe)中更改串行(Serial)和PIPE仿真
锅炉燃烧系统是一个复杂的系统 ,有许多个变量 ,各变量之间具有耦合关系 ,很难建立精确的数学模型 。....
本视频教程主要主要介绍Xilinx公司开发设计流程中的各个功能模块,包括ISE中的设计输入,综合,设....
当然,层次化设计也有许多不可避免的缺陷,最突出就是来源于时序预估时产生的误差。这种误差往往使得做划分....
采用TI 公司新一代移相PWM控制芯片UCC3895,针对大功率全桥ZV-ZCS-PWM开关电源开发....
文章通过 Buck 变换器推导出移相全桥变换器的小信号电路模型 , 利用解析理论的方法求得变换器运行....
本文从带宽带和相角裕度、突加负载时的超调量以及非线性负载时的输出电压谐波畸变率三个方面,对几种常用的....
用户友好性是任何仿真程序商业成功的关键因素。集成电路和设备的日益复杂使得这一方面变得越来越重要。尽管....
通过数学的方法,把小功率开关电源系统表示成数学模型和非线性控制模型,建立一种开关电源全系统的仿真模型....
通过 Matlab 软件处理和仿真 , 分析所建立的控制系统模型的可行性。
使用Matlab/Simulink对电力电子系统进行建模和仿真作了简要论述,并对几种常见的电力....
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-400-050-8080
提示:如在投递及面试过程中遇到招聘方的任何收费行为,则存在诈骗风险,请务必提高警惕!举报
&&& 博川咨询(BC Executive)是一家以中,高端猎头服务及批量高级筛选为核心业务的公司。公司擅长领域包括制造,能源,汽车及零配件等,同时在一些专业岗位上也具有丰富的经验及良好的数据积累,如人力资源,财务,政府关系等等。我们的专长是满足客户高级职位招聘的需求,为其选择和提供适合的人选&&&& 博川咨询在深度,全面的市场搜寻方面具有无可替代的优势,行业知识的深度掌握,流程的严格控制,以及对客户需求的专业,快速反应使我们获得了客户的信任及良好的信誉。企业核心价值观:&&& 尊重&& 专业&& 诚信&& 进取公司邮箱:
[北京 昌平区]
101-300人
,可查看联系方式哦!
关注英才微信,轻松跟踪应聘进展
扫二维码,主管排队等你勾搭
ICP经营许可证编号 京ICP证060405号 京ICP备号-12 京公网安备37号 Copyright (C) 北京五八信息技术有限公司 版权所有FIR滤波器仿真--基于Quartus II的FIR Compiler II IP核的脚本仿真
FIR滤波器仿真
--基于Quartus II的FIR Compiler II IP核的脚本仿真
数字滤波器有更高的精度,更高的信噪比,更高的可靠性。最近和小伙伴探讨了一番FIR滤波器的相关知识,一起把FIR滤波器仿真了一下。总结加深印象,分享交流~
MATLAB R2014b,Quartus II v13.1,ModelSim SE 10.0
第一步 仿真并生成滤波器的系数
使用MATLAB里面的FDATOOL工具箱设计滤波器
1,设置滤波器参数响应类型选择低通滤波器;采用窗函数设计滤波器,在窗函数里面选择海明窗,也可以选择其它的窗函数,窗函数的特性不想赘述;滤波器阶数设为31阶,阶数越高占用资源越多,但是会有32个抽头系数,这要联系滤波器的传输函数;采样频率设为10MHz,截止频率设为200KHz,因为滤波器的输入数据是用dds生成的2路正弦波频率分别为100KHz和1MHz的叠加波形。
输入信号通过滤波器, 1MHz的波形被滤除,保留了100KHz的波形,截止频率设为200KHz并不是绝对的,只要满足要求即可,观察图1中的频率响应得100KHz:-0.58dB,1MHz:-46dB。
2,量化滤波器系数(图1左下小框)Set quantization parameters--&Fixed-point--&16bit量化
如果设计好滤波器之后直接导出系数的话,系数的精度比较高,所以会以科学计数法的形式来表示,但是FIR Compiler II IP核不能识别科学计数法,但是修改起来又比较麻烦,所以可以在导出系数之前对系数进行一次量化,这样导出的系数就方便多了。由图可见,16bit的量化对频率响应几乎没什么影响。
3,导出系数
File--&Export,就把系数导入到MATLAB的工作区,再把这些系数复制粘贴到一个TXT文件中,OK
MATLAB仿真滤波器
第二步 生成FIR Compiler II IP核
Quartus II--&Tools--&MegaWizard Plug-In Manager--&DSP--&Filters--&FIR Compiler II v13.1
1,设置IP核参数:滤波器类型Filter Type:Single Rate,系数位宽Coefficient Bit Width:12bit,输入位宽Input Bit Width:8bit,时钟频率Clock Frequency:50MHz,输入采样率:Input Sample Rate:10MSPS,其它默认设置
2,导入TXT系数文件,可看到相应的频率相应。
FIR Compiler II IP核参数设置
第三步 编写设计文件和测试文件
设计文件里面共有三个模块,一个是顶层模块,例化子模块,相互联系;一个是dds模块,产生两路正弦波100KHz和1MHz的相加波形,作为滤波器的输入,还有一个是FIR模块,例化FIR IP核,产生10MHz的采样脉冲给ast_sink_valid信号,在脉冲有效的时候将滤波器的数据取出。
强调一下ast_sink_valid这个信号,表示数据有效,只有为高时,滤波器才会工作。给一个10MHz的采样脉冲,也就是1/(10M)=100ns工作一次,对应了IP核设置时的10MSPS。而且要在脉冲为高的时候再把滤波器的数据取出,之前没考虑好这个地方,所以滤出来的数据一直是杂乱的。
module fir_top(
input wire
input wire
//复位低有效
output wire
[24:0] lpf_data//滤波输出数据
[7:0] dds_
(dds_data)
fir_IP fir_IP_inst(
.dds_data (dds_data),
.lpf_data (lpf_data)
module fir_IP(
input wire
input wire
input wire
[7:0] dds_data,
output reg
[24:0] lpf_data
fs_//10MHz的脉冲
always @ (posedge sclk or negedge rst_n)
if(rst_n == 1'b0)
cnt &= 3'd0;
else if(cnt == 3'd4)
cnt &= 3'd0;
cnt &= cnt + 1'b1;
always @ (posedge sclk or negedge rst_n)
if(rst_n == 1'b0)
fs_pulse &= 1'b0;
else if(cnt == 3'd4)
fs_pulse &= 1'b1;
fs_pulse &= 1'b0;
//FIR IP核例化
wire [24:0] lpf_
wire [1:0] lpf_
fir_lpf_inst(
//IP核内部工作时钟
(rst_n), //复位,低有效
.ast_sink_data
(dds_data), //输入数据
.ast_sink_valid
(fs_pulse), //采样脉冲
.ast_sink_error
//输入错误,使其无效
.ast_source_data (lpf_datar), //输出数据
.ast_source_valid (lpf_valid), //输出有效
.ast_source_error (lpf_error) //输出错误
always @ (posedge sclk or negedge rst_n)
if(fs_pulse == 1'b1)
lpf_data &= lpf_//在valid信号有效的时候才输出数据
module dds(
input wire
sclk, //50MHz
input wire
output wire
[7:0] o_wave
FRQ_W1 = 32'd8589935;//100K
FRQ_W2 = 32'd;//1M
[31:0] phase_sum1,phase_sum2;
[7:0] addr1,addr2;
[7:0] o_wave1,o_wave2;
[8:0] wave_
//产生2路信号的地址
always @(posedge sclk or negedge rst_n)
if(rst_n == 1'b0)
phase_sum1 &= 32'd0;
phase_sum1 &= phase_sum1 + FRQ_W1;
assign addr1 = phase_sum1[31:24];
always @(posedge sclk or negedge rst_n)
if(rst_n==1'b0)
phase_sum2 &= 32'd0;
phase_sum2 &= phase_sum2 + FRQ_W2;
assign addr2 = phase_sum2[31:24];
//2路波形相加输出
assign wave_plus = {o_wave1[7],o_wave1} + {o_wave2[7],o_wave2};
assign o_wave = wave_plus[8:1]; //相加结果寄存器是9位,取高8位作为输出结果
//调用2次RAM取数据
ram_8x256_sp ram_8x256_sp_inst1(
.address ( addr1 ),
( o_wave1 )
ram_8x256_sp ram_8x256_sp_inst2(
( addr2 ),
( o_wave2 )
testbench测试文件
`timescale 1ns/1ns
module tb_fir();
sclk,rst_n;
[24:0] lpf_
initial begin
rst_n = 0;
rst_n = 1;
always #10 sclk &= ~
//例化顶层模块
fir_top_inst(
.lpf_data (lpf_data)
第四步 编写测试脚本并仿真
生成FIR Compiler II IP核的时候会附带生成一个sim的文件夹,里面有两个tcl脚本,在这两个脚本的基础上编写我们的测试脚本。脚本的编写参考了尤老师的课程,有兴趣的旁友可以去看看。脚本里面的路径需要修改(Line39)。
.main clear
# Create compilation libraries
proc ensure_lib { lib } { if ![file isdirectory $lib] { vlib $lib } }
ensure_lib
./libraries/
ensure_lib
./libraries/work/
./libraries/work/
work_lib ./libraries/work/
if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] {
ensure_lib
./libraries/altera_ver/
altera_ver
./libraries/altera_ver/
ensure_lib
./libraries/lpm_ver/
./libraries/lpm_ver/
ensure_lib
./libraries/sgate_ver/
./libraries/sgate_ver/
ensure_lib
./libraries/altera_mf_ver/
altera_mf_ver
./libraries/altera_mf_ver/
ensure_lib
./libraries/altera_lnsim_ver/
altera_lnsim_ver ./libraries/altera_lnsim_ver/
ensure_lib
./libraries/cycloneive_ver/
cycloneive_ver
./libraries/cycloneive_ver/
ensure_lib
./libraries/altera/
./libraries/altera/
ensure_lib
./libraries/lpm/
./libraries/lpm/
ensure_lib
./libraries/sgate/
./libraries/sgate/
ensure_lib
./libraries/altera_mf/
./libraries/altera_mf/
ensure_lib
./libraries/altera_lnsim/
altera_lnsim
./libraries/altera_lnsim/
ensure_lib
./libraries/cycloneive/
cycloneive
./libraries/cycloneive/
if ![info exists QUARTUS_INSTALL_DIR] {
set QUARTUS_INSTALL_DIR "D:/altera/13.1/quartus/"
if ![ string match "*ModelSim ALTERA*" [ vsim -version ] ] {
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.v"
-work altera_ver
"$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.v"
-work lpm_ver
"$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.v"
-work sgate_ver
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.v"
-work altera_mf_ver
vlog -sv "$QUARTUS_INSTALL_DIR/eda/sim_lib/mentor/altera_lnsim_for_vhdl.sv"
-work altera_lnsim_ver
"$QUARTUS_INSTALL_DIR/eda/sim_lib/cycloneive_atoms.v"
-work cycloneive_ver
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_syn_attributes.vhd"
-work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_standard_functions.vhd"
-work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/alt_dspbuilder_package.vhd"
-work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_europa_support_lib.vhd"
-work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives_components.vhd" -work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_primitives.vhd"
-work altera
"$QUARTUS_INSTALL_DIR/eda/sim_lib/220pack.vhd"
"$QUARTUS_INSTALL_DIR/eda/sim_lib/220model.vhd"
"$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate_pack.vhd"
-work sgate
"$QUARTUS_INSTALL_DIR/eda/sim_lib/sgate.vhd"
-work sgate
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf_components.vhd"
-work altera_mf
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_mf.vhd"
-work altera_mf
"$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_lnsim_components.vhd"
-work altera_lnsim
"$QUARTUS_INSTALL_DIR/eda/sim_lib/cycloneive_atoms.vhd"
-work cycloneive
"$QUARTUS_INSTALL_DIR/eda/sim_lib/cycloneive_components.vhd"
-work cycloneive
#以上的文件格式基本固定,不用多管
vlog ./tb_fir.v
vlog ./../design/*.v
vlog ./../quartus_prj/ipcore_dir/ram_8x256_sp/*.v
vlog ./../quartus_prj/ipcore_dir/fir_lpf/*.v
vlog ./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/*.v
#vhdl文件的编译有顺序,不同的工程只是最后 3 个vhdl文件名需要更改
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_math_pkg_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_lib_pkg_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_avalon_streaming_controller_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_avalon_streaming_sink_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_avalon_streaming_source_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/auk_dspip_roundsat_hpfir.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/dspba_library_package.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/dspba_library.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/fir_lpf_0002_rtl.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/fir_lpf_0002_ast.vhd
./../quartus_prj/ipcore_dir/fir_lpf/fir_lpf/fir_lpf_0002.vhd
#链接库文件,编译
vsim -voptargs=+acc -L work -L work_lib -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L altera -L lpm -L sgate -L altera_mf -L altera_lnsim -L cycloneive work.tb_fir
#添加需要仿真的波形
wave tb_fir/fir_top_inst/sclk
wave tb_fir/fir_top_inst/rst_n
wave tb_fir/fir_top_inst/fir_IP_inst/fir_lpf_inst/ast_sink_valid
wave tb_fir/fir_top_inst/fir_IP_inst/fir_lpf_inst/ast_source_valid
wave -format analog -height 100 -max 127
tb_fir/fir_top_inst/dds_data
tb_fir/fir_top_inst/lpf_data
从测试脚本可以看出,这种方法的仿真比较繁琐,ModelSim编译库的时间也比较长,所以打算下一篇学习总结一下联合仿真的大致方法。
FPGA数字信号处理(四)Quartus FIR IP核实现
基于Quartus II和MATLAB的FIR滤波器设计与仿真(二)
FIR滤波器仿真----基于Quartus II的FIR II IP核与ModelSim-Altera的联合仿真
利用FPGA的IP核实现FIR滤波器
基于Quartus II 和MATLAB 的FIR滤波器设计与仿真(一)
FIR滤波器(1)- 基础知识
IP核的的使用及延时问题
Quatus II 15.0版IP核调用方法
FIR with FPGA[1].全并行FIR实现
没有更多推荐了,

我要回帖

更多关于 altium滤波器怎样画 的文章

 

随机推荐