EDA技术及应用实验报告(完整版纯手打)

合集下载

EDA实验报告

EDA实验报告

EDA技术与应用实验报告一、实验目的1、熟悉QUARTEUS-Ⅱ软件的使用方法,和实现FPGA电路设计的一般流程。

2、了解VHDL语言编程。

3、了解基本的自顶向下模块化设计思想。

4、学习用FPGA实现直接数字频率合成器(DDS)的设计。

二、实现内容1.利用DDS的方案,产生一个正弦波输出,频率可控。

2.利用DDS产生调制信号和载波信号,并根据所学的高频电子线路知识产生标准调相波。

三、实验原理DDS即数字合成器,是一种新型的频率合成器。

具有相对带宽大,频率转换时间短,分辨率高和相位连续可调等优点,很容易实现频率,相位和幅度的调制,广泛应用于通信领域。

DDS的基本结构如下图所示,主要有相位累加器,相位调制器、正弦波数据表(ROM)和D/A转换器构成。

相位累加器由N位加法器和N位寄存器构成。

每来一个时间clock,加法器就将频率控制字forword与累加寄存器输出的累加相位数据相加,相加的结果又反馈至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。

这样,相位累加器在时钟作用下,相位累加器便把频率控制字累加一次,相位累加器输出的数据就是合成信号的的相位,相位累加器的溢出频率就是DDS输出的信号频率。

用相位累加器输出的数据作为波形存储器(ROM)的相位采样地址,这样就可把存储在波形存储器内的波形采样值(二进制编码)经查表找出,完成相位到幅度的转换。

波形存储的输出送到D/A的转换器,由D/A转换器将数字信号转换成模拟线号输出,DDS 信号的流程示意图如图所示:CLOCKDDS的基本结构图DDS工作流程图由于相位累加器为N位,相当于把正弦信号在相位上的精度定位N位(N 的取值范围一般为24—32),所以分辨率为1/2^N。

若系统时钟频率的Fclk,频率控制字fword为1,则输出频率为Fout=Fclk/2^N,这个频率相当于“基频”。

若fword为B,则输出频率为:Fout=(B*Fclk)/2^N当系统输出时钟频率Fclk不变时,输出信号频率由频率控制字M所决定。

《EDA技术及应用》实验报告

《EDA技术及应用》实验报告

仲恺农业工程学院实验报告纸自动化学院(院、系)工业自动化专业144班组课学号201421714406姓名黄国盛实验日期2017年11月4日教师评定实验一组合逻辑电路的VHDL实现一、实验目的掌握使用VHDL语言进行组合逻辑电路设计的方法。

二、实验设备及软件IBM PC机一台三、实验内容按照Quartus II软件的使用说明进行Quartus II集成开发环境的仿真调试练习,然后按照以下内容建立文件并编译仿真调试。

(1)用VHDL语言设计一个2选1多路选择器,对程序进行编译和仿真,并记录仿真波形。

提示:如下图所示,a和b分别为两个数据输入端,s为通道选择控制信号输入端。

当s 为低电平时,a输入端的信号传送至y;当s为高电平时,b输入端的信号传送至y。

实现代码如下:创建Vector Waveform File并保存,导入Node,并设置合适的输入信号波形以验证程序功能。

Edit—Grid Size—Time period设置为20ns;Edit—End Time设置为20us;Processing —Simulator Tool—Simulation mode设置为Functional功能性仿真;仿真结果如下图所示:图1二选一多路选择器仿真结果(2)用VHDL语言设计一个1位半加器,对程序进行编译和仿真,并记录仿真波形。

提示:半加器真值表如下表所示。

实现代码如下:创建Vector Waveform File并保存,导入Node,并设置合适的输入信号波形以验证程序功能。

Edit—Grid Size—Time period设置为20ns;Edit—End Time设置为20us;Processing —Simulator Tool—Simulation mode设置为Functional功能性仿真;仿真结果如下图所示:图21位半加器仿真结果(3)用VHDL语言设计一个三态缓冲器,对程序进行编译和仿真,并记录仿真波形。

EDA技术及应用实训报告

EDA技术及应用实训报告

桂林电子科技大学信息科技学院《EDA技术及应用》实训报告学号1252100301姓名指导教师:覃琴2014年4 月29 日实训题目:数字日历电路1 系统设计1.1 设计要求1.1.1 设计任务(1)用Verilog HDL语言设计出能够在EDA实训仪的I/O设备和PLD芯片实现的数字日历。

(2)数字日历能够显示年、月、日、时、分和秒。

(3)用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20140101),然后在另一时间段内显示时、分、秒(如010101099),两个时间段能自动倒换。

(4)数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时。

(5)体现创新部分1.1.2 性能指标要求1)数字电路能够在一定的时间内显示切换的功能,并且能手动校准年月日和时分秒2)具有复位和进位的功能3)能起到提示的作用,如闹钟或亮彩灯等。

1.2 设计思路及设计框图1.2.1设计思路如图1.2.2所示1) EDA实训箱上的功能有限,可以用到的有8支数码管和12个lED灯。

年、月、日和时、分、秒可以通过数码管显示,年月日和时分秒的切换可以通过拨动开关控制,校正可以通过按键实现。

2)输入的秒脉冲由DEA实训仪上的20MHZ晶振经过分频得到,秒脉冲经过60分频后产生1分钟脉冲信号,在经过60分频后产生1小时的脉冲信号,最后进行24分频,得到1天的脉冲送24进制的 cout输出。

在将两个60分频和一个24分频的输出送到送到数码管的译码器输入端,得到24小时的计时显示结果。

由此得到数字日历的计时器模块。

1.2.2设计框图cout cout秒脉冲图1.2.2数字钟的原理框图2 各个模块程序的设计2.1图1 1HZ秒脉冲的分频模块元件符号2.1输入的秒脉冲由EDA实训仪上的20MHZ晶振经过分频得到,设计一个输出频率为1HZ的秒脉冲。

eda技术实验报告

eda技术实验报告

eda技术实验报告EDA技术实验报告引言EDA(Electronic Design Automation)技术是电子设计自动化的缩写,是现代电子设计中不可或缺的一环。

它通过计算机辅助设计,提高了电路设计的效率和质量。

本文将介绍EDA技术的背景、应用和实验结果。

背景随着电子产品的不断发展,电路设计变得越来越复杂,传统的手工设计已经无法满足需求。

EDA技术的出现填补了这一空白。

它利用计算机的强大计算能力和算法,帮助设计师完成电路设计、仿真、布局和验证等工作。

应用1. 电路设计EDA技术的核心应用是电路设计。

通过EDA工具,设计师可以绘制电路图、选择器件、进行参数设置等。

EDA工具还可以自动进行电路优化,提高电路性能。

2. 仿真验证在电路设计完成后,需要对电路进行仿真验证。

EDA技术可以提供准确的仿真结果,帮助设计师分析电路的性能和稳定性。

仿真验证可以帮助设计师发现潜在的问题,提前解决。

3. 物理布局物理布局是将电路逻辑转化为实际的物理结构。

EDA技术可以自动进行物理布局,优化电路的面积和功耗。

物理布局的好坏直接影响到电路的性能和可靠性。

4. 电路验证在电路设计完成后,需要进行电路验证,确保电路的正确性和可靠性。

EDA技术可以自动进行电路验证,提供准确的验证结果。

电路验证可以帮助设计师发现设计缺陷,提高电路的可靠性。

实验设计在本次实验中,我们选择了一款EDA工具进行实验。

首先,我们设计了一个简单的数字电路,包括与门和或门。

然后,利用EDA工具进行电路仿真和优化。

最后,对电路进行物理布局和验证。

实验结果通过实验,我们得到了以下结果:1. 仿真结果显示,设计的数字电路在不同输入条件下均能正确输出结果,验证了电路的正确性。

2. 通过优化算法,我们成功提高了电路的性能,减少了功耗和面积。

3. 物理布局结果显示,电路的布局紧凑,满足了设计要求。

4. 电路验证结果显示,电路的功能和性能均符合设计要求,验证了电路的可靠性。

EDA技术及应用实训报告

EDA技术及应用实训报告

EDA技术及应用实训报告
1.设计自动化技术
设计自动化技术(Design Automation)是一项将新科技与新技术结合在一起的实际工程学科,它将工程设计和制造过程的各个方面进行自动建模、自动仿真、自动集成,从而实现对制造技术的模拟和控制,实现优化系统设计和提高设计效率的目的。

设计自动化是达到设计自动化的途径之一,它强调了“从设计中抽象出规则、流程、模型和算法”,并对它们进行自动化,从而克服了手动设计中的过程繁琐、重复劳动的缺点,为设计师提供了更快、更准、更节劳的方法。

2、EDA技术
EDA(电子设计自动化)是在电子产品设计的整个流程中使用计算机软件和硬件工具来实现设计自动化的过程,也称之为电子产品设计自动化(EDA)。

EDA技术已经发展到成熟阶段,&&主要用于电路板设计、电路仿真、CAD/CAM设计、电路布线和测试等领域。

EDA实验报告完结版

EDA实验报告完结版

EDA实验报告完结版一、实验目的本次 EDA 实验的主要目的是通过实际操作和设计,深入理解和掌握电子设计自动化(EDA)技术的基本原理和应用。

具体而言,包括熟悉 EDA 工具的使用方法,学会运用硬件描述语言(HDL)进行逻辑电路的设计与描述,以及通过综合、仿真和实现等流程,将设计转化为实际的硬件电路,并对其性能进行评估和优化。

二、实验环境本次实验所使用的 EDA 工具为_____,该工具提供了丰富的功能模块和强大的设计支持,包括原理图编辑、HDL 代码编写、综合、仿真和下载等。

实验所使用的硬件平台为_____开发板,其具备多种接口和资源,便于对设计的电路进行实际验证和测试。

三、实验内容1、基本逻辑门电路的设计与实现使用 HDL 语言(如 Verilog 或 VHDL)设计常见的基本逻辑门电路,如与门、或门、非门等。

通过编写代码,对逻辑门的输入输出关系进行描述,并进行综合和仿真,验证设计的正确性。

2、组合逻辑电路的设计与实现设计并实现较为复杂的组合逻辑电路,如加法器、减法器、编码器、译码器等。

运用 HDL 语言描述电路的功能,进行综合和仿真,确保电路在各种输入情况下的输出结果符合预期。

3、时序逻辑电路的设计与实现设计常见的时序逻辑电路,如计数器、寄存器、移位寄存器等。

在设计过程中,考虑时钟信号、同步复位和异步复位等因素,通过仿真验证时序逻辑的正确性,并对电路的性能进行分析。

4、有限状态机(FSM)的设计与实现设计一个有限状态机,实现特定的功能,如交通信号灯控制器、数字密码锁等。

明确状态转移条件和输出逻辑,通过编写 HDL 代码实现状态机,并进行综合和仿真,验证其功能的准确性。

5、综合与优化对设计的电路进行综合,生成门级网表,并通过优化工具对电路进行面积、速度等方面的优化,以满足特定的设计要求。

6、硬件实现与测试将综合后的设计下载到硬件开发板上,通过实际的输入输出信号,对电路的功能进行测试和验证。

观察电路在实际运行中的表现,对出现的问题进行分析和解决。

eda技术与实验报告

eda技术与实验报告

eda技术与实验报告
EDA技术与实验报告
近年来,EDA技术在电子设计领域发挥着越来越重要的作用。

EDA(Electronic Design Automation)技术是指利用计算机软件和硬件工具来设计、验证和生成
电子系统的过程。

它涵盖了从电路设计到芯片制造的整个流程,包括逻辑设计、物理设计、验证和仿真等各个环节。

在实验报告中,我们将重点介绍EDA技术在电子设计中的应用和优势。

首先,EDA技术可以大大提高设计效率和质量。

利用EDA工具,设计师可以快速完成
电路设计和验证,大大缩短了产品的上市时间。

其次,EDA技术可以帮助设计
师发现和解决潜在的设计问题,提高了设计的可靠性和稳定性。

此外,EDA技
术还可以实现自动化设计和优化,从而降低了设计成本和风险。

在实验中,我们使用了一款先进的EDA工具来设计和验证一个数字电路。

通过
该实验,我们深刻体会到了EDA技术的强大功能和优势。

在设计过程中,我们
可以通过EDA工具快速搭建电路原型,并进行逻辑仿真和时序分析,从而验证
设计的正确性和性能。

此外,EDA工具还提供了丰富的库元件和模型,可以大
大简化设计过程和提高设计的可靠性。

总的来说,EDA技术在电子设计领域发挥着不可替代的作用。

它不仅提高了设
计效率和质量,还为设计师提供了强大的工具和支持。

随着科技的不断发展,EDA技术将继续发挥着重要的作用,推动电子设计领域的进步和发展。

希望通
过本次实验报告的分享,可以让更多的人了解和认识EDA技术的重要性和价值。

EDA原理及应用 实验报告

EDA原理及应用 实验报告

一.基础部分1.整体框架采用自顶向下的层次化设计思路,将实现功能的各模块放入单独的文件内完成,最后通过top文件例化各个模块实现整体功能,再根据引脚约束与硬件对应。

在本例的基础部分主要分为计数频率5hz的分频,七段数码管的驱动,七段数码管扫描的频率,计数模块,16进制到10进制转换模块。

下面逐项介绍:2.计数频率5HZ分频a.设计思路由上一个实验,我们知道1HZ的分频需要计数到49999999,因此本例的5HZ应该计数到上次计数值的五分之一:9999999,也就是十六进制下的98967f,将分频后的时钟div_clk_098作为输出。

为了最终的顶层设计具有清零功能,因此对每一个子模块也加入清零引脚。

b.源代码module divclk_2_098(input clk_098,input rst_098,output reg div_clk_098);reg[31:0]counter_098;always@(posedge clk_098 or posedge rst_098)beginif(rst_098)counter_098<=32'h00000000;elseif(counter_098==32'h0098967f)//5hz分频begincounter_098<=32'h00000000;div_clk_098<=~div_clk_098;endelsecounter_098<=counter_098+1;endendmodule3.数码管刷新频率分频a.设计思路根据人眼的视觉暂留效应,当数码管的刷新频率很快的时候,看上去会像多个数码管通识导通。

但原有100MHZ的主频太快,以此刷新并不能实现效果,查阅资料并实际测试,让其计数到60000左右可以完成任务,最终选取了61567,即16进制下的f07f,将输出scan_clk_098作为顶层文件中的七段数码管的时钟进行驱动刷新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《EDA技术及应用》实验报告系部:指导教师:学号:姓名:实验一点亮LED设计一、实验目的通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及Verilog HDL的编程方法。

本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。

二、实验内容SmartSOPC实验箱上有8个发光二极管LED1~8,并分别与FPGA的50、53~55、176和47~49引脚相连。

本实验的内容是建立可用于控制LED亮/灭的简单硬件电路,要求点亮SmartSOPC实验箱上的4个发光二极管(LED1、LED3、LED5和LED7)。

三、实验原理FPGA器件同单片机一样,为用户提供了许多灵活独立的输入/输出I/O口(单元)。

FPGA每个I/O口可以配置为输入、输出、双向I/O、集电极开路和三态门等各种组态。

作为输出口时,FPGA的I/O口可以吸收最大为24mA的电流,可以直接驱动发光二极管LED等器件。

所以只要正确分配并锁定引脚后,在相应的引脚上输出低电平“0”,就可以实现点亮该发光二级管的功能。

四、实验步骤1、启动Quarters II建立一个空白工程,命名为led_test.qpf。

然后分别建立图形设计文件,命名为led_test.bdf,以及文本编辑文件led1.v,将他们都添加进工程中。

2、对工程进行设计。

在led1.v中输入程序代码,并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。

从设计文件中创建模块,由led1.v生成名为led1.bsf的模块符号文件。

在led_test.bdf中任意空白处双击鼠标左键,将symbol对话框中libraries:project下的led1模块添加到图形文件led_test.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。

完整的顶层模块原理图如下图所示。

选择目标器件并进行引脚锁定。

将未使用的管脚设置为三态输入。

3、设置编译选项并编译硬件系统。

将led_test.bdf设置为顶层实体。

对该工程文件进行全程编译处理。

若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

4、下载硬件设计到目标FPGA。

将产生的led_test.sof输出对FPGA进行配置。

5、观察LED的状态。

五、实验程序//利用连续赋值assign语句实现module led1(led); //模块名led1output[7:0] led; //定义输出端口、assign led =8'b10101010; //输出0xAAendmodule//利用过程赋值语句实现(暂时已屏蔽)/*module led1(led); //模块名led1output[7:0] led; //定义输出端口reg[7:0] led; //定义寄存器always //过程1,无敏感变量beginled = 8'b10101010; //输出0xAAendendmudule*/六、思考题写出使用QuartusII软件开发工程的完整的流程。

实验二流水灯实验一、实验目的通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Verilog HDL的编程方法。

学习简单时序电路的设计和硬件测试。

二、实验内容本实验的内容是建立可用于控制LED流水灯的简单硬件电路,要求在SmartSOPC实验箱上实现LED1~LED8发光二极管流水灯显示。

三、实验原理1、在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2,流水一次后,输出的数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,就可以实现LED流水灯。

为了观察方便,流水速率最好在2Hz左右。

在QuickSOPC核心板上有一个48MHz的标准时钟源,该时钟脉冲Clock与芯片的28管脚相连。

为了产生2Hz的时钟脉冲,在此调用了一个分频模块(int_div模块,位于光盘中EDA_Component目录下),通过修改分频系数来改变输出频,当分频系数为24x10^6时,输出即为2Hz的频率信号。

2、Int_div分频模块说明:int_div模块是一个占空比为50%的任意整数分频器。

输入时钟为clock,输出时钟为clk_out。

其中F_DIV为分频系数,分频系数范围为1~2^n (n=F_DIV_WIDTH),若要改变分频系数,改变参数F_DIV和F_DIV_WIDTH到相应范围即可。

在本例中输入时钟为48MHz,要得到2Hz的信号,所以分频系数为48x10^6/2=24x10^6;对于分频系数为24x10^6的数需要一个25位宽的计数器即可。

四、实验步骤1、启动Quarters II建立一个空白工程,命名为led_water.qpf。

2、新建Verilog HDL源程序文件ledwater.v,输入程序代码并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。

3、从设计文件中创建模块,由ledwater.v生成名为ledwater.bsf的模块符号文件。

4、将光盘中EDA_Component目录下的int_div.bsf和int_div.v拷贝到工程目录。

5、新建图形设计文件命名为led_water.bdf并保存。

在空白处双击鼠标左键,分别将symbol对话框中libraries:project下的ledwater和int_div模块放在图形文件led_water.bdf中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。

双击int_div 的参数框,并修改参数,将F_DIV的值改为24000000,F_DIV_WIDTH的值改为25. 完整的顶层模块原理图如下图所示。

6、选择目标器件并进行引脚锁定。

将未使用的管脚设置为三态输入。

7、将led_water.bdf设置为顶层实体。

对该工程文件进行全程编译处理。

若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

8、将产生的led_water.sof输出对FPGA进行配置。

9、更改分频模块(int_div)的分频系数,并重新编译下载,观察流水灯的变化。

五、实验程序module ledwater (led,clk); //模块名ledwateroutput[7:0] led; //定义LED输出口input clk; //定义时钟输入口reg[8:0] led_r; //定义输出寄存器assign led = led_r[7:0]; //寄存器输出always @(posedge clk) //在时钟上升沿触发进程beginled_r <= led_r << 1; //是,则输出左移一位if(led_r == 9'd0) //循环完毕吗?led_r <= 9'b111111111; //是,则重新赋初值endendmodule六、思考题本实验顶层采用了图形输入的方式,若采用文本输入方式,如何编写顶层文件?写出相应程序。

实验三键盘、LED发光实验一、实验目的通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Verilog HDL的编程方法,熟悉以Verilog HDL文件为顶层模块的设计。

学习和体会分支条件语句case的使用方法及FPGA I/O口的输出控制。

二、实验内容SmartSOPC实验箱上有8个发光二极管LED1~8和8个按键KEY1~KEY8。

本实验的内容要求在SmartSOPC实验箱上完成对8个按键KEY1~KEY8进行监控,一旦有按键输入判断其键值,并点亮相应的发光二极管,如若KEY3按下,则点亮LED1~LED3发光二极管。

三、实验原理FPGA的所有I/O控制块允许每个I/O口引脚单独配置为输出口,不过这种配置是系统自动完成的,一旦该I/O口被设置为输入口使用时(如定义key0为输入引脚:input key0;)该I/O控制模块将直接使三态缓冲区的控制端接地,使得该I/O 口引脚对外呈高阻态,这样该I/O口引脚即可用作专用输入引脚。

只要正确分配并锁定引脚后,一旦在KEY1~KEY8中有按键输入,在检测到键盘输入的情况下,继续判断其键值并做出相应的处理。

四、实验步骤1、启动Quarters II建立一个空白工程,命名为keyled.qpf。

2、新建Verilog HDL源程序文件keyled.v,输入程序代码并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。

3、选择目标器件并进行引脚锁定。

将未使用的管脚设置为三态输入。

4、对该工程文件进行全程编译处理。

若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

5、将产生的keyled.sof输出对FPGA进行配置。

按下不同按键观察LED发光管的状态。

五、实验程序module keyled(key,led); //模块名keyledinput[7:0] key; //定义键盘输入口output[7:0] led; //定义发光管输出口reg[7:0] led_r; //定义寄存器reg[7:0] buffer_r;assign led = led_r; //输出键值always@(key) //过程1beginbuffer_r = key; //读取键值case(buffer_r)8'b11111110:led_r = 8'b11111110; //是键KEY1,则给寄存器赋值0xfe8'b11111101:led_r = 8'b11111100; //是键KEY2,则给寄存器赋值0xfc8'b11111011:led_r = 8'b11111000; //是键KEY3,则给寄存器赋值0xf88'b11110111:led_r = 8'b11110000; //是键KEY4,则给寄存器赋值0xf08'b11101111:led_r = 8'b11100000; //是键KEY5,则给寄存器赋值0xe08'b11011111:led_r = 8'b11000000; //是键KEY6,则给寄存器赋值0xc08'b10111111:led_r = 8'b10000000; //是键KEY7,则给寄存器赋值0x808'b01111111:led_r = 8'b00000000; //是键KEY8,则给寄存器赋值0x00default: led_r = 8'b11111111; //否则给寄存器赋值0xffendcaseendendmodule六、思考题能否用if语句改写本实验程序?如果能,写出相应程序。

相关文档
最新文档