版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一EDA软件工具的使用电子设计自动化技术实验课程Contents课程目录实验一EDA软件工具的使用01EDA技术概述02FPGA与CPLD结构原理03VerilogHDL基础语法04组合电路设计实践05时序电路设计实践06EDA工具软件操作07实验案例:模可控计数器CHAPTER01EDA技术概述从技术背景、发展历程到应用领域的全景认知FUNDAMENTALS什么是EDA技术EDA(电子设计自动化)是利用计算机辅助工具完成电子系统设计的核心技术,涵盖从逻辑设计到物理实现的全流程,是现代集成电路产业的技术基石。01概念定义EDA全称ElectronicDesignAutomation,通过软件工具实现电路设计、仿真、验证和版图生成的自动化02全流程覆盖覆盖数字与模拟电路设计全流程,包括前端逻辑综合、后端布局布线、时序分析与信号完整性验证03产业刚需现代芯片集成度达百亿晶体管级别,人工设计已不可行,EDA工具成为IC设计的刚性需求04普惠创新EDA技术降低了芯片设计门槛,使中小团队也能参与复杂SoC系统的开发与创新HISTORYEDA技术发展历程EDA技术从20世纪70年代的计算机辅助绘图起步,历经逻辑综合、高层次设计、系统级集成等阶段演进,当前正与AI技术深度融合,持续推动芯片设计能力边界扩展。1970s起步阶段以计算机辅助绘制电路图和简单版图编辑为主,功能局限于图形输入与DRC检查,奠定了EDA工具的基础框架CADDRC图形化设计奠基1980–90s专业化阶段Cadence、Synopsys等专业公司崛起,逻辑综合与自动布局布线技术走向成熟,设计自动化程度显著提升SynthesisP&R商业化工具成熟2000s系统级阶段支持SoC系统集成设计,IP复用方法论普及,软硬件协同设计成为主流,芯片设计效率大幅提升SoCIPReuse复杂系统集成化2020s智能化阶段AI辅助设计优化、机器学习驱动的时序收敛与功耗分析成为行业新方向,EDA进入智能决策时代AIML智能设计新范式ApplicationDomainsEDA技术主要应用领域EDA技术应用覆盖集成电路设计、FPGA开发、PCB布局布线、MEMS传感器等多个领域,是支撑消费电子、汽车电子、通信设备、数据中心等产业创新的核心技术基础设施。集成电路设计CPU/GPU/SoC等数字芯片的逻辑综合、时序分析与物理实现模拟/混合信号电路的版图设计与寄生参数提取SoCFPGA/CPLD开发可编程逻辑器件的配置、综合与比特流生成广泛应用于通信基站、工业控制、AI推理加速等场景AI推理PCB设计从原理图输入到多层板布局布线的完整流程涵盖消费电子、汽车电子、医疗设备等行业应用多层板EDATOOLCHAIN主流EDA工具软件EDA工具市场呈现高度专业化格局:IC设计由Synopsys、Cadence、SiemensEDA三巨头主导,FPGA开发以Quartus和Vivado为主流,PCB设计领域AltiumDesigner与CadenceAllegro各有优势。IC设计Synopsys(DesignCompiler/ICCompiler)、Cadence(Innovus/Virtuoso)、SiemensEDA(原Mentor)三巨头主导市场。3巨头FPGA开发IntelQuartusPrime适用于Cyclone/Stratix系列,AMDVivado适用于Artix/Kintex/UltraScale系列。2平台PCB设计AltiumDesigner界面友好适合中小型项目,CadenceAllegro适合高速多层板设计。2主流开源替代KiCad功能日趋完善,适合教育场景与个人开发者,社区生态活跃。KiCadCHAPTER02FPGA与CPLD结构原理理解可编程逻辑器件的内部架构与工作机制OVERVIEW可编程逻辑器件概述可编程逻辑器件(PLD)通过编程配置内部电路结构实现灵活逻辑功能,具有开发周期短、可反复擦写、设计灵活等优势,是现代数字系统快速原型验证与小批量生产的核心器件。可编程逻辑结构PLD内部电路结构可通过编程改变,实现用户自定义的逻辑功能,无需定制芯片即可完成数字系统设计。支持多次编程配置,适应不同应用场景需求。PLD灵活高效开发设计灵活性高、开发周期短(无需流片)、可反复擦写编程,非常适合快速原型验证与迭代。降低研发成本,缩短产品上市时间。快速迭代规模与结构分类简单PLD(PAL/GAL)、CPLD复杂可编程逻辑器件、FPGA现场可编程门阵列,覆盖不同规模需求。从低密度到高密度,满足多样化应用。FPGA多领域应用通信协议处理、工业控制逻辑、图像处理加速、AI推理加速、接口桥接等广泛的应用场景。高性能低功耗,赋能智能计算时代。多领域STRUCTURE&PRINCIPLECPLD的结构原理CPLD采用基于乘积项的与或阵列结构,由多个逻辑宏单元通过可编程互连阵列组成,具有延时确定、功耗低、上电即工作等特点,适合实现复杂组合逻辑与控制逻辑。宏观结构由多个逻辑阵列块(LAB)组成,每个LAB包含若干宏单元可编程互连阵列(PIA)连接各LAB,实现模块间信号路由I/O单元分布在芯片四周,支持多种电平标准与驱动能力配置LAB+PIA乘积项原理与门阵列生成输入变量的各种乘积项(最小项或蕴含项)或门阵列将乘积项组合成所需的逻辑函数表达式每个宏单元包含D触发器,可配置为寄存器或锁存器输出AND-OR阵列典型产品AlteraMAXII/7000系列:低功耗、低成本,适合简单控制应用XilinxXC9500/XL系列:5V/3.3V兼容,工业级温度范围LatticeispMACH系列:超低功耗设计,支持1.8V核心电压MAX·XC9500·ispMACHARCHITECTUREFPGA的结构原理FPGA基于查找表(LUT)原理构建,由大量可配置逻辑块、可编程互连资源和I/O模块组成,逻辑资源丰富、适合复杂时序设计,但需外部配置存储器加载比特流后工作。查找表原理LUT本质是小型SRAM,存储逻辑函数真值表4输入LUT为16位存储器,6输入LUT为64位,可实现任意组合逻辑LUT输出可直连触发器,构成RTL基本单元LUT宏观架构CLB/Slice含LUT、触发器、进位链和多路选择器可编程互连通过开关矩阵实现灵活信号路由硬核模块:BlockRAM、DSP乘法器、PLL/MMCM时钟管理CLB配置方式基于SRAM工艺,断电后配置信息丢失,需外部Flash存储比特流支持主动/被动配置模式,上电后自动加载或由外部控制器加载SRAMCOMPARISONCPLD与FPGA特性对比CPLD与FPGA在结构原理、延时特性、功耗、规模等方面存在显著差异:CPLD适合小规模、延时敏感的控制逻辑,FPGA适合大规模、高性能的复杂数字系统设计。CPLD与FPGA核心特性对比对比维度CPLDFPGA结构原理乘积项(与或阵列)查找表(LUT)延时特性确定、可预测取决于布局布线逻辑规模数百至数千宏单元数万至百万逻辑单元静态功耗较低相对较高配置方式非易失,上电即工作需外部加载比特流适用场景控制逻辑、胶水逻辑DSP、SoC、高速接口CPLD与FPGA各有优势,需根据设计规模、性能要求和成本预算选择合适器件Chapter03VerilogHDL基础语法掌握硬件描述语言的核心概念与基本语法结构FUNDAMENTALSVerilogHDL基本概念VerilogHDL是用于描述数字电路结构与行为的硬件描述语言,代码经综合工具转换为门级网表。模块(module)是Verilog的基本设计单元,包含端口定义和内部逻辑描述。硬件描述本质Verilog描述的是硬件电路而非软件程序,代码最终被综合为实际的门级逻辑电路门级网表模块设计单元模块(module)是基本设计单元,以module开始、endmodule结束,可被其他模块例化调用module端口类型声明端口类型:input(输入端口)、output(输出端口)、inout(双向端口),需明确声明位宽I/OPort内部描述方式模块内部包含连续赋值(assign)、过程块(always/initial)和元件例化等描述方式alwaysDATATYPESVerilog数据类型Verilog核心数据类型包括线网类型(wire)和寄存器类型(reg):wire表示需持续驱动的物理连线,reg用于过程块中存储值。正确理解数据类型是编写可综合代码的基础。wire线网类型表示物理连线,必须由驱动源(assign或门级输出)持续驱动,不能存储值wirereg寄存器类型用于always/initial块中赋值,可保持值,综合时可能生成触发器或组合逻辑reg向量定义wire[7:0]data表示8位线网,高位在前低位在后,支持位选和域选操作[7:0]其他类型integer(32位有符号整数)、real(双精度浮点)、parameter(常量参数)integerOperatorsVerilog基本运算符Verilog运算符涵盖算术、关系、逻辑、位运算、缩减、移位和条件等多种类型,正确选用运算符对代码可读性和综合结果质量有重要影响。算术与关系运算算术运算:+−*/%,其中除法运算在硬件实现时代价较高,需谨慎使用关系运算:><>=<===!=,用于比较操作数大小关系+−*/%逻辑与位运算逻辑运算:&&||!,运算结果为1位布尔值,主要用于条件判断和控制流位运算:&|^~,按位操作,用于数据通路设计和掩码处理&&||!移位与条件运算移位运算:<<>><<<>>>,包括算术移位和逻辑移位,用于快速乘除和位提取条件运算:cond?a:b,三目运算符实现简洁的多路选择逻辑?:VerilogHDL连续赋值与过程块Verilog通过assign连续赋值描述组合逻辑,通过always/initial过程块描述组合或时序逻辑。敏感列表的正确书写是区分组合逻辑与时序逻辑的关键。CONTINUOUSassign连续赋值assigny=a&b用于组合逻辑,右侧表达式变化时立即更新左侧wire值,如assigny=a&bwirePROCEDURALalways过程块敏感列表触发执行,可描述组合逻辑或时序逻辑,赋值目标必须是reg类型regCOMBINATIONAL组合逻辑always*always@(*)敏感列表写*或列出所有输入,如always@(*),综合为纯组合电路@(*)SEQUENTIAL时序逻辑alwaysalways@(posedgeclk)敏感列表包含时钟沿,如always@(posedgeclk),综合为触发器电路posedgeclkCHAPTER04组合电路设计实践通过半加器、多路选择器、加法器等案例掌握组合逻辑设计方法HALFADDER·DIGITALLOGIC半加器电路设计半加器是最基础的加法单元,实现两个1位二进制数相加,输出和与进位。逻辑表达式为sum=a^b、cout=a&b,是理解更复杂加法器设计的起点。真值表分析输入a、b各1位,输出sum(和)和cout(进位)各1位0+0=00,0+1=01,1+0=01,1+1=10(sum=0,cout=1)逻辑推导:sum=aXORb,cout=aANDbXOR/ANDVerilog实现assign连续赋值:assignsum=a^b;assigncout=a&b;always过程块:always@(*)beginsum=a^b;cout=a&b;endassign/always设计要点半加器无进位输入cin,仅适用于最低位加法,无法处理来自低位的进位信号多位加法需使用全加器或串行进位/超前进位加法器,全加器引入第三个输入端实现进位链传递全加器扩展VERILOGHDL·组合逻辑多路选择器设计多路选择器(MUX)根据选择信号从多个输入中选出一个输出,是数据路由与总线控制的核心组件。Verilog可通过条件运算符、case语句或if-else实现,需注意分支完整性避免生成锁存器。2选1MUXsel=0输出a,sel=1输出b,使用条件运算符assigny=sel?b:a实现最简洁的组合逻辑。该结构在数据通路选择、信号切换等场景中广泛应用,逻辑延迟仅为一个2输入门。2:14选1MUX2位sel选择4路输入之一,使用case语句实现结构清晰且易于扩展。通过级联2选1单元或树形结构可构建8选1、16选1等多路选择器。4:1分支完整性case/if语句必须覆盖所有输入组合或设置default分支,否则综合工具会推断生成锁存器,导致时序异常。完整分支确保组合逻辑透明性。default参数化设计通过parameter定义数据位宽和选择路数,使模块可在不同项目中灵活复用,无需重复编写逻辑。参数化设计提升代码可维护性和可移植性。parameterADDERDESIGNVerilog加法器设计加法器设计有串行进位和超前进位两种主要结构:串行进位结构简单但延迟随位数线性增长,超前进位通过并行计算进位实现高速运算但硬件复杂度高。串行进位加法器01多个全加器级联,低位cout连接高位cin,进位逐级传递02n位加法器延迟约为n个全加器延迟之和,位数多时速度慢03Verilog直接用+运算符描述:assign{cout,sum}=a+b+cinn×TFA超前进位加法器01通过进位生成信号G和传播信号P并行计算各级进位02所有进位同时产生,延迟与位数无关,适合高速运算场景03硬件复杂度随位数平方增长,通常按4位分组级联实现G·P并行设计建议01优先使用+运算符,让综合工具自动优化加法器结构02关键路径优化时可手动例化IP核或指定综合约束RTL优先CHAPTER05时序电路设计实践掌握触发器、计数器、寄存器等时序逻辑的Verilog设计方法VerilogSequentialLogicD触发器设计D触发器是时序逻辑的基本存储单元,在时钟边沿采样输入并更新输出。Verilog通过always@(posedgeclk)描述,可配置异步复位或同步复位功能,是构建寄存器和状态机的基础。基本D触发器上升沿触发:always@(posedgeclk)q<=d,时钟边沿采样输入输出Q在时钟边沿更新,两个时钟边沿之间保持值不变posedgeclk异步复位敏感列表加入posedgerst_n,复位信号有效时立即清零不受时钟控制,响应快但可能引入毛刺rst_n同步复位敏感列表仅有时钟,复位判断在if语句内,时钟边沿生效时序可控但需等待时钟沿,复位脉冲宽度需满足建立时间posedgerstCounterDesign计数器设计计数器是数字系统核心时序组件,用于计数、分频和定时。n位二进制计数器范围0至2n-1,Verilog通过时钟沿触发的always块实现,可通过参数化设计支持模值可配置。二进制计数器每个时钟周期加1,计满后归零,n位计数器范围0至2n-10→2n-1模M计数器计数到M-1后归零,通过比较器判断计数值实现任意模值MOD-M可预置计数器支持加载初始值,通过load信号控制,适用于可编程分频器设计LOADVerilog实现always@(posedgeclk)中判断count==MAX则归零,否则count<=count+1always@(clk)SHIFTREGISTER移位寄存器设计移位寄存器在时钟控制下逐位移动数据,支持串并转换、数据延迟和序列检测等功能。Verilog通过移位运算符或拼接运算符实现,是通信接口和数据处理的基础组件。基本移位左移q<={q[6:0],sin},右移q<={sin,q[7:1]},拼接运算符实现循环移位。通过非阻塞赋值在时钟边沿触发,确保数据同步更新。SLL/SRL串入并出SIPO串行数据逐位移入,并行输出所有位,用于串行数据接收。常见于UART、SPI等通信协议的接收端设计,节省引脚资源。Serial→Parallel并入串出PISO并行数据一次性加载,逐位串行输出,用于串行数据发送。配合加载使能信号控制数据输入时机,广泛应用于数据发送器设计。Parallel→Serial双向移位寄存器通过方向控制信号选择左移或右移,支持灵活的数据处理需求。使用多路选择器实现方向切换,适用于双向通信接口。BidirectionalCHAPTER06EDA工具软件操作掌握QuartusPrime从设计输入到硬件验证的完整开发流程FPGADevelopmentWorkflowFPGA开发完整流程FPGA开发包含设计输入、功能仿真、逻辑综合、布局布线、时序仿真和编程下载六个核心步骤,前端验证逻辑正确性,后端确保时序收敛并完成硬件实现。01设计输入编写Verilog/VHDL代码或绘制原理图,定义模块层次与端口接口Verilog/VHDL02功能仿真使用ModelSim等工具验证逻辑功能正确性,不考虑门延时和布线延时ModelSim03逻辑综合将RTL代码转换为门级网表,优化面积和速度,生成EDIF或VQM文件RTL→Gate04布局布线将网表映射到FPGA具体CLB/IOB资源,完成信号路由,生成比特流文件CLB/IOB05时序仿真加入实际门延时和布线延时,验证设计是否满足建立/保持时间约束Setup/Hold06编程下载通过JTAG或配置Flash将比特流加载到FPGA,进行硬件在环测试验证JTAG/FlashQUARTUSPRIME·TUTORIALQuartus项目创建与代码输入QuartusPrime通过项目向导完成项目配置,包括路径设置、器件选择和文件组织。代码输入使用内置编辑器,支持语法高亮和自动补全,编译前需确保顶层模块名与项目名一致。项目创建步骤01File→NewProjectWizard,设置项目路径、名称和顶层模块名02选择目标器件型号,如CycloneIVEP4CE6E22C8或Cyclone10LP系列03配置EDA工具链,指定仿真工具(ModelSim)和综合工具选项CycloneIV/10LP代码输入与编译01File→New→VerilogHDLFile,使用内置编辑器编写设计代码02保存文件名与模块名一致,添加至项目文件列表03Processing→StartCompilation启动编译,检查综合报告与警告信息VerilogHDL常见问题排查01编译错误:检查语法错误、端口不匹配、未定义信号等02警告处理:关注锁存器生成、不完整敏感列表等关键警告Error/WarningSIMULATION&VERIFICATION仿真测试与Testbench编写仿真验证是确保设计正确性的关键步骤,通过Testbench生成激励信号并观察输出响应。ModelSim波形窗口提供直观的时序分析,需在硬件下载前充分验证逻辑功能。Testbench结构例化被测模块DUT,生成时钟、复位和输入激励,监测输出信号DUT时钟生成initial块中用forever循环翻转,如forever#5clk=~clk产生100MHz时钟100MHz激励施加用initial块按时间顺序设置输入值,如#10a=1;#20a=0;模拟各种输入组合initial波形观察ModelSim添加信号到Wave窗口,检查输出是否符合真值表和时序要求TruthTable引脚锁定与硬件下载引脚锁定与硬件下载引脚锁定将设计信号映射到FPGA物理引脚,需参照开发板原理图正确分配。编译生成比特流后通过JTAG下载器烧录,完成从软件设计到硬件验证的闭环。引脚分配Assignments→PinPlanner打开引脚规划器,参照开发板原理图分配引脚时钟信号分配到晶振引脚,按键/开关分配到输入引脚,LED分配到输出引脚设置I/O电平标准,如3.3VLVTTL或2.5VLVCMOS,匹配外围电路要求PinPlanner比特流生成引脚锁定后重新编译,生成.sof(SRAM配置)和.pof(Flash配置)文件.sof文件用于JTAG临时下载,断电丢失;.pof文件烧入Flash,上电自动加载编译过程包括综合、布局布线、时序分析,确保设计满足时序约束.sof/.pof硬件下载Tools→Programmer选择下载器和配置文件,通过USB-Blaster连接开发板点击Start下载比特流,观察LED/数码管/串口输出验证功能正确性验证成功后可将配置固化到Flash,实现断电保持的永久配置JTAGChapter31·EDAToolsSignalTapII逻辑分析仪使用SignalTapII是Quartus内置的片上逻辑分析工具,可在FPGA运行时捕获内部信号波形,是硬件调试、时序问题排查和复杂逻辑验证的利器。STEP01创建.stp文件Tools→SignalTapII,添加待观测信号,设置采样深度和时钟源.STPFILESTEP02触发配置设置触发条件(边沿/电平/组合),支持多级触发和窗口触发模式TRIGGERSTEP03编译集成重新编译后SignalTap逻辑自动插入FPGA,占用少量逻辑资源和BlockRAMCOMPILESTEP04波形捕获下载后点击StartCapture,触发满足后显示实时波形,支持数据导出分析CAPTURECHAPTER07实验案例:模可控计数器从需求分析到硬件验证的完整设计实践ExperimentRequirements实验需求与设计规格模可控计数器实验要求设计一个8位计数器,支持动态设置计数模值、异步复位和进位输出,综合考察时序逻辑描述、条件判断和硬件验证能力。模可控计数器端口定义端口名称方向位宽功能说明clkinput1时钟输入,上升沿触发rst_ninput1异步复位,低电平有效modinput8模值设置,计数上限countoutput8计数值输出coutoutput1进位输出,计数到mod-1时为高模可控计数器包含时钟、复位、模值输入和计数/进位输出,支持动态配置计数范围IMPLEMENTATIONVerilog代码实现模可控计数器采用异步复位、同步计数的always块结构,通过比较当前计数值与mod-1实现模值控制,使用非阻塞赋值确保正确的时序逻辑综合结果。异步复位always@(posedgeclkornegedgerst_n)rst_n=0时count<=8'd0,cout<=1'b0,实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁合金高炉冶炼工安全生产基础知识评优考核试卷含答案
- 水工监测工岗前技术操作考核试卷含答案
- 生活垃圾填埋作业工技能测试考核试卷含答案
- 喷涂喷焊工岗前岗位水平考核试卷含答案
- 浴池服务员进度管理水平考核试卷含答案
- 三七灰土处理方案
- 全国计算机等级考试四级数据库工程师真题题库及答案
- 2026年最-新通信工程师考试通信专业实务(终端与业务)试题与答案
- 专利壁垒构建在花边包芯丝四骨袜筒项目投资中的护城河效应
- Z世代情绪消费驱动下糖水雪梨罐头包装美学与社交货币属性
- 2026年山东发展投资控股集团有限公司权属企业社会招聘(82人)考试备考试题及答案详解
- 2026年质量员(土建施工)基础知识模考试题(附参考答案解析)
- 2026中国农业大学烟台研究院非事业编实验系列管理服务岗工勤岗招聘4人(二)笔试题库含答案详解(综合题)
- (2026秋新版)西师大版四年级数学上册全册教案
- 统编版道德与法治五年级上册《开学第一课》课件
- 福建幼儿园保育教育活动常规
- 高中化学人教版(2019)必修第一册全套教案
- GB/T 13908-2002固体矿产地质勘查规范总则
- 基础物理学:光学导言
- 新入职教师培训课件
- 变电站站用交直流电源设备管理细则(附录)
评论
0/150
提交评论