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技术及应用》实验报告
仲恺农业工程学院实验报告纸自动化学院(院、系)工业自动化专业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技术及应用》实训报告学号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(Electronic Design Automation)技术是电子设计自动化的缩写,是现代电子设计中不可或缺的一环。
它通过计算机辅助设计,提高了电路设计的效率和质量。
本文将介绍EDA技术的背景、应用和实验结果。
背景随着电子产品的不断发展,电路设计变得越来越复杂,传统的手工设计已经无法满足需求。
EDA技术的出现填补了这一空白。
它利用计算机的强大计算能力和算法,帮助设计师完成电路设计、仿真、布局和验证等工作。
应用1. 电路设计EDA技术的核心应用是电路设计。
通过EDA工具,设计师可以绘制电路图、选择器件、进行参数设置等。
EDA工具还可以自动进行电路优化,提高电路性能。
2. 仿真验证在电路设计完成后,需要对电路进行仿真验证。
EDA技术可以提供准确的仿真结果,帮助设计师分析电路的性能和稳定性。
仿真验证可以帮助设计师发现潜在的问题,提前解决。
3. 物理布局物理布局是将电路逻辑转化为实际的物理结构。
EDA技术可以自动进行物理布局,优化电路的面积和功耗。
物理布局的好坏直接影响到电路的性能和可靠性。
4. 电路验证在电路设计完成后,需要进行电路验证,确保电路的正确性和可靠性。
EDA技术可以自动进行电路验证,提供准确的验证结果。
电路验证可以帮助设计师发现设计缺陷,提高电路的可靠性。
实验设计在本次实验中,我们选择了一款EDA工具进行实验。
首先,我们设计了一个简单的数字电路,包括与门和或门。
然后,利用EDA工具进行电路仿真和优化。
最后,对电路进行物理布局和验证。
实验结果通过实验,我们得到了以下结果:1. 仿真结果显示,设计的数字电路在不同输入条件下均能正确输出结果,验证了电路的正确性。
2. 通过优化算法,我们成功提高了电路的性能,减少了功耗和面积。
3. 物理布局结果显示,电路的布局紧凑,满足了设计要求。
4. 电路验证结果显示,电路的功能和性能均符合设计要求,验证了电路的可靠性。
EDA技术及应用实训报告
EDA技术及应用实训报告
1.设计自动化技术
设计自动化技术(Design Automation)是一项将新科技与新技术结合在一起的实际工程学科,它将工程设计和制造过程的各个方面进行自动建模、自动仿真、自动集成,从而实现对制造技术的模拟和控制,实现优化系统设计和提高设计效率的目的。
设计自动化是达到设计自动化的途径之一,它强调了“从设计中抽象出规则、流程、模型和算法”,并对它们进行自动化,从而克服了手动设计中的过程繁琐、重复劳动的缺点,为设计师提供了更快、更准、更节劳的方法。
2、EDA技术
EDA(电子设计自动化)是在电子产品设计的整个流程中使用计算机软件和硬件工具来实现设计自动化的过程,也称之为电子产品设计自动化(EDA)。
EDA技术已经发展到成熟阶段,&&主要用于电路板设计、电路仿真、CAD/CAM设计、电路布线和测试等领域。
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(Electronic Design Automation)技术是指利用计算机软件和硬件工具来设计、验证和生成
电子系统的过程。
它涵盖了从电路设计到芯片制造的整个流程,包括逻辑设计、物理设计、验证和仿真等各个环节。
在实验报告中,我们将重点介绍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作为顶层文件中的七段数码管的时钟进行驱动刷新。
eda实训报告(全)
《EDA技术及其应用》实训报告班级电信一班姓名 xxxx学号 103001231 指导教师 xxxx2012年05月21 日xxxxxxxx学院10级机械电子工程系目录1.1 课题 (3)1.2 实验的目的及意义 (3)1.3 实验的内容及要求 (3)1.4 实验的地点 (3)1. 5 实验的器材 (3)1. 6 实验设计思想 (3)1. 7 各模块的设计程序和元件介绍 (3)1. 8 实验感想 (11)1.1实验的课题:万年历1.2实验的目的及意义:(1)掌握EDA技术及FPGA技术的开发流程。
(2)掌握系统设计的方法和层次化设计的方法。
(3)掌握QuartusII软件的使用方法。
(4)掌握VHDL语言的程序设计、编写、编译和错误修改。
(5)掌握熟悉EDA实验箱的各个模块(6)掌握EDA试验箱与pc机的连接、下载和引脚绑定的全过程和方法,实现功能仿真。
1.3 实验的内容及要求:(1)实现年、月、日、时、分、秒的显示并具有闰年判断计数的功能(2)在试验箱上通过按键实现年月日和时分秒的显示切换。
(3)利用试验箱和pc机进行功能测试并实现万年历的显示功能。
1.4 实验的地点:郑州信息科技职业学院EDA实验室1.5 实验的器材:硬件:计算机、EDA试验箱软件:QuartusII软件1.6 实验设计思想:将万年历分为各个模块分项处理,每个小模块实现一个小的功能,最后在万年历的顶层文件中将各个模块整好在一起,实现万年历的整体功能。
这是万年历实验整体的设计思想。
其中组成模块有:秒计时模块cnt60、分计时模块cnt60、时计时模块cnt24、日计时模块tian、月计时模块yue、年计时模块nian、调整模块tz、控制模块mux21,然后在顶层文件中连接个各个模块组成万年历的完整连接图,之后再pc机上进行编译,完成引脚绑定再下载到实验箱上,根据程序内容及引脚绑定通过按键控制和led 灯的显示最终完成测试。
1.7各模块设计:1、秒分时、年月日、调整模块、控制模块设计程序(1)秒计时模块cnt60(六十进制计数器)程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT60 isport( CLK:in std_logic;CQ1,CQ2:out std_logic_vector(3 downto 0);COUT:OUT std_logic);end entity CNT60;architecture art of CNT60 issignal s1,s2:std_logic_vector(3 downto 0);beginprocess(clk)beginIF clk'event AND clk='1' then S1<=S1+1;IF S1=9 THEN S1<="0000"; S2<=S2+1; END IF;IF s2=5 AND S1=9 then s1<="0000"; s2<="0000"; COUT<='1';else COUT<='0'; end if;end if;CQ1<=S1; CQ2<=S2;end process;END art;将程序用QuartusII软件编译之后生成的cnt60模块元件如图所示:(此模块实现六十进制计数,用它实现分和秒功能)(2)分计时模块cnt60:(六十进制计数器)分计时模块和秒计时秒快一样,同样是用六十进制计数器cnt60,程序和生成元件同上所述。
《EDA技术》实验报告
《EDA技术》实验报告
本次实验报告是关于EDA技术的研究和应用。
EDA技术全称电子设计自动化技术,能
够实现电子设计的自动化和优化。
首先,我们讨论了EDA技术的应用范围。
EDA技术主要应用于现代集成电路的设计和
制造,目的是提高电路的性能,并减少设计和制造的成本和时间。
EDA技术可用于设计各
种电路,包括数字电路、模拟电路、混合信号电路和射频电路等。
其次,我们介绍了EDA技术的主要工具。
EDA技术工具包括原理图编辑器、电路模拟器、布局编辑器和综合工具等。
这些工具可以协同工作,在电路设计的不同阶段对电路进
行分析和优化。
接着,我们描述了EDA技术的设计流程。
EDA技术的设计流程分为四个主要阶段:设计,模拟,综合和布局。
在设计阶段,设计师使用原理图编辑器和其他工具来设计电路。
在模拟阶段,设计师将电路模型装入电路模拟器中,并进行仿真以验证电路的功能和性能。
在综合阶段,设计师使用综合工具将电路转换为特定的逻辑网表文件。
在布局阶段,设计
人员使用布局编辑器来设置电路的物理布局。
最后,我们讨论了EDA技术的优缺点。
EDA技术的主要优点是提高电路设计的效率和
准确性,并减少了设计和制造的成本和时间。
然而,EDA技术也存在一些缺点,例如,设
计人员需要具备高水平的技术和知识,否则可能出现算法错误或设计缺陷。
综上所述,EDA技术在现代电子设备设计和制造中起着非常重要的作用,技术的发展
将会极大程度上促进电子设备的设计和制造的进步和发展。
EDA实验报告
西安科技大学EDA技术及应用实验报告题目:学习使用Quartus II软件专业班级:姓名:学号:一、实验目的1、熟悉Quartus II软件的使用。
2、掌握简单组合逻辑电路的设计方法与功能仿真技巧。
3、进一步学习Quartus II中基于原理图设计的流程二、实验原理通过对两输入或门的功能仿真实验,学习Quartus II的使用,两输入或门中,当输入端a,b的值都为0时,输出端c的值为0,当输入端a,b为其它值时,c的值为1。
通过创建工程,设计输入,项目编译,仿真验证这些步骤,完成对两输入或门的仿真设计。
三、实验步骤1.创建工程a.打开当前工程。
启动“New Project Wizard”,找到文件夹d\VHDL\count,作为当前工作目录。
b.将设计文件加入到工程中。
如果在建立工程文件之前没有建立源文件,则直接点击“Nest”按钮进入下一步操作。
c.选择目标器件。
在Family下拉列表框中选择目标器件系列,如FLEX10K。
在Available device’list下拉列表中指定一个目标:EPF10K10LC84-4。
d.选择综合器和仿真器。
继续点击“Next”按钮,如果不作任何选择,则表选择Quartus II 5.0自带的综合器和仿真器。
e.结束设置。
点击图中的“Finish”按钮,即完成了当前工程的创建。
2.设计输入a.新建文本文件。
在Quartus II 5.0管理界面中选择菜单“File” “New”,或单击新建文件图标,出现New对话框,在对话框中选择“VHDL File”,点击“OK”按钮,打开文本编辑器。
然后保存文件。
b.编辑文本文件。
创建文本文件后,就可以在文本编辑窗口中输入如下所示的VDHL源程序。
两输入或门的源程序orm2.vhd:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY orm2 ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END ENTITY orm2;ARCHITECTURE rt1 OF orm2 ISBEGINc<=a OR b;END ARCHITECTURE rt1;输入完成后,对源文件进行保存即可。
eda实验报告完整版
EDA实验报告焦中毅201300121069实验1 4选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。
2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。
4.学习实验开发系统的使用方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。
实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。
例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。
学会管脚锁定以及编程下载的方法等。
四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。
五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M (A=B ),G (A>B )和L (A<B )(如图所示)。
用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
四、实验要求1.用硬件描述语言编写四位二进制码 比较器的源文件; 2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行 硬件验证。
eda实验报告完整版
eda实验报告完整版EDA实验报告一、文献综述EDA,全称为Exploratory Data Analysis,是一种数据探索性分析方法。
EDA通过多种可视化工具和数据分析技术快速探索数据集的特征和结构,从而发现其中的规律和异常,确定数据的可靠性和种类。
EDA的主要目的在于对数据进行全面的分析和理解,为后续的数据处理和建模提供参考。
EDA作为数据预处理的重要步骤,在数据分析和建模中占据着重要的地位。
目前,随着数据收集、存储和分析技术的快速发展,EDA正在成为数据分析中不可缺少的部分。
在大数据时代,EDA的发展已经超越了其传统的数据探索性分析功能,成为了快速调试和优化模型的重要手段。
二、实验目的本次实验旨在掌握EDA技术方法和可视化工具,在实际数据集中进行数据预处理和探索性分析。
主要目标包括:1.掌握常用的EDA方法和可视化工具。
2.通过对实际数据集处理和分析,了解数据的特征和结构。
3.确定数据集的质量、可靠性和种类。
4.为后续的数据处理和建模提供参考。
三、实验流程1.数据集的加载和清洗本次实验选用的数据集为Iris数据集,包含了鸢尾花的三个品种(Setosa、Versicolour、Virginica)的四个特征(sepal length、sepal width、petal length、petal width)共150个样本。
由于Iris数据集已经经过处理,因此不需要进行特殊的预处理。
为了更好地探索Iris数据集,我们将其存储为dataframe格式,以方便进行数据的各类统计和可视化。
2.数据特征的可视化在数据特征的可视化中,我们使用了多种可视化工具包括:ggplot2和ggpubr。
下面是我们在R语言环境下所使用的代码。
# 加载ggplot2和ggpubrlibrary(ggplot2)library(ggpubr)#加载Iris数据集data("iris")df = iris# 1.绘制直方图hist <- ggplot(df, aes(x = Sepal.Length)) +geom_histogram(fill = "blue", alpha = .5, bins = 30) +ggtitle("Distribution of Sepal.Length")# 2.绘制密度图density <- ggplot(df, aes(x = Sepal.Width, fill = Species)) +geom_density(alpha = .5) +scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07")) +ggtitle("Density plot of Sepal.Width")# 5.绘制箱线图boxplot <- ggplot(df, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot() +ggtitle("Boxplot of Sepal.Length by Species")上述代码会生成6个图表,分别为直方图、密度图、散点图、热力图、箱线图和柱状图。
EDA 技术及应用 实验报告
一、任务:基于CPLD 实现数字钟的实验要求:(一)接通5V 电源可实现数字钟的基本功能 (二)可通过按键调整分钟和时钟位的数值二、设计框图(框图说明)整个数字时钟的大体分为CPLD 模块、数码管模块、时钟模块、按键电源模块等四个模块。
CPLD 在时钟信号、电源、按键的作用下控制数码管的输出显示。
三、CPLD 内部原理图CPLD 内部原理图由控制秒钟的CNT10、CNT6,控制分钟的CNT10M 、CNT6,控制时钟的CNT10H ,译码器DEC6G ,D 触发器,1000分频的F1000等模块组成。
其中ENA 端为清零重置端,D1、D2端通过D 触发器控制分别控制分钟位和时钟位的增加调整。
1M 为时钟的输入。
Sel[7..0]控制数码管的功能端,led7s[7..0]控制数码管的码段显示。
四、CPLD 内部原理图各模块相应的程序代码--F1000的逻辑描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f1000 ISPORT (CLK: IN STD_LOGIC;q1000: OUT STD_LOGIC);END f1000;ARCHITECTURE one OF f1000 ISSIGNAL X:STD_LOGIC;BEGINPROCESS(CLK)variable CNT:INTEGER RANGE 0 TO 499;BEGINIF CLK'EVENT AND CLK='1'thenIF CNT<499 THENCNT:=CNT+1;ELSECNT:=0;X<=NOT X;END IF;END IF;q1000<=X;END PROCESS;END ONE;--秒钟的十进制的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport(clk:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end entity cnt10;architecture one of cnt10 issignal cqi:std_logic_vector(3 downto 0);beginprocess(clk,ena) isbeginif ena='1' then cqi<="0000";elsif clk'event and clk='1' thenif cqi="1001" then cqi<="0000";else cqi<=cqi+'1'; end if;end if;end process;process(cqi) isbeginif cqi="0000"then carry_out<='1';else carry_out<='0';end if;end process;cq<=cqi;end architecture one;--秒钟、分钟的六进制的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 isport(clk:in std_logic;ena:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end entity cnt6;architecture one of cnt6 issignal cqi:std_logic_vector(3 downto 0);beginprocess(clk,ena) isbeginif ena='1' then cqi<="0000";elsif clk'event and clk='1' thenif cqi="0101" then cqi<="0000";else cqi<=cqi+'1'; end if;end if;end process;process(cqi) isbeginif cqi="0000"then carry_out<='1';else carry_out<='0';end if;end process;cq<=cqi;end architecture one;--分钟的十进制逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10M isport(clk:in std_logic;clr:in std_logic;add:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end entity cnt10M;architecture one of cnt10M issignal cqi:std_logic_vector(3 downto 0);signal gclk:std_logic;begingclk<=clk or add;process(gclk,clr) isbeginif clr='1' then cqi<="0000";elsif gclk'event and gclk='1' thenif cqi="1001" then cqi<="0000";else cqi<=cqi+'1'; end if;end if;end process;process(cqi) isbeginif cqi="0000"then carry_out<='1';else carry_out<='0';end if;end process;cq<=cqi;end architecture one;--小时的逻辑描述library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10h isport(clk:in std_logic;clr:in std_logic;add:in std_logic;cq3:out std_logic_vector(3 downto 0);cq4:out std_logic_vector(3 downto 0)); end entity cnt10h;architecture one of cnt10h issignal sum:integer range 0 to 11;signal gclk:std_logic;signal cq1:std_logic_vector(3 downto 0);signal cq2:std_logic_vector(3 downto 0);begingclk<=clk or add;process(gclk,clr) isbeginif clr='1' then cq1<="0000";sum<=0;elsif gclk'event and gclk='1' thenif sum=11 then sum<=0;else sum<=sum+1; end if;end if;case sum iswhen 0=>cq1<="0000";cq2<="0000";when 1=>cq1<="0001";cq2<="0000";when 2=>cq1<="0010";cq2<="0000";when 3=>cq1<="0011";cq2<="0000";when 4=>cq1<="0100";cq2<="0000";when 5=>cq1<="0101";cq2<="0000";when 6=>cq1<="0110";cq2<="0000";when 7=>cq1<="0111";cq2<="0000";when 8=>cq1<="1000";cq2<="0000";when 9=>cq1<="1001";cq2<="0000";when 10=>cq1<="0000";cq2<="0001";when 11=>cq1<="0001";cq2<="0001";end case;end process;cq3<=cq1;cq4<=cq2;end architecture one;--DEC6G的逻辑描述library ieee;use ieee.std_logic_1164.all;entity dec6g isport(a:in bit_vector(3 downto 0);b:in bit_vector(3 downto 0);c:in bit_vector(3 downto 0);d:in bit_vector(3 downto 0);e:in bit_vector(3 downto 0);f:in bit_vector(3 downto 0);clk:in std_logic;sel:out bit_vector(7 downto 0);led7s:out bit_vector(7 downto 0));end entity dec6g;architecture one of dec6g issignal sum:integer range 0 to 7;signal m:bit_vector(3 downto 0);beginprocess(clk)beginif (clk'event and clk='1')thenif sum>=7 then sum<=0;else sum<=sum+1;end if;end if;case sum iswhen 0=>sel<="11111110";m<=a;when 1=>sel<="11111101";m<=b;when 2=>sel<="11111011";m<="1111";when 3=>sel<="11110111";m<=c;when 4=>sel<="11101111";m<=d;when 5=>sel<="11011111";m<="1111";when 6=>sel<="10111111";m<=e;when 7=>sel<="01111111";m<=f;end case;end process;process(m)begincase m(3 downto 0) iswhen "0000"=>led7s<="00111111";when "0001"=>led7s<="00000110";when "0010"=>led7s<="01011011";when "0011"=>led7s<="01001111";when "0100"=>led7s<="01100110";when "0101"=>led7s<="01101101";when "0110"=>led7s<="01111101";when "0111"=>led7s<="00000111";when "1000"=>led7s<="01111111";when "1001"=>led7s<="01101111";when "1111"=>led7s<="01000000";when others=>NULL;end case;end process;end one;--D触发器的逻辑描述library ieee;use ieee.std_logic_1164.all;entity dff isport(d:in std_logic;clk:in std_logic;q:out std_logic);end entity dff;----------------------------------architecture dd of dff isbegintt:process(clk) isbeginif (clk'event and clk='1')then q<=d;end if;end process tt;end architecture dd;五、CPLD内部结构各模块图与各自仿真图1、为DEC6G模块图与之仿真图Maxplus中设置:END TIME=480ns,Grid size=15ns;时钟周期为30ns;在时钟信号的控制下,a[3..0]、b[3..0]、c[3..0]、d[3..0]、e[3..0]、f[3..0]端使输入,相应SEL[7..0]控制相应的数码管,LED[7..0]在相应的数码管上产生相应的断码。
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作为顶层文件中的七段数码管的时钟进行驱动刷新。
(完整word版)EDA实验报告
计算机学院计算机科学与技术专业1班____组、学号姓名协作者______________ 教师评定_________________实验题目_________基于Libero的数字逻辑设计仿真及验证实验_________1、熟悉EDA工具的使用;仿真基本门电路。
2、仿真组合逻辑电路。
3、仿真时序逻辑电路。
4、基本门电路、组合电路和时序电路的程序烧录及验证。
5、数字逻辑综合设计仿真及验证。
实验报告1、基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。
2、熟悉利用EDA工具进行设计及仿真的流程。
3、学习针对实际门电路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行VerilogHDL设计的方法。
二、实验环境Libero仿真软件。
三、实验内容1、掌握Libero软件的使用方法。
2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。
3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。
)4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个....的综合结果,以及相应的仿真结果。
四、实验结果和数据处理1、所有模块及测试平台代码清单..(完整word版)EDA实验报告//74HC00代码-与非module HC00(A,B,Y);input [4:1]A,B;output [4:1]Y;assign Y=~(A&B);//与非endmodule//74HC00测试平台代码`timescale 1ns/1nsmodule testbench();reg [4:1] a,b;wire [4:1] y;HC00 u1(a,b,y);initialbegina=4'b0000;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;a=4'b1111;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;(完整word版)EDA实验报告endendmodule//74HC02代码-或非module HC02(A,B,Y);input [4:1]A,B;output [4:1]Y;assign Y=~(A|B);//或非endmodule//74HC02测试平台代码`timescale 1ns/1nsmodule testbench();reg [4:1] a,b;wire [4:1] y;HC00 u1(a,b,y);initialbegina=4'b0000;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;a=4'b1111;b=4'b0001;(完整word版)EDA实验报告#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;endendmodule//74HC04代码-非module HC04(A,Y);input [4:1]A;output [4:1]Y;assign Y=~A;endmodule//74HC04测试平台代码`timescale 1ns/1nsmodule testbench();reg [4:1] a,b;wire [4:1] y;HC00 u1(a,b,y);initialbegina=4'b0000;b=4'b0001;#10 b=b<<1;(完整word版)EDA实验报告#10 b=b<<1;#10 b=b<<1;a=4'b1111;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;endendmodule//74HC08代码-与module HC08(A,B,Y);input [4:1]A,B;output [4:1]Y;assign Y=A&B;endmodule//74HC08测试平台代码`timescale 1ns/1nsmodule testbench();reg [4:1] a,b;wire [4:1] y;HC00 u1(a,b,y);initialbegin(完整word版)EDA实验报告a=4'b0000;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;a=4'b1111;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;endendmodule//74HC32代码-或module HC32(A,B,Y);input [4:1]A,B;output [4:1]Y;assign Y=A|B;endmodule//74HC32测试平台代码`timescale 1ns/1nsmodule testbench();reg [4:1] a,b;wire [4:1] y;(完整word版)EDA实验报告HC00 u1(a,b,y);initialbegina=4'b0000;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;a=4'b1111;b=4'b0001;#10 b=b<<1;#10 b=b<<1;#10 b=b<<1;endendmodule//74HC86代码-异或module HC86(A,B,Y);input [4:1]A,B;output [4:1]Y;assign Y=A^B;endmodule//74HC86测试平台代码`timescale 1ns/1ns(完整word 版)EDA 实验报告module testbench(); reg [4:1] a,b; wire [4:1] y;HC00 u1(a,b,y);initial begin a=4'b0000;b=4'b0001; #10 b=b<<1; #10 b=b<<1; #10 b=b<<1;a=4'b1111;b=4'b0001; #10 b=b<<1; #10 b=b<<1;#10 b=b<<1;endendmodule2、第一次仿真结果(任选一个....门,请注明,......插入截图,.....下同..)。
EDA技术及应用实验报告
EDA技术及应用实验报告摘要:EDA(Electronic Design Automation),即电子设计自动化,是一种用于半导体芯片设计的计算机辅助设计工具。
本实验通过对EDA技术的学习和应用,了解了EDA在电路设计中的重要性和实际应用。
1.引言电子设计自动化(EDA)是为了提高电子电路设计的效率和质量而发展的一种计算机辅助设计工具。
本实验通过学习EDA技术的相关知识和应用实例,深入了解EDA在电路设计中的应用及其优势。
2.EDA技术的基本原理EDA技术是通过计算机辅助分析、合成和验证电路的工具。
它包括电路仿真、布局布线、逻辑综合等多个方面。
其中,电路仿真是通过计算机模拟电路的工作原理和特性;布局布线是将电路逻辑设计映射为实际的物理设计;逻辑综合是将逻辑电路转换为门级或者布尔级电路。
3.EDA技术在电路设计中的应用3.1电路仿真电路仿真是一个重要的EDA技术应用,通过仿真可以验证电路的运行情况,提前发现并解决潜在的问题,从而降低设计风险和成本。
3.2布局布线布局布线是指将逻辑电路映射为物理电路的过程。
通过EDA工具的自动布局布线功能,可以将逻辑电路转换为最优的电路布线,减少电路面积和功耗,并提高电路的稳定性和性能。
3.3逻辑综合逻辑综合是将高级语言描述的逻辑电路转换为可实现的门级或布尔级电路。
通过EDA工具的逻辑综合功能,可以快速生成电路的逻辑结构,避免手工设计过程中的错误和繁琐性。
4.实验设计及结果本实验选取了一款集成电路芯片设计作为实验对象,使用EDA工具进行电路仿真、布局布线和逻辑综合三个方面的实验。
4.1电路仿真实验在电路仿真实验中,我们首先通过EDA工具搭建了待仿真的电路原理图,然后设置仿真条件和参数,运行仿真,并得到了仿真结果。
仿真结果显示,电路工作正常,符合预期。
4.2布局布线实验在布局布线实验中,我们将电路的逻辑设计转换为物理设计,通过EDA工具的自动布局布线功能进行布局布线。
(完整word版)EDA实验报告完整版
数字系统设计基础实验报告实验名称: 1.组合电路设计___2.失序电路设计___3.计数器的设计___4.原理图设计加法器学号: ___ ********__ ____**: ___ **_______班级: __ 计科09-1班_____老师: __ ______中国矿业大学计算机学院2011年10月27日一.实验一: 组合电路的设计二.实验目的三.熟悉QuartusⅡ的VHDL文本设计流程全过程, 学习简单组合电路的设计、仿真和硬件测试。
四.实验任务任务1: 利用QuartusⅡ完成2选1多路选择器的文本编辑输入和仿真测试等步骤, 得出仿真波形。
最后在试验系统上进行硬件测试, 验证本项设计的功能。
五.任务2: 将此多路选择器看成是一个元件mux21a, 利用元件例化语句描述电路图, 并将此文件放在同一目录中。
六.对于任务中的例子分别进行编译、综合、仿真, 并对其仿真波形作出分析说明。
七.实验过程1.新建一个文件夹, 取名CNT10。
2.输入源程序。
3.文件存盘, 文件名为cnt10, 扩展名为.vhd。
八.创建工程, 按照老师要求对软件进行设置。
九.进行失序仿真, 得到仿真图形。
十.实验程序任务1:entity CNT10 ISport (a,b,s:in bit;y:out bit);end entity CNT10;architecture one of CNT10 isbeginprocess (a,b,s)if s='0' then y<=a; else y<=b;end if;end process;end architecture one;任务2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXK ISPORT (s0,s1: in STD_LOGIC;a1,a2,a3: in STD_LOGIC;outy: out STD_LOGIC );END ENTITY MUXK;ARCHITECTURE double OF MUXK ISSIGNAL tmpout,tmp:STD_LOGIC;BEGINu1: PROCESS(s0,a2,a3,tmp)BEGINIF s0='0' then tmp<=a2;else tmp<=a3;END IF ;END PROCESS u1 ;u2: PROCESS(s1,a1,tmp,tmpout)BEGINIF s1='0' then tmpout<=a1;else tmpout<=tmp; END IF ;END PROCESS u2 ;outy<=tmpout;END ARCHITECTURE double;十一.实验结果任务1:任务2:十二.实验体会在课堂上对于“EDA与VHDL”这门课的用处及用法一直一知半解, 课上对于一些编程也是学的很模糊, 因为学习过模拟电路与数字电路, 所以总认为器件仿真要用电脑模拟器件或者直接用实物, 但是通过本次实验对QuartusⅡ的初步接触, 了解了其功能的强大。
EDA技术及应用实验报告
一、实验目的
1.在掌握可控脉冲发生器的基础上了解正负脉宽数调制信号发生的原理
2.熟练的运用示波器观察试验箱上的探测点波形
3.掌握时序电路设计的基本思想
二、实验内容:
本实验的任务是设计一个正负脉宽数控调制信号发生器。要求能够输出正负脉宽数控的脉冲波,正脉冲调制的脉冲波和负脉冲调制的脉冲波。试验中的时钟信号选择模块的1MHz信号。用拨档开关K1~K8作为正脉冲脉宽的输入,用S1~S8作为负脉冲脉宽的输入,可在Quartus II中查看仿真图,或查看时序仿真图。
C,对仿真软件很不熟悉。本实验用到了元件例化,要将四位全加器的.VHD文件复制到八位全加器的文件夹里。最开始的时候不知道这一点,所以八位全加器在运行是出错。通过老师的帮助知道了应该如何正确的操作,完成了实验。
五、实验心得。
第一次上机实验让我学会了如何使用Quartus II仿真软件,这个软件和以前用到的软件都不一样,它在计算机上完成管脚的绑定,然后通过下载线下载到芯片上就可以实现需要的功能。通过这次实验,也让我对元件例化有了更好的了解。基本掌握了全加器的工作原理,对VHDL编程语言有了更深入的理解。
实验二
姓 名:学 号:班 级:
指导老师:日 期:
一、实验目的
1.了解数字秒表的工作原理
2.进一步熟悉用VHDL语言编写驱动七段码管显示的代码
3.掌握VHDL编写中的一些小技巧
二、实验内容:
本实验的任务就是设计一个秒表,系统时钟选择时钟模块的1MHz,由于计时时钟信号为100Hz ,因此需要对系统时钟进行10000分频才能得到,因为七段码管需要扫描显示,本实验选择1MHz。另外为了控制方便,需要一个复位开关,使能计时按键,分别使用拨档开关K1,K2,拨动K1系统复位,所有寄存器全部清零。拨动K2秒表启动计时;如果再次拨动K2,秒表停止计时,除非拨动K1,系统才能复位,显示全部为00-00-00。
EDA技术及应用实验报告(完整版纯手打)
《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中,加入输入、输出引脚,双击各管脚符号,进行管脚命名。
完整的顶层模块原理图如下图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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语句改写本实验程序?如果能,写出相应程序。