沈阳理工大学EDA报告
- 格式:doc
- 大小:1.07 MB
- 文档页数:13
eda实验报告实验总结心得1.引言1.1 概述本实验报告旨在总结分析EDA实验的过程和结果,并分享实验中的心得体会。
通过本次实验,我学习了EDA(Exploratory Data Analysis)的基本概念和方法,了解到其在数据分析和数据挖掘领域的重要性。
EDA是一种数据分析技术,通过对数据集进行探索性分析,揭示出数据之间的关系、趋势和规律,为后续的数据处理和模型建立提供有效的指导。
通过可视化和统计方法,EDA可以帮助我们深入理解数据集的特征,并发现其中的异常值、缺失值、重复值等问题,为数据清洗和预处理提供依据。
在本次实验中,我们使用了Python编程语言以及相关的数据分析库(如Pandas、Matplotlib等)来进行EDA实验。
实验过程包括了数据集的加载、数据的基本统计信息分析、数据可视化等环节。
通过对数据集进行统计描述和可视化展示,可以更直观地了解数据的分布情况、关联关系以及异常值的存在情况。
本次实验的目的是通过实际操作来掌握EDA技术的应用方法,并能够运用其提供的工具和技巧来解决实际问题。
通过对数据的探索和分析,我们可以更好地理解数据集本身的特点和规律,为后续的数据处理和建模工作打下基础。
总之,本篇实验报告将分享我在进行EDA实验过程中的所见所闻、所思所感,希望能够对读者对于EDA技术的理解和应用有所启发,并为数据分析和挖掘领域的学习提供一些借鉴思路。
1.2 文章结构本篇实验报告共分为引言、正文和结论三个部分。
引言部分主要对本次实验进行概述,说明文章的目的和意义。
在概述中,将简要介绍本次实验的背景以及实验所涉及的主要内容。
接下来,将介绍文章的结构,明确各个章节的内容,使读者可以更好地理解整篇文章的组织结构。
正文部分是本次实验报告的核心部分。
首先,将详细讲述实验的背景,包括实验的目的、相关理论知识和实验的重要性。
其次,将详细描述实验的具体过程,包括实验所使用的材料与方法、实验的步骤和操作,以及实验中的关键数据和实验结果。
一、课程设计的内容1、学习EDA仿真技术,并使用Multisim仿真软件完成指定训练内容。
2、学习SOPC技术,并在FPGA上完成相关内容,掌握和理解SOPC的真正内涵。
3、通过学习了解Synopsys软件,掌握IC设计基础。
二、课程设计的要求与数据1、严格按照分组情况进行实训;2、完成指定的设计任务;3、相关设计数据要填入指定表格;4、课程设计的报告严格按照学校指定格式执行;5、实训期间不得迟到早退,否则将严肃处理。
三、课程设计应完成的工作1、学习Multisim仿真软件,并完成以下设计任务:Lab1-4必做,Lab5-9选做任意数量。
2、学习SOPC技术,并完成以下设计任务:Task1-4选作一题,Task5必做。
3、学习IC设计技术基础,并完成以下设计任务:Synopsys IC设计基础,主要学习linux基本操作,IC设计基本流程,概念,完成Design Compiler综合工具实验。
四、课程设计进程安排五、各实验相关内容和结果。
A、SOPC技术运用SOPC技术运用这一实验要求完成的是task5和选做task1-4中的一个,这里选择的是task1. A1、Task5主要是学习创建Nios2系统和通过利用Nios开发板熟悉软件设计流程。
在软件设计流程时,改Buttons的值为0xe后点击resume运行if语句后variables的值将会改变,如图示:这里附上Nios2的原理图:A2、Task1主要完成对数据存储和读取电路的设计,这里数据存储和读取电路以一个双端口SRAM 为中心,用二进制计数器产生存取地址、以十进制计数器产生欲存储的数据,读出的数据经过LED 七段译码,送LED 数码管显示。
具体内容是用一个4 位二进制计数器产生存取地址;以一个 4位的十进制计数器产生欲存储的数据;读出的数据自然也是一个4位的十进制数,将它送给七段数码管显示出来。
这里我门主要设计4位的十进制计数器和4位的二进制计数器以及七段LED显示译码器LEDSP,这里要采用16×4bit的异步双端口SRAM模块DSRAM4而库里边的lpm. lpm_componets在这里边出了些问题,所以直接从Quartus的库里边直接找lpm_ram_dp模块。
实习(课程设计)报告主题电子电路(EDA)课程设计报告目录1. 应用软件- 2 -2. 题目介绍- 2 -三、实习目的及要求- 2 -4.实习内容- 2 -五、实习经历- 16 -6. 参考文献- 17 -一、应用多重模拟 9.0电子工作台 (EBW),现在称为 Multisim。
2006年推出的Multisim 9.0软件是加拿大Interactive Image Technologies公司在1980年代末和1990年代初推出的用于电子电路仿真的虚拟电子工作平台软件。
它具有以下特点:(1)使用直观的图形界面创建电路,在计算机屏幕上模拟真实的实验室工作台,创建电路所需的电路元件,并从屏幕上选择电路仿真所需的测试,所有这些都在简单的操作中完成。
(2)Multisim 提供的虚拟控制面板在外观和操作上与真实的类似,并且可以显示测量结果。
(3)Multisim 带有丰富的组件库,便于选择。
(4)Multisim具有强大的电路分析能力,提供直流分析、交流分析、瞬态分析、傅里叶分析、传递函数分析等19种分析功能。
作为一种设计工具,它可以与其他电路分析设计和绘图软件进行数据交换。
(5)Multisim 也是一款出色的电子技术培训工具。
使用它提供的虚拟仿真,可以比测试更灵活地进行电路实验,模拟电路的实际运行,熟悉常用电子仪器的测量方法。
二、主题介绍电子设计自动化(EDA)是以计算机为工具,在EDA软件平台上,由原理图、波形图或硬件描述完成的设计文件,自动生成编译、简化、综合优化、布局布线仿真语言作为系统功能描述方法。
目标芯片适配和编程下载工作,从而提高设计效率,缩短开发周期。
EDA技术是现代电子行业不可或缺的技术,掌握EDA技术是电子类大学生就业的基本条件。
三、实习目的和要求1.了解并熟悉使用 Multisim 9.0 软件系统。
2.学习在 Multisim 9.0 中创建电路并运行特定的分析类型和仿真类型。
实验一组合电路的设计1. 实验目的:熟悉MAX + plus II 的VHDL 文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
2. 实验内容:设计一个2选1多路选择器,并进行仿真测试,给出仿真波形。
3. 实验程序如下:library ieee;use ieee.std_logic_1164.all; entity mux21a isport(a,b,s:in std_logic;y:out std_logic); end entity mux21a; architecture one of mux21a is beginy<=a when s='0' else b ; end architecture one ;4. 仿真波形(如图1-1所示)图1-1 2选1多路选择器仿真波形5. 试验总结:从仿真波形可以看出此2选1多路选择器是当s为低电平时,y输出为b, 当s为高电平时,y输出为a(y<=a when s='0' else b ;),完成2路选择输出。
实验二时序电路的设计1. 实验目的:熟悉MAX + plus II VHDL文本设计过程,学习简单的时序电路设计、仿真和测试。
2. 实验验内容:设计一个锁存器,并进行仿真测试,给出仿真波形。
3. 实验程序如下:library ieee;use ieee.std_logic_1164.all;entity suocun7 isport(clk: in std_logic;en: in std_logic;D: in std_logic_vector(7 downto 0);B:out std_logic_vector(7 downto 0)); end suocun7;architecture one of suocun7 issignal K: std_logic_vector(7 downto 0); beginprocess(clk,en,D)beginif clk'event and clk='1' thenif en ='0'thenK<=D;end if;end if;end process;B<=K;end one;4.仿真波形(如图2-1所示)图2-1 8位锁存器仿真波形此程序完成的是一个8位锁存器,当时钟上升沿到来(clk'event and clk='1')、使能端为低电平(en ='0')时,输出为时钟上升沿时的前一个数,从仿真波形看,实现了此功能。
EDA实验报告完结版一、实验目的本次 EDA 实验的主要目的是通过实际操作和设计,深入理解和掌握电子设计自动化(EDA)技术的基本原理和应用。
具体而言,包括熟悉 EDA 工具的使用方法,学会运用硬件描述语言(HDL)进行逻辑电路的设计与描述,以及通过综合、仿真和实现等流程,将设计转化为实际的硬件电路,并对其性能进行评估和优化。
二、实验环境本次实验所使用的 EDA 工具为_____,该工具提供了丰富的功能模块和强大的设计支持,包括原理图编辑、HDL 代码编写、综合、仿真和下载等。
实验所使用的硬件平台为_____开发板,其具备多种接口和资源,便于对设计的电路进行实际验证和测试。
三、实验内容1、基本逻辑门电路的设计与实现使用 HDL 语言(如 Verilog 或 VHDL)设计常见的基本逻辑门电路,如与门、或门、非门等。
通过编写代码,对逻辑门的输入输出关系进行描述,并进行综合和仿真,验证设计的正确性。
2、组合逻辑电路的设计与实现设计并实现较为复杂的组合逻辑电路,如加法器、减法器、编码器、译码器等。
运用 HDL 语言描述电路的功能,进行综合和仿真,确保电路在各种输入情况下的输出结果符合预期。
3、时序逻辑电路的设计与实现设计常见的时序逻辑电路,如计数器、寄存器、移位寄存器等。
在设计过程中,考虑时钟信号、同步复位和异步复位等因素,通过仿真验证时序逻辑的正确性,并对电路的性能进行分析。
4、有限状态机(FSM)的设计与实现设计一个有限状态机,实现特定的功能,如交通信号灯控制器、数字密码锁等。
明确状态转移条件和输出逻辑,通过编写 HDL 代码实现状态机,并进行综合和仿真,验证其功能的准确性。
5、综合与优化对设计的电路进行综合,生成门级网表,并通过优化工具对电路进行面积、速度等方面的优化,以满足特定的设计要求。
6、硬件实现与测试将综合后的设计下载到硬件开发板上,通过实际的输入输出信号,对电路的功能进行测试和验证。
观察电路在实际运行中的表现,对出现的问题进行分析和解决。
eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
实验一QUARTUS II软件安装、基本界面及设计入门一、实验目的:QUARTUSII是Altera公司提供的EDA工具,是当今业界最优秀的EDA设计工具之一。
提供了一种与结构无关的设计环境,使得电子设计人员能够方便地进行设计输入、快速处理和器件编程。
通过本次实验使学生熟悉QUARTUSII软件的安装,基本界面及基本操作,并练习使用QUARTUS的图形编辑器绘制电路图。
二、实验内容:1、安装QUARTUSII软件;2、熟悉QUARTUSII基本界面及操作;3通过一个4位加法器的设计实例来熟悉采用图形输入方式进行简单逻辑设计的步骤。
三、实验仪器:1、PC机一台;2、QUARTUSII软件;3、EDA实验箱。
四、实验原理:4位加法器是一种可实现两个4位二进制数的加法操作的器件。
输入两个4位二进制的被加数A和B,以及输入进位Ci,输出为一个4位二进制和数D和输出进位数Co。
半加操作就是求两个加数A、B的和,输出本位和数S及进位数C。
全加器有3位输入,分别是加数A、B和一个进位Ci。
将这3个数相加,得出本位和数(全加和数)D和进位数Co。
全加器由两个半加器和一个或门组成。
五、实验步骤:安装QUARTUSII软件;因为实验时我的机器了已经有QUARTUSII软件,所以我并没有进行安装软件的操作。
设计半加器:在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,使用QuartusIIGraphic Editor进行设计输入的步骤如下。
(1)、打开QUARTUSII软件,选择File-new project wizard…新建一个设计实体名为has的项目文件;(2)、新建文件,在block.bdf窗口下添加元件符号,并连接。
如下图:半加器原理图(3)、将此文件另存为has.gdf的文件。
(4)、在主菜单中选择Processing→Start Compilation命令,系统对设计进行编译,同时打开Compilation Report Flow Summary窗体,Status视图显示编译进程。
eda仿真实验报告EDA仿真实验报告一、引言EDA(Electronic Design Automation)是电子设计自动化的缩写,是指利用计算机技术对电子设计进行辅助、自动化的过程。
在现代电子设计中,EDA仿真是不可或缺的一环,它可以帮助工程师验证电路设计的正确性、性能和可靠性。
本篇报告将介绍我在EDA仿真实验中的经验和收获。
二、实验背景本次实验的目标是对一个数字电路进行仿真,该电路是一个4位加法器,用于将两个4位二进制数相加。
通过仿真,我们可以验证电路设计的正确性,并观察其在不同输入情况下的输出结果。
三、实验步骤1. 电路设计:首先,我们根据给定的要求和电路原理图进行电路设计。
在设计过程中,我们需要考虑电路的逻辑关系、时序要求以及输入输出端口的定义等。
2. 仿真环境搭建:接下来,我们需要选择合适的EDA仿真工具,并搭建仿真环境。
在本次实验中,我选择了Xilinx ISE Design Suite作为仿真工具,并创建了一个仿真项目。
3. 仿真测试向量生成:为了对电路进行全面的测试,我们需要生成一组合适的仿真测试向量。
这些测试向量应该覆盖了电路的所有可能输入情况,以验证电路的正确性。
4. 仿真运行:在仿真环境搭建完成后,我们可以开始进行仿真运行了。
通过加载测试向量,并观察仿真结果,我们可以判断电路在不同输入情况下的输出是否符合预期。
5. 仿真结果分析:仿真运行结束后,我们需要对仿真结果进行分析。
通过对比仿真输出和预期结果,可以判断电路设计的正确性。
如果有不符合预期的情况,我们还可以通过仿真波形分析,找出问题所在。
四、实验结果与讨论在本次实验中,我成功完成了4位加法器的仿真。
通过对比仿真输出和预期结果,我发现电路设计的正确性得到了验证。
无论是正常情况下的加法运算,还是特殊情况下的进位和溢出,电路都能够正确地输出结果。
在实验过程中,我还发现了一些有趣的现象。
例如,在输入两个相同的4位二进制数时,电路的输出结果与输入完全一致。
EDA实验报告EDA(VHDL编程)实验报告一、引言EDA (Electronic Design Automation) 是一种用于电子设计和验证的自动化工具。
VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述和建模数字系统。
本实验旨在使用VHDL编程并使用EDA工具进行设计和验证。
二、实验目的1.理解并熟悉VHDL编程2.学会使用EDA工具进行设计和验证3.实践数字系统的建模和仿真三、实验过程1.VHDL编程根据实验要求,我们使用VHDL编程来实现一个4位2选1多路器。
首先,我们定义输入端口和输出端口,并声明所需的信号和变量。
然后,我们编写组合逻辑和时序逻辑以实现所需的功能。
最后,我们将实例化该多路器并指定其输入和输出端口。
2.EDA工具设计和验证我们选择了 Xilinx ISE Design Suite 作为我们的 EDA 工具。
首先,我们创建一个新的项目并选择相应的 FPGA 芯片。
然后,我们添加我们的VHDL 设计文件到项目中,并进行综合、布局和路由。
最后,我们使用仿真工具验证我们的设计。
四、实验结果经过实验,我们成功地编写并实例化了一个4位2选1多路器。
我们使用 Xilinx ISE Design Suite 进行综合、布局和路由,并成功验证了我们的设计。
五、实验总结通过本实验,我们掌握了VHDL编程和EDA工具的使用。
我们学会了使用VHDL描述数字系统,并使用EDA工具进行设计和验证。
这些技能对于电子设计和验证非常重要,并将有助于我们更好地理解和应用数字系统的原理和方法。
在实验过程中,我们也遇到了一些困难和挑战。
例如,我们可能需要更深入地了解VHDL编程的语法和方法,以及如何使用EDA工具的高级功能。
此外,我们还需要更多的实践来提高我们的设计和仿真技能。
总之,本实验有助于我们深入学习和理解数字系统的设计和验证。
通过实践和使用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个图表,分别为直方图、密度图、散点图、热力图、箱线图和柱状图。
目录1 设计目的 (1)2 设计要求和任务 (1)3 总体设计思路及原理描述 (1)4 分层次方案设计及代码描述 (3)5 各模块的时序仿真图 (10)6 总结 (12)7 参考文献 (13)I1设计目的熟练掌握EDA技术利用计算机方面的课程解决专业课程方面点具体问题,达到解决问题,完成课程设计任务,培养实践的目的。
2设计要求和任务利用所学的EDA设计方法设计彩灯控制器,熟练使用使用QUARTUSII 应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。
功能要求:1.要有多种花型变化(至少4种).2.多种花型可以自动变换,循环往复.3.彩灯变换的快慢节拍可以选择.4.具有清零开关.3 总体设计思路及原理描述3.1功能描述在电路中以 1 代表灯亮,以 0 代表灯灭,由 0,1按不同的规律组合代表不同的灯光图案,同时使其选择不同的频率,从而实现多种图案多种频率的花样功能显示。
在该电路中只需简单的修改程序就可以灵活地调整彩灯图案和变化方式。
下面就以一个十六路彩灯控制系统的实现为例进行简单说明。
此十六路彩灯控制系统设定有六种花样变化 ,这六种花样可以进行自动切换 ,并且每种花样可以选择不同的频率。
3.2设计原理用VHDL进行设计 ,首先应该了解 ,VHDL语言一种全方位硬件描述语言 ,包括系统行为级 ,寄存传输级和逻辑门级多个设计层次。
应充分利用DL “自顶向下”的设计优点以及层次化的设计概层次概念对于设计复杂的数字系统是非常有用它使得人们可以从简单的单元入手 ,逐渐构成庞大而复杂的系统。
首先应进行系统模块的划分 ,规定每一模块的功能以及各个模块之间的接口。
最终设计方案为:以一个十六路彩灯花样控制器、一个四频率输出分频器 ,一个四选一控制器和一个时间选择器总共四部分来完成设计。
四选一控制器从分频器选择不同频率的时钟信号输送到彩灯花样控制器 ,从而达到控制彩灯闪烁速度的快慢 ,时间选择器控制每种速度维持的时间长短。
整个十六路彩灯控制系统设计的模块图如图 1所示图一4分层次方案设计及代码描述4.1子模块及其功能本次设计分为四个子模块 ,即十六路彩灯花样控制器、四频率输出分频器 ,四选一控制器和时间选择器 ,其子模块及其功能如下:4.1.1四频率输出分频器在本次设计中 ,设计了六种花样 ,要求这六种花样以不同的频率显示 ,而只有一个输入的时钟信号 ,所以对所输入的时钟信号进行 2 分频 ,4 分频 ,8分频 ,16分频 ,得到四种频率信号 ,CLKDIV模块用来完成此功能。
4.1.2时间选择器时间选择器实际上是两个分频器 ,其中一个频率是另一个频率的两倍。
本来这两个分频器是可以在上述的四频率输出器中实现的 ,但为了方便地为四选一控制器提供不同的时间选择条件 ,就将这两个分频器独立开来。
这两个输出的时钟信号组合起来就可以为四选一控制器提供 00,01,10,11 四个时间选择条件 ,如下图三所示。
图二4.1.3四选一控制器四选一控制器功能是从分频器中选择不同频率的时钟信号送给彩灯控制器 ,实现彩灯闪烁的频率变化。
4.1.4彩灯控制器彩灯控制电路是整个设计的核心 ,它负责整个设计的输出效果即各种彩灯图案的样式变化。
该程序充分地说明了用 VHDL设计电路的“弹”性 ,即可通过改变程序中输出变量 Q 的位数来改变彩灯的数目。
其中 ,P1进程对灯闪的速度控制有两种方式可改变灯闪的速度:一是改变外部时钟的赋值 ,二是改变信号U 的位数。
P2进程能进行彩灯的图案控制 ,改变 s的位数即可改变要控制图案的数目 ,改变输出变量 Q 的组合即可变幻彩灯图案。
最后 ,当各个模块均完成上述操作之后 ,即可利用MAXPLUS2的原理图输入 ,调用各个元器件(底层文件) ,以原理图的形式形成最后的十六路彩灯显示系统(顶层文件) ,并且进行仿真。
仿真通过 ,即可下载到指定的 CPLD芯片里面 ,并进行实际连线 ,进行最后的硬件测试。
当然 ,可以将各个模块所生成的元件符号存放在元件库中 ,用以被其它人或其它的设计所重复调用 ,以简化后面的设计。
4.2 代码描述4.2.1 时序控制电路部分程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity timecontrol is --定义实体port(clk: in std_logic; --时钟信号clr: in std_logic; --复位信号opt: in std_logic; --快慢控制信号clkout: out std_logic --输出时钟信号);end timecontrol;architecture one of timecontrol issignal clk_tmp: std_logic;signal counter: std_logic_vector(1 downto 0); --定义计数器beginprocess(clk,clr,opt)beginif clr='0' then --清零clk_tmp<='0';counter<="00";elsif clk'event and clk='1' thenif opt='0' then --四分频 if counter="01" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;else --八分频 if counter="11" thencounter<="00";clk_tmp<=not clk_tmp;elsecounter<=counter+'1';end if;end if;end if;end process;clkout<=clk_tmp; --输出分频后的信号end architecture one;4.2.2显示控制电路部分程序如下:library ieee;use ieee.std_logic_1164.all;entity showcontrol isport(clk: in std_logic; --输入时钟信号clr: in std_logic; --复位信号led: out std_logic_vector(15 downto 0)); --彩灯输出end showcontrol;architecture one1 of showcontrol istype states is --状态机状态列举(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); signal state: states;beginprocess(clk,clr)beginif clr='0'thenstate<=s0;led<="0000000000000000";elsif clk'event and clk='1'thencase state iswhen s0=>state<=s1;when s1=> state<=s2;led<="0001000100010001";when s2=> state<=s3;led<="0010001000100010";when s3=> state<=s4;led<="0011001100110011";when s4=> state<=s5;led<="0100010001000100";when s5=>state<=s6;led<="0101010101010101"; when s6=>state<=s7;led<="0110011001100110"; when s7=>state<=s8;led<="0111011101110111"; when s8=>state<=s9;led<="1000100010001000"; when s9=>state<=s10;led<="1001100110011001"; when s10=>state<=s11;led<="1010101010101010"; when s11=>state<=s12;led<="1011101110111011"; when s12=>state<=s13;led<="1100110011001100"; when s13=>state<=s14;led<="1101110111011101"; when s14=>state<=s15;led<="1110111011101110"; when s15=>state<=s0;led<="1111111111111111"; when others=>null;end case;end if;end process;end architecture one1;4.2.3顶层电路部分程序如下:library ieee;use ieee.std_logic_1164.all;entity root isport (clk: in std_logic;clr: in std_logic;opt:in std_logic;led: out std_logic_vector(15 downto 0)); --八路彩灯输出end root;architecture one3 of root iscomponent timecontrol is --定义元件:时序控制电路port(clk: in std_logic;clr: in std_logic;opt:in std_logic;clkout: out std_logic);end component timecontrol;component showcontrol is --定义元件:显示电路port(clk: in std_logic;clr: in std_logic;led: out std_logic_vector(15 downto 0));end component showcontrol;signal clk_tmp: std_logic;beginu1: timecontrol port map(clk=>clk,clr=>clr,opt=>opt,clkout=>clk_tmp); --例化时序控制模块u2: showcontrol port map(clk=>clk_tmp,clr=>clr,led=>led);--例化显示电路模块end architecture one3;5各模块的时序仿真图5.1时序控制电路timecontrol的仿真图如下:图三功能:时序控制电路metronome的功能是,用OPT控制输入信号CKL_IN的快慢节拍。