EDA_计数器及时序电路

合集下载

EDA-16位加法计数器的设计

EDA-16位加法计数器的设计

EDA-16位加法计数器的设计北京理工大学用程序输入方法设计一个16位二进制加法计数器学院:机械xxxx学院专业班级:10机械电子工程x班姓名:陈xx学号: 10xxxxxx指导教师:xxx 老师目录摘要 (1)1 绪论 (2)2 计数器的工作原理 (3)3 设计原理 (4)4 电路系统的功能仿真 (4)6 个人小结 (23)参考文献 (24)摘要计数器是数字系统中使用较多的一种时序逻辑器件。

计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。

计数器也可以作为分频、定时、脉冲节拍产生器和脉冲序列产生器使用。

计数器的种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。

本次课程设计将利用众多集成电路软件软件中的Quartus II软件,使用VHDL语言编程完成论文《用程序输入方法设计一个16位二进制加法计数器》,调试结果表明,所设计的计数器正确实现了计数功能。

关键词:二进制;加法计数器;VHDL语言1 绪论现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化,即EDA(Electronic Design Automation)技术。

EDA技术就是依赖功能强大的计算机,在集成电路软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

计数器eda实验报告

计数器eda实验报告

计数器eda实验报告计数器EDA实验报告引言:计数器是数字电路中常见的基本模块之一,用于计算和记录输入脉冲信号的数量。

在本次实验中,我们将使用EDA工具对计数器进行设计和分析。

通过对计数器的EDA实验,我们旨在深入了解计数器的工作原理和性能特点。

一、实验目的本次实验的目的是通过EDA工具对计数器进行设计和分析,具体包括以下几个方面:1. 了解计数器的基本原理和工作方式;2. 学习使用EDA工具进行电路设计和仿真;3. 分析计数器的性能指标,如最大计数值、计数速度等。

二、实验步骤1. 设计计数器的电路原理图;2. 使用EDA工具进行电路仿真;3. 分析仿真结果,包括计数器的计数规律、计数速度等;4. 调整计数器的参数,观察对计数结果的影响;5. 总结实验结果并提出改进意见。

三、计数器的设计原理计数器是由触发器和逻辑门组成的电路,可以实现对输入脉冲信号的计数功能。

常见的计数器包括二进制计数器、十进制计数器等。

在本次实验中,我们将设计一个4位二进制计数器。

四、EDA工具的使用我们选择使用Xilinx ISE Design Suite进行电路设计和仿真。

该工具具有强大的功能和易于使用的界面,方便我们进行计数器的设计和分析。

五、仿真结果分析通过对计数器的仿真结果进行分析,我们可以得到以下结论:1. 计数器的计数规律:根据计数器的设计原理,我们可以观察到计数器的计数规律为二进制递增。

2. 计数器的计数速度:计数器的计数速度取决于输入脉冲信号的频率和计数器的时钟频率。

通过适当调整时钟频率,我们可以实现不同速度的计数。

六、参数调整与性能改进在实验过程中,我们可以通过调整计数器的参数来改进其性能。

例如,我们可以增加计数器的位数,以提高其计数范围;或者调整计数器的时钟频率,以改变其计数速度。

通过不断优化和改进,我们可以得到更加高效和灵活的计数器设计。

七、实验总结通过本次计数器EDA实验,我们深入了解了计数器的工作原理和性能特点,并学会了使用EDA工具进行电路设计和仿真。

EDA实验报告——计数器

EDA实验报告——计数器

EDA实验报告——计数器一、实验目的本实验主要是通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。

二、实验原理计数器是数字电路的重要组成部分,在数字电路的多个应用中都有着广泛的应用。

计数器可以实现多种数字处理功能,如二进制计数、定量计数、计时、频率分频等。

三、实验材料1. Protues软件2. 74LS90集成电路3. 7段数码管4. 4位拨动开关5. 4个LED灯6. 电路板、杜邦线等。

四、实验内容1. 给定 74LS90 计数器数据手册,分析本实验使用到的 74LS90 芯片的接口及特性。

2. 根据实验需求,用 Protues 软件搭建计数器电路图。

3. 在计数器电路图中连通 74LS90 芯片的译码器输出端口,设置与四个拨动开关相连的输入端口以及 LED 显示器输出端口,实现计数器的计数。

4. 在计数器的输出端口增加 7 段数码管,通过数码管显示计数值。

5. 根据实验需求搭建模电流源电路,对实验电路进行仿真分析,并对仿真结果进行评估。

五、实验步骤2. 从库中拖动 74LS90 芯片、7 段数码管、拨动开关、LED 灯等元件到设计图中。

4. 在 74LS90 芯片工作模式的选择端口接上拨动开关,选择计数器的计数方式。

5. 配置模电流源电路,并设置仿真参数。

6. 进行仿真并记录仿真结果。

七、实验结果本实验搭建的计数器能够正确地进行计数,并且将计数结果通过数码管和 LED 灯显示出来。

在进行仿真分析时,根据仿真数据评估实验电路的合理性。

本实验通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。

实验中主要学习了数字计数器的结构、性能和工作原理,在搭建计数器电路时主要包括了 74LS90 芯片的接口和设置以及输入输出端口的设置。

通过本实验,我进一步了解了计数器的基本知识和原理,也学习了如何使用 Protues 软件进行电路的搭建和仿真。

《EDA技术及应用》实验指导书

《EDA技术及应用》实验指导书

实验一组合逻辑器件设计一、实验目的1、通过一个简单的3-8译码器的设计,掌握组合逻辑电路的设计方法。

2、掌握组合逻辑电路的静态测试方法。

3、初步了解QUARTUS II原理图输入设计的全过程。

二、实验主要仪器与设备1、输入:DIP拨码开关3位。

2、输出:LED灯。

3、主芯片:EP1K10TC100-3。

三、实验内容及原理三-八译码器即三输入,八输出。

输出与输入之间的对应关系如表1-1-1所示。

表1-1 三-八译码器真值表四、预习要求做实验前必须认真复习数字电路中组合逻辑电路设计的相关内容(编码器、译码器)。

五、实验步骤1、利用原理图设计输入法画图1-1-1。

2、选择芯片ACEX1K EP1K10TC100-3。

3、编译。

4、时序仿真。

5、管脚分配,并再次编译。

6、实验连线。

7、编程下载,观察实验结果。

图1-1 三-八译码器原理图六、实验连线用拨码开关的低三位代表译码器的输入(A,B,C),将之与EP1K10TC100-3的管脚相连;用LED灯来表示译码器的输出(D0~D7),将之与EP1K10TC100-3芯片的管脚相连。

拨动拨档开关,可以观察发光二极管与输入状态的对应关系同真值表中所描述的情况是一致的。

七、实验结果八、思考题在输入端加入使能端后应如何设计?附:用硬件描述语言完成译码器的设计::LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY T2 ISPORT(A: IN STD_LOGIC_VECTOR(2 DOWNTO 0);Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END T2;ARCHITECTURE A OF T2 ISBEGINWITH A SELECTY <= "00000001" WHEN "000","00000010" WHEN "001","00000100" WHEN "010","00001000" WHEN "011","00010000" WHEN "100","00100000" WHEN "101","01000000" WHEN "110","10000000" WHEN OTHERS;END A;实验二组合电路设计一、实验目的1、掌握组合逻辑电路的设计方法。

基于EDA的三位十进制计数器

基于EDA的三位十进制计数器

三位十进制计数器一、设计目的采用文本输入法设计三位十进制加法计数器。

编写VHDL源代码,得出正确的仿真波形,并在实验开发系统上进行硬件演示。

二、设计内容设计一个三位10进制计数器,对计数器相关的理论进行分析、归纳和总结;三位10进制计数器的结构组成及原理分析。

程序代码(含注释);给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。

三、计数器设计原理计数器的输入信号是计数信号(CLK),门控信号是手动清零信号(RESET)、手动允许计数(ENA)。

清零信号Rest为1时,保持在清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。

计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。

计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。

三位十进制计数显示器的设计分三步完成。

先设计十进制计数电路,再设计显示译码电路,最后建立一个顶层文件将两者连接起来。

四、设计程序代码1)三位十进制计数程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COU10 ISPORT(CLK,RESET,CIN :IN STD_LOGIC;CO :OUT STD_LOGIC;BCDAP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COU3;ARCHITECTURE BEHAVE OF COU3 ISSIGNAL BCDAN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDBN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDCN:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINBCDAP<=BCDAN;BCDBP<=BCDBN;BCDCP<=BCDCN;KK1:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDAN<="0000";ELSIF(CIN='1')THENIF(BCDAN="1001")THENBCDAN<="0000";ELSEBCDAN<=BCDAN+'1';END IF;END IF;END IF;END PROCESS KK1;KK2:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDBN<="0000";ELSIF(CIN='1') AND (BCDAN="1001")THENIF(BCDBN="1001")THENBCDBN<="0000";ELSEBCDBN<=BCDBN+'1';END IF;END IF;END IF;END PROCESS KK2;KK3:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDCN<="0000";ELSIF(CIN='1') AND (BCDBN="1001") AND (BCDAN="1001")THENIF(BCDCN="1001")THENBCDCN<="0000";ELSEBCDCN<=BCDCN+'1';END IF;END IF;END IF;END PROCESS KK3;END BEHAVE;2)显示译码器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY YIMAQI ISPORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END SEG7;ARCHITECTURE BEHAVE OF SEG7 ISSIGNAL INDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGININDATA<=II;PROCESS(INDATA)BEGINCASE INDATA ISWHEN"0000"=> Y<="0000001";WHEN"0001"=> Y<="1001111";WHEN"0010"=> Y<="0010010";WHEN"0011"=> Y<="0000110";WHEN"0100"=> Y<="1001100";WHEN"0101"=> Y<="0100100";WHEN"0110"=> Y<="0100000";WHEN"0111"=> Y<="0001111";WHEN"1000"=> Y<="0000000";WHEN"1001"=> Y<="0000100";WHEN"1010"=> Y<="0001000";WHEN"1011"=> Y<="1100000";WHEN"1100"=> Y<="0110001";WHEN"1101"=> Y<="1000010";WHEN"1110"=> Y<="0110000";WHEN"1111"=> Y<="0111000";WHEN OTHERS=>Y<="XXXXXXX";END CASE;END PROCESS;END BEHAVE;3)顶层文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DINGCEN ISPORT(CLK,RESET,ENA:IN STD_LOGIC;SEG1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG3: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COU37SEG;ARCHITECTURE X37 OF COU37SEG ISCOMPONENT SEG7PORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;COMPONENT COU3PORT(CLK,RESET,CIN:IN STD_LOGIC;BCDAP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNAL A,B,C:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU0:COU3 PORT MAP(CLK,RESET,ENA,A,B,C);U1:SEG7 PORT MAP(A,SEG1);U2:SEG7 PORT MAP(B,SEG2);U3:SEG7 PORT MAP(C,SEG3);END X37;五、程序设计步骤1)打开ispEXPERT软件,建立一个新的工程cnt10;1 单击菜单File→New Project2 输入工程路径,工程名2)建立VHDL文件单击File→New菜单项,选择VHDL File选项,单击OK按钮以建立VHDL文件,分别建立十进制计数程序的vhd文件COU10.vhd,显示译码器vhd文件YIMAQI.vhd和顶层文件DINGNGCEN.vhd3)然后设定管脚4)最后保存编译运行,生成可下载到板子里面的jed文件5)器件下载6)波形仿真结果六、设计结果与分析三位十进制加法计数器实现了从000到999的计数,当计数到999时,计数器的输出置0,下一次又从0到999计数。

EDA实验报告-实验3计数器电路设计

EDA实验报告-实验3计数器电路设计

暨南大学本科实验报告专用纸课程名称 EDA实验成绩评定实验项目名称计数器电路设计指导教师郭江陵实验项目编号 03 实验项目类型验证实验地点 B305 学院电气信息学院系专业物联网工程组号: A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。

EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为; EDAPRO/240H实验仪主板的VCCIO 跳线器组中“”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为。

请参考前面第二章中关于“电源模块”的说明。

二、实验目的1、了解各种进制计数器设计方法2、了解同步计数器、异步计数器的设计方法3、通过任意编码计数器体会语言编程设计电路的便利三、实验原理时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。

计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。

利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。

输出显示模块用VHDL实现。

四、实验内容1、用74161构成8位二进制同步计数器(程序为T3-1);2、用74390构成8位二——十进制异步计数器(程序为T3-2);3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):0,2,5,3,4,6,1五、实验要求学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。

六、设计框图首先要熟悉传统数字电路中同步、异步计数器的工作与设计。

在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。

eda计数器的实验报告

eda计数器的实验报告

eda计数器的实验报告EDA计数器的实验报告引言:计数器是数字电路中常用的组合逻辑电路,用于实现对输入信号的计数功能。

EDA计数器是一种基于EDA(Electronic Design Automation,电子设计自动化)技术的计数器,利用EDA工具进行设计和仿真,能够更加高效地完成计数任务。

本实验旨在通过设计和实现EDA计数器,探索其原理和应用。

一、实验目的本实验的目的是通过设计和实现EDA计数器,深入理解计数器的工作原理,并掌握EDA技术在数字电路设计中的应用。

通过实验,我们将学习以下内容:1. 计数器的基本原理和分类;2. EDA工具的使用方法;3. 数字电路的设计与仿真。

二、实验步骤1. 确定计数器的功能要求:根据实验要求,我们需要设计一个4位二进制计数器,能够实现从0000到1111的计数功能。

2. 使用EDA工具进行设计:选择合适的EDA工具(如Verilog、VHDL等),根据计数器的功能要求,编写相应的代码。

3. 进行仿真:利用EDA工具提供的仿真功能,对设计的计数器进行仿真,验证其正确性和稳定性。

4. 进行综合和布局布线:将设计的计数器进行综合和布局布线,生成对应的逻辑网表和物理布局。

5. 进行时序分析和时序优化:对设计的计数器进行时序分析,优化其时序性能,确保其能够满足实际应用需求。

6. 进行静态和动态功耗分析:对设计的计数器进行静态和动态功耗分析,评估其功耗性能,并进行相应的优化。

三、实验结果与分析经过以上步骤的设计和优化,我们成功实现了一个4位二进制计数器。

通过EDA工具的仿真功能,我们验证了计数器的正确性和稳定性。

在时序分析和时序优化过程中,我们发现了一些潜在的时序问题,并进行了相应的优化,确保了计数器的正常工作。

在静态和动态功耗分析中,我们评估了计数器的功耗性能,并进行了一些优化措施,减少了功耗。

四、实验总结通过本次实验,我们深入学习了计数器的原理和分类,并掌握了EDA技术在数字电路设计中的应用。

EDA 实验2简单分频时序逻辑电路设计 实验报告

EDA 实验2简单分频时序逻辑电路设计 实验报告

时序电路设计实验目的:1.掌握条件语句在简单时序模块设计中的使用。

2.学习在Verilog模块中应用计数器。

实验环境:Windows 7、MAX+PlusⅡ10等。

实验内容:1.模为60的8421BCD码加法计数器的文本设计及仿真。

2.BCD码—七段数码管显示译码器的文本设计及仿真。

3.用For语句设计和仿真七人投票表决器。

4.1/20分频器的文本设计及仿真。

实验过程:一、模为60的8421BCD码加法计数器的文本设计及仿真:(1)新建文本:选择菜单File下的New,出现如图5.1所示的对话框,在框中选中“Text Editor file”,按“OK”按钮,即选中了文本编辑方式。

图5.1 新建文本(2)另存为Verilog编辑文件,命名为“count60.v”如图5.2所示。

(3)在编辑窗口中输入程序,如图5.3所示。

图5.2 另存为.V编辑文件图5.4 设置当前仿真的文本设计图5.3 模为60的8421BCD码加法计数器的设计代码(4)设置当前文本:在MAX+PLUS II中,在编译一个项目前,必须确定一个设计文件作为当前项目。

按下列步骤确定项目名:在File菜单中选择Project 中的Name选项,将出现Project Name 对话框:在Files 框内,选择当前的设计文件。

选择“OK”。

如图5.4所示。

(5)打开编译器窗口:在MAX—plusⅡ菜单内选择Compiler 项,即出现如图5.5的编译器窗口。

图5.5 编译器窗口选择Start即可开始编译,MAX+PLUS II编译器将检查项目是否有错,并对项目进行逻辑综合,然后配置到一个Altera 器件中,同时将产生报告文件、编程文件和用于时间仿真用的输出文件。

(6)建立波形编辑文件:选择菜单File下的New选项,在出现的New对话框中选择“Waveform Editor File”,单击OK后将出现波形编辑器子窗口。

(7)仿真节点插入:选择菜单Node下的Enter Nodes from SNF选项,出现如图5.6所示的选择信号结点对话框。

EDA实验报告-实验3计数器电路设计

EDA实验报告-实验3计数器电路设计

暨南大学本科实验报告专用纸课程名称EDA实验成绩评定实验项目名称计数器电路设计指导教师郭江陵实验项目编号03 实验项目类型验证实验地点B305学院电气信息学院系专业物联网工程组号:A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。

EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。

请参考前面第二章中关于“电源模块”的说明。

二、实验目的1、了解各种进制计数器设计方法2、了解同步计数器、异步计数器的设计方法3、通过任意编码计数器体会语言编程设计电路的便利三、实验原理时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。

计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。

利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。

输出显示模块用VHDL实现。

四、实验内容1、用74161构成8位二进制同步计数器(程序为T3-1);2、用74390构成8位二——十进制异步计数器(程序为T3-2);3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):0,2,5,3,4,6,1五、实验要求学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。

六、设计框图首先要熟悉传统数字电路中同步、异步计数器的工作与设计。

在MAX+PLUSII中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。

2020年(OA自动化)电子设计自动化(eda)实验指导书

2020年(OA自动化)电子设计自动化(eda)实验指导书

(OA自动化)电子设计自动化(eda)实验指导书电子设计自动化(EDA)实验指导书前言近些年来,电子设计自动化(EDA)技术发展迅速。

一方面,各种大容量、高性能、低功耗的可编程逻辑器件不断推出,使得专用集成电路(ASIC)的生产商感受到空前的竞争压力。

另一方面,出现了许多EDA设计辅助工具,这些工具大大提高了新型集成电路的设计效率,使更低成本、更短周期的复杂数字系统开发成为可能。

于是一场ASIC与FPGA/CPLD之争在所难免。

然而PLD器件具有先天的竞争优势,那就是可以反复编程,在线调试。

EDA技术正是这场较量的推动引擎之一。

一般来说,EDA技术就是以计算机为平台,以EDA软件工具为开发环境,以HDL为设计语言,以可编程器件为载体,以ASIC、SOC芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。

设计者只需编写硬件描述语言代码,然后选择目标器件,在集成开发环境里进行编译,仿真,综合,最后在线下载调试。

整个过程,大部分工作由EDA软件完成。

全球许多著名的可编程器件提供商都推出了自己的集成开发工具软件,如Altera公司的MAX+PLUSⅡ、QuartusⅡ软件;Xilinx公司的Foundation、ISE软件,Lattice公司的ispExpert软件,Actel 公司的Libero软件等。

这些软件的推出,极大地促进了集算法设计、芯片编程、电路板设计于一体的EDA技术的发展。

另外,在以SOC 芯片为目标器件的电子系统设计要求下,可编程器件的内部开始集成高速的处理器硬核、处理器软核、DSP模块、大量的存储资源、高速的串行收发模块、系统时钟管理器、多标准的I/O接口模块,亦使得设计者更加得心应手,新一轮的数字革命由此引发。

EDA技术是一门实践性很强的学科,要培养出具有竞争力的一流IC设计人才,动手能力是关键。

只有通过理论学习,加上现场实验,在使用软件编程加硬件调试的过程中真正获得锻炼,增长技能。

EDA计数器实验报告

EDA计数器实验报告

EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。

2、掌握计数器的设计原理以及设计方法。

3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。

二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。

使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。

实验内容:本次实验要求设计一个模为自己学号后 3 位的计数器(模108)。

各个零部件可以用LPM来定制,而顶层则要使用VHDL语言以元件例化的方法来实现。

1、VHDL语言的部分代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exp_cnt108 isport(clk0,clk,clrn,En:in std_logic;b,s,g:out std_logic_vector(3 downto 0);c:out std_logic;cc:out std_logic;sb,ss,sg:out std_logic;ga,gb,gc,gd,ge,gf,gg:out std_logic);end exp_cnt108;architecture rtl of exp_cnt108 iscomponent count4port(clk:in std_logic;q:out std_logic_vector(1 downto 0));end component;component decoder2_3port(data:in std_logic_vector(1 downto 0);eq0,eq1,eq2:out std_logic);end component;component mux4_3_1port( data0x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data1x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data2x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);sel : IN STD_LOGIC_VECTOR (1 DOWNTO 0);result : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));end component;component my7449port(cout:in std_logic_vector(3 downto 0);a,b,c,d,e,f,g:out std_logic);end component;component exp_cnt10port(Clk,clrn,En,cin:in std_logic;cq:out std_logic_vector(3 downto 0);cout:out std_logic);end component;signal clr,cin:std_logic;signal q:std_logic_vector(1 downto 0);signal coutb,couts,coutg,cout:std_logic_vector(3 downto 0);signal c1,c2,c3: std_logic;signal eq0,eq1,eq2: std_logic;signal qa,qb,qc,qd,qe,qf,qg: std_logic;beginu0:count4 port map(clk0,q);u1:decoder2_3 port map(q,eq0,eq1,eq2);sb<=eq2;ss<=eq1;sg<=eq0;cin<='1';u2:exp_cnt10 port map(clk,clrn or clr,En,cin,coutg,c1);u3:exp_cnt10 port map(clk,clrn or clr,En,c1,couts,c2);u4:exp_cnt10 port map(clk,clrn or clr,En,c2 and c1,coutb,c3);b<=coutb;s<=couts;g<=coutg;cc<=c1;c<=c2;clr<=coutb(0) and coutg(3);u5:mux4_3_1 port map(coutg,couts,coutb,q,cout);u6:my7449 port map(cout,qa,qb,qc,qd,qe,qf,qg);ga<=qa;gb<=qb;gc<=qc;gd<=qd;ge<=qe;gf<=qf;gg<=qg;end rtl;三、波形仿真及下载验证:如图所示:波形仿真:仿真参数设置:Entime:45us Grid size:100ns clk:clock→period:10ns波形说明:clrn为0,En为0时,保持;clrn为0,En为1时,计数;clrn为1时,清零;由仿真图知,计数到107后从0开始计数。

数字逻辑计数器与时序电路基础知识

数字逻辑计数器与时序电路基础知识

数字逻辑计数器与时序电路基础知识数字逻辑计数器和时序电路是数字电路中非常重要的组成部分。

它们在计算机、通信和电子设备中扮演着关键的角色。

本文将介绍数字逻辑计数器与时序电路的基础知识,包括其原理、工作方式和应用领域。

通过深入了解这些概念,读者将能够更好地理解数字电路的工作原理和设计方法。

一、数字逻辑计数器数字逻辑计数器是一种能够按照一定规律进行计数的电路。

它可以通过输入时钟信号来进行计数,每个时钟脉冲使计数器的值加1或减1,从而实现计数的功能。

数字逻辑计数器分为同步计数器和异步计数器。

同步计数器是一类基本的逻辑计数器,其计数动作是由时钟控制的。

同步计数器的各个触发器在同一个时钟上升沿(或下降沿)时同时改变状态,从而实现同步计数的功能。

例子包括二进制计数器和BCD计数器。

异步计数器与同步计数器不同,其计数动作不是由一个单一的时钟信号控制的。

异步计数器的输出能够反映当前计数的状态,并通过状态转移电路实现下一个计数状态的选择。

常见的异步计数器有JK触发器计数器和模N计数器。

二、时序电路时序电路是一种根据输入信号的时间顺序来控制输出信号的电路。

它利用时钟信号和触发器来实现对输出信号的控制和调度。

时序电路广泛应用于计算机的各个模块以及各类数字系统中。

它们可以根据特定的时序和顺序要求来控制各个模块的工作和数据传输。

常见的时序电路包括时钟发生器、触发器、时序译码器等。

时序电路的设计需要考虑到各种时序要求,如时钟频率、信号延迟、数据保持等。

一个好的时序设计能够确保数字系统的正确运行和可靠性。

三、数字逻辑计数器与时序电路的应用数字逻辑计数器与时序电路在各种数字系统中都有广泛的应用。

以下是几个常见的应用领域:1. 计算机中的时序控制:数字逻辑计数器和时序电路用于计算机的指令执行、中断控制、微操作调度等关键模块中,确保计算机的指令和数据按照正确的顺序进行处理。

2. 通信系统中的时钟同步:时序电路被用于通信系统中的时钟同步模块,确保各个设备的时钟保持同步,以便正确地接收和发送数据。

eda24进制计数器设计

eda24进制计数器设计

设计一个EDA(电子设计自动化)工具的24进制计数器的基本步骤如下:
1. 构建基本逻辑单元:
在设计24进制计数器之前,首先需要构建基本逻辑单元,如触发器或锁存器,以便存储和处理计数。

2. 确定计数范围:
在开始设计前,需要确定计数器的计数范围。

例如,如果需要表示0到23的范围,则计数器需要能在该范围内有效计数。

3. 推导需求特征:
基于你选择的基本逻辑单元推导组合逻辑和时序逻辑特征,以设计恰当的计数器。

4. 设计状态机:
设计一个有限状态机(FSM),以观察计数器状态的转换并确保可靠性和稳定性。

5. 设计24进制加法器:
设计一个全加器以实现24进制数的加法操作。

由于24进制计数器每个位最高数值为23(用0-N表示,例如0-9、A-N或0-夜,按照标准24进制),因此需要考虑进位。

6. 链接基本组件:
将设计好的24进制加法器连接到触发器或锁存器,以更新计数值并从一个状态迁移到另一个状态。

7. 时钟控制:
引入时钟模块来控制计数器的工作节奏。

每次时钟周期到达时,计数器将更新计数值。

8. 设计复位和清零逻辑:
实现一个逻辑控制来负责复位及清零操作,将计数器重置为初始状态。

9. 进行仿真测试:
运行仿真测试,检查计数器在不同条件下的运行情况,确保其准确、可靠地工作。

10. 设计可视化界面:
创建一个可视化界面,以便于用户直观地获取计数器状态和计数过程。

eda的几个实验仿真图形

eda的几个实验仿真图形

实验项目一:74LS318译码器的设计实验目的:1、通过一个简单的三-八译码器的设计,让学生掌握组合逻辑电路的设计方法。

2、掌握组合逻辑电路的静态测试方法。

3,初步了解QUARTUS II原理图输入设计的全过程。

二、实验的硬件要求:1、EDA2000实验箱(其他厂家具有同等配置试验箱均可),主要使用:输入:DIP拨码开关3位、输出:LED灯;2、主芯片:EP1K1OTC100-3(大于此规模的芯片亦可);3、计算机与QUARTUS 软件;三、实验原理三-译码器为三输入、八输出。

当输入信号按二进制方式的表示值为N时(输入端低电平有效),输出端从零到七,标号为N输出端输出低电平表示有信号产生,而其它则为高电平表示无信号产生。

因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为低电平的情况下,能表示所有的输入组合,因此不需要像编码器实验那样再用一个输出端指示输出是否有效。

但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。

本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。

表8.1三-八译码器真值表输入输出A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y00 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 1 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 1 0 0 01 0 0 0 0 0 1 0 0 0 01 0 1 0 0 1 0 0 0 0 01 1 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0四、实验步骤:打开QUARTUS II,打开原理图编辑器,按图8.26进行原理图设计。

各逻辑符号放置在原理图上后,经检查保存原理图。

完成了原理图的输入后,我们就可以用前面介绍的软件的使用方法,对程序进行管脚的定义、编译、仿真、下载,完成整个实验的设计。

eda实验报告计数器

eda实验报告计数器

eda实验报告计数器EDA实验报告-计数器引言:计数器是数字电路中常用的基本模块之一,它在各个领域都有着广泛的应用。

本实验旨在通过EDA(电子设计自动化)软件进行计数器的设计与仿真,探索计数器的原理和功能。

一、计数器的基本原理计数器是一种能够按照规定的顺序改变其输出状态的电子电路。

它通过内部的触发器和逻辑门实现数字信号的计数功能。

常见的计数器有二进制计数器、十进制计数器等。

二、实验设计与仿真1. 实验目标本次实验的目标是设计一个4位二进制计数器,并通过EDA软件进行仿真验证。

计数器的功能是在每个时钟脉冲到来时,输出的二进制数加1。

2. 设计思路计数器的设计需要考虑以下几个方面:- 选择适当的触发器:本实验选择了D触发器作为计数器的基本单元,因为D触发器具有简单、易于控制的特点。

- 确定计数器的位数:本实验设计了一个4位计数器,即可以表示0~15的二进制数。

- 连接逻辑门:通过逻辑门将各个触发器连接起来,实现计数器的功能。

3. 电路设计根据设计思路,我们使用EDA软件进行电路设计。

首先,将4个D触发器连接起来,形成4位计数器。

然后,根据计数器的功能要求,将时钟信号连接到每个触发器的时钟输入端。

最后,将各个触发器的输出通过逻辑门进行连接,得到计数器的输出。

4. 仿真验证完成电路设计后,我们使用EDA软件进行仿真验证。

通过输入不同的时钟信号,观察计数器的输出是否符合预期。

在仿真过程中,我们可以调整时钟信号的频率,观察计数器的计数速度。

三、实验结果与分析通过EDA软件的仿真,我们得到了计数器的输出结果。

在时钟信号的作用下,计数器按照预期进行了计数,并输出了相应的二进制数。

通过观察输出结果,我们可以得出以下几点结论:- 计数器的输出与时钟信号的频率有关,频率越高,计数速度越快。

- 计数器的输出按照二进制的顺序进行计数,当达到最大值时,会从0重新开始计数。

四、实验总结本次实验通过EDA软件进行了计数器的设计与仿真。

电路中的计数器与时序电路

电路中的计数器与时序电路

电路中的计数器与时序电路导语:电路中的计数器与时序电路是数字系统中常见的组成部分。

它们在计算机、通信设备和嵌入式系统等领域起到了重要的作用。

本文将介绍计数器和时序电路的原理、应用和设计方法。

一、计数器的原理计数器是一种可以根据输入信号的变化来进行计数的电路。

它通常由触发器和组合逻辑门构成。

触发器用于存储计数值,而组合逻辑门用于根据输入信号和当前计数值来确定下一个计数值。

计数器可以分为同步计数器和异步计数器两种类型。

同步计数器的每个触发器都与时钟信号同步,计数值在时钟的上升沿或下降沿改变;而异步计数器的触发器之间没有时钟同步,计数值由触发器之间的逻辑关系决定。

计数器有很多种应用场景,例如,用于测量时间的秒表、用于控制频率的频率分频器等。

通过调整计数器的位数和计数方式,可以实现不同的计数范围和步长。

二、时序电路的原理时序电路是一种可以根据特定的时序要求来对输入信号进行处理的电路。

它通常由触发器、组合逻辑门和时序逻辑门构成。

触发器用于存储信号的状态,组合逻辑门用于根据输入信号和当前状态来确定下一个状态,时序逻辑门用于控制时序要求。

时序电路主要用于实现状态机、序列逻辑和时序控制等功能。

例如,计算机中的存储器控制器、通信设备中的调制解调器等都离不开时序电路的支持。

时序电路的设计需要考虑时钟信号的稳定性、时序要求的满足度和功耗等因素。

合理的时序设计可以提高电路的可靠性和性能。

三、计数器与时序电路的应用计数器和时序电路在数字系统中有广泛的应用。

下面将介绍它们在几个常见领域的具体应用:1.计算机系统:计数器用于处理定时要求和计数要求,例如,CPU中的时钟计数器可以用于同步各个部件的操作;而时序电路用于实现指令的执行顺序和控制信号的生成。

2.通信系统:计数器用于控制频率的分频和频率合成,时序电路用于解调调制信号和生成时钟信号。

3.嵌入式系统:计数器和时序电路用于实现众多功能,例如,定时中断、状态机控制和时序输入处理等。

数字芯片EDA工具

数字芯片EDA工具

数字芯片EDA工具1. 简介数字芯片EDA(Electronic Design Automation)工具是一类专门用于数字芯片设计的软件工具。

这些工具通过提供各种功能和功能模块,帮助工程师完成数字芯片的设计、验证和优化工作。

数字芯片EDA工具包括电路设计工具、仿真工具、布局与布线工具等。

2. 电路设计工具2.1 逻辑设计工具逻辑设计工具是数字芯片EDA工具中最基础的部分,其功能是帮助工程师进行数字电路的逻辑设计。

逻辑设计工具提供了一系列的逻辑门、触发器、计数器等基本逻辑元件,以及与、或、非等逻辑运算。

工程师可以使用这些元件和运算进行电路的逻辑设计,然后通过仿真工具进行验证。

2.2 时序设计工具时序设计工具是用于数字芯片的时序设计的工具。

时序设计工具可以根据工程师的输入,生成时序逻辑电路的表达式和状态转换图。

工程师可以根据实际需要,在时序设计工具上进行时序约束的设置,以达到设计的时序要求。

3. 仿真工具仿真工具是用于验证数字芯片设计的重要工具。

工程师可以通过仿真工具,在设计完成之前进行各种测试和验证。

仿真工具可以对设计进行功能仿真、时序仿真等。

通过仿真工具,工程师可以不断调整和优化设计,以满足设计要求。

仿真工具的核心是仿真器。

仿真器可以对设计进行仿真运行,并显示设计的状态和结果。

仿真器可以模拟特定的输入条件,以验证设计在不同输入条件下的行为。

另外,仿真工具还可以提供波形显示,方便工程师观察和分析输出波形。

4. 布局与布线工具布局与布线工具是数字芯片EDA工具中的另一个关键模块。

布局与布线工具将电路设计映射到芯片的物理布局上,通过优化布局和布线,提高芯片的性能和可靠性。

布局工具可以根据设计要求,对芯片进行区域划分、资源分配等操作,生成一个满足约束条件的初始布局。

布线工具则根据布局结果,进行线路的布线规划和优化。

通过布局与布线工具,工程师可以控制电路的物理排列和布线路径,提高芯片的时序性能和功耗。

5. 其他工具除了上述主要功能模块外,数字芯片EDA工具还包括其他辅助工具。

eda计数器的课程设计

eda计数器的课程设计

eda计数器的课程设计一、课程目标知识目标:1. 让学生理解EDA(电子设计自动化)计数器的基本原理和功能;2. 使学生掌握计数器的种类、工作方式及应用场景;3. 帮助学生掌握使用EDA工具进行计数器设计的方法。

技能目标:1. 培养学生运用EDA工具设计简单计数器的能力;2. 培养学生分析计数器电路、调试和优化电路的技能;3. 提高学生团队协作和沟通表达的能力。

情感态度价值观目标:1. 培养学生对EDA技术及电子设计的兴趣和热情;2. 培养学生严谨、细致、勇于探索的科学态度;3. 增强学生的国家认同感和自豪感,认识到我国在EDA技术领域的发展。

课程性质分析:本课程为电子技术专业课程,以实践为主,理论联系实际。

结合学生特点和教学要求,注重培养学生的实际操作能力和团队合作精神。

学生特点分析:学生为高中生,具有一定的电子技术基础和动手能力,对新鲜事物充满好奇心,喜欢探索和实践。

教学要求:1. 理论与实践相结合,注重培养学生的实际操作能力;2. 激发学生的创新意识,提高学生的设计能力;3. 引导学生关注我国EDA技术领域的发展,培养学生的国家认同感。

二、教学内容1. 计数器原理:讲解计数器的基本概念、分类(同步、异步计数器)、工作原理和功能;教材章节:第二章第二节《计数器的基本概念与分类》2. EDA工具使用:介绍常见的EDA工具(如Multisim、Proteus等),学习如何使用这些工具进行计数器设计;教材章节:第三章第一节《电子设计自动化工具介绍》3. 计数器设计:分析简单计数器电路原理,学习使用EDA工具进行设计,包括电路图绘制、仿真测试等;教材章节:第三章第三节《计数器的设计与仿真》4. 电路调试与优化:学习如何对计数器电路进行调试、优化,提高电路性能;教材章节:第四章第二节《电路调试与优化方法》5. 实践操作:分组进行计数器设计实践,培养团队协作能力和实际操作技能;教材章节:第五章《实践操作》6. 总结与拓展:总结计数器设计与实践过程中的经验教训,探讨计数器在其他领域的应用;教材章节:第六章《课程总结与拓展》教学内容安排与进度:1. 计数器原理(1课时)2. EDA工具使用(1课时)3. 计数器设计(2课时)4. 电路调试与优化(1课时)5. 实践操作(3课时)6. 总结与拓展(1课时)总计8课时,确保学生在掌握理论知识的基础上,充分进行实践操作,提高综合运用能力。

EDA计数器实验

EDA计数器实验

计数器一、实验目的1、设计一个带使能输入、进位输出及同步清0的增1十进制计数器2、设计一个带计数使能、同步清0、同步加载的4位计数器3、设计一个带使能、同步清0控制和进位输出的增14位二进制计数器,计数结果由一位7段码管显示。

4、设计一个带使能和同步清0控制的增1减18位二进制计数器,计数结果由7段数码管显示。

二、实验内容1、带使能、同步清0控制和进位输出的增14位二进制计数器VHDL源代码library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter2 isPort ( clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;co : out STD_LOGIC;y : out STD_LOGIC_VECTOR (6 downto 0));end counter2;architecture Behavioral of counter2 issignal cnt:STD_LOGIC_VECTOR(3 downto 0);signal led:STD_LOGIC_VECTOR(6 downto 0);beginprocess(clk)beginif(clk'event and clk='1')thenif clr='1' thencnt<=(others=>'0');elsif en='1' thenif cnt="1111" thencnt<="0000";elsecnt<=cnt+'1';end if;end if;end if;end process;co<='1' when cnt="1111" else '0';y<=not led;with cnt selectled<="1111001"when"0001","0100100"when"0010","0110000"when"0011","0011001"when"0100","0010010"when"0101","0000010"when"0110","1111000"when"0111","0000000"when"1000","0010000"when"1001","0001000"when"1010","0000011"when"1011","1000110"when"1100","0100001"when"1101","0000110"when"1110","0001110"when"1111","1000000"when others;end Behavioral;激励文件源代码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY counter_2_tbw_vhd ISEND counter_2_tbw_vhd;ARCHITECTURE behavior OF counter_2_tbw_vhd IS-- Component Declaration for the Unit Under Test (UUT) COMPONENT counter2PORT(clk : IN std_logic;clr : IN std_logic;en : IN std_logic;co : OUT std_logic;y : OUT std_logic_vector(6 downto 0));END COMPONENT;--InputsSIGNAL clk : std_logic := '0';SIGNAL clr : std_logic := '0';SIGNAL en : std_logic := '0';--OutputsSIGNAL co : std_logic;SIGNAL y : std_logic_vector(6 downto 0);BEGIN-- Instantiate the Unit Under Test (UUT)uut: counter2 PORT MAP(clk => clk,clr => clr,en => en,co => co,y => y);clk<=not clk after 20 ns;tb : PROCESSBEGINclr<='1','0' after 30 ns;en<='0','1' after 20 ns;-- Wait 100 ns for global reset to finish--wait for 100 ns;-- Place stimulus herewait; -- will wait foreverEND PROCESS;END;功能仿真时序仿真管脚设置NET "clk" LOC = "E10" ;NET "clr" LOC = "L13" ;NET "co" LOC = "F12" ;NET "en" LOC = "L14" ;NET "y<0>" LOC = "B4" ;NET "y<1>" LOC = "A4" ;NET "y<2>" LOC = "D5" ;NET "y<3>" LOC = "C5" ;NET "y<4>" LOC = "A6" ;NET "y<5>" LOC = "B6" ;NET "y<6>" LOC = "E7" ;实验现象七段数码管显示0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F,每次循环完成co所接led灯亮一下,表示进位。

EDA的基本概念

EDA的基本概念

一、EDA的基本概念EDA(Electronic Design Automation):电子设计自动化;FPGA(Field Programmable Gate Array):现场可编程逻辑门阵列;VHDL(Very high speed Hardware Description Language):非常高速度的硬件描述语言;CPLD(Complex Programmable Logic Device):复杂的可编程逻辑器件。

二、VHDL语言组成(1)实体:描述了电路器件的外部情况及各信号端口的基本性质;(2)结构体:描述电路器件的内部逻辑功能和电路结构;(3)块、子程序和进程:在VHDL程序设计中,结构体由多个BLOCK块构成的,PROCESS结构是最能体现VHDL语言特色的语句,利用子程序能够更有效地完成重复性的工作。

(4)库和程序包:用来描述和保留元件、类型说明函数、子程序等,以便在其他设计中可以随时引用这些信息,提高设计效率;(5)配置:将不同元件通过配置安装到不同的设计实体中。

1、实体结构entity 实体名is2、端口模式in out buffer inout3、结构体名architecture 结构体名of4、数据对象信号SIGNAL 变量VARIABLE基本用法用于作为电路中的信号连线用于作为进程中局部数据存储单元适用范围在整个结构体内的任何地方都能适用只能在所定义的进程中使用行为特性在进程的最后才对信号赋值立即赋值常量constant三、基本语句(case,if,wait,process)1.case 表达式isWhen ‘值1’=》表达式;................when others=》null;end case2.(1)门闩结构(P166)(2) if 条件1 then 表达式1;elsif 条件2 then 表达式2;else 表达式4;End if;3.Process (P161)(1)语法结构(2)进程与进程之间的关系进程里面是顺序语句,不能调换;进程外面是同时进行的并行语句。

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

xxxxx信息工程学院实验报告
课程名称: CPLD/FPGA 应用开发技术
实验名称:计数器及时序电路
实验类型:验证性□ 综合性□ 设计性■实验室名称:信息学院机房
班级:学号:
姓名:组别:
同组人:成绩:
实验日期: 2010年6月29日
预习报告
一、实验目的:
1、了解时序电路的VHDL 语言设计方法。

2、了解同步计数器的使用方法。

3、理解时序电路和同步计数器加译码电路的联系,设计任意编码计数器。

二、实验设备:
1、PC 机
2、EDA 实验箱(主芯片是ALTERA EPM7128SLC84-15)。

三、实验内容:
1、用VHDL 语言输入法设计一个同步四位二进制加法计数器和六进制同步计数器。

2、用74LS161 两个宏连接成八位二进制同步计数器。

3、用74LS161 宏,同时采用清零和置数法组成六进制和十二进制计数器。

四、实验步骤:
1、采用文本编辑器输入VHDL 语言源程序,或采用原理图输入法从MF 库中调用器件
74161 ,生成原理图,之后建立工程。

2、编译。

3、仿真。

4、对芯片进行编程。

5、根据管脚分配情况连线。

(1)根据芯片特点,管脚分配时一般将时钟信号分配给83 脚,复位信号分配给
1 脚。

若有使能信号,使能信号分配给84 脚。

(2)时钟信号的连接:将实验板上提供的时钟与芯片的83 脚相连。

(3)复位信号的连接:将实验板上的某按键开关输出与芯片的1 脚相连。

(4)将计数器的输出端分别与LED 灯相连。

6、按动复位键,观察实验结果。

7、改变输入时钟信号的频率,观察实验结果。

五、实验报告要求:
1、给出电路的VHDL 描述或电路原理图、仿真结果。

2、采用原理图输入法进行设计时,说明设计思路。

3、说明仿真波形图中输入数据的给定依据。

4、说明物理连线情况。

5、时钟频率改变后,实验结果有何变化。

实验报告
一、实验结果分析:
1、用VHDL 语言输入法设计一个同步四位二进制加法计数器和六进制同步计数器。

四位二进制加法计数器
程序清单:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity counter4 is
port(clk,clr: in std_logic;
count: out std_logic_vector(1 downto 0)); end counter4;
architecture beha of counter4 is
signal cnt: std_logic_vector(1 downto 0); begin
process(clk,clr)
begin if (clr='0') then
cnt<="00";
elsif (clk='1' and clk'event) then if cnt="11" then
cnt<="00";
else
cnt<=cnt+'1';
end if;
end if;
count<=cnt;
end process;
end beha;
仿真结果:
六进制同步计数器程序清单:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity counter6 is
port(clk,clr: in std_logic;
count: out std_logic_vector(2 downto 0)); end counter6;
architecture beha of counter6 is
signal cnt: std_logic_vector(2 downto 0); begin
process(clk,clr) begin
if (clr='0') then
cnt<="000";
elsif (clk='1' and clk'event) then if cnt="101" then
cnt<="000";
else
cnt<=cnt+'1';
end if;
end if;
count<=cnt;
end process;
end beha;
仿真结果:
2、用74LS161 两个宏连接成八位二进制同步计数器。

设计思路:
采用原理图输入方式,由于同步四位二进制计数器74LS161 ,因此要实现八位二进制同步计数器,应该使用两个74LS161进行有效级联,使得74LS161(1)(低四位)得进位输出端CO与74LS161(2)(高四位)的使能端CTp、CTt连接,这样低四位计数到1111,下一个上升沿到来,计数器74LS161(1)进位输出端为高电平,即计数器74LS161(2)使能端有效,此时计数器74LS161(2)开始工作。

电路原理图:
仿真结果:
3、用74LS161 宏,同时采用清零和置数法组成六进制和十二进制计数器。

设计思路:
清零法:要实现六进制计数,计数器从0000开始计数,计数到0101后,可利用与非门拾取状态,并将与非门的输出送至计数器的清零端CR(低电平有效),清零端有效计数器重新开始计时;(对于十二进制原理类似)
置数法:在输入第N个计数脉冲CP后,通过控制电路,利用状态S N产生一个有效置数信号,送给置数端,使计数器立刻返回到初始的预置数状态S M,即实现了S M~S N-1计数。

也就是说,异步置数即利用74LS161的置数端LD(低电平有效),要实现六进制计数,置数端应该设置为1010,当计数到1111后,输出进位端有效,并将信号送至置数端LD(低电平有效),重新开始计数;(对于是二进制原理类似)
清零6进制
电路图原理图:
仿真波形:
置数6进制
电路图原理图:
二、实验心得体会
做完EDA实验,我感到受益匪浅。

这不仅使我了解了EDA的实验系统,学习了MAX+PLUSⅡ软件的使用,掌握了基本的电路设计流程、方法以及技巧,更增强了我对EDA设计的兴趣。

在实验的过程中,老师又结合实际详细的教了我们VHDL语言的基本指令及编程方法,教我们熟悉了在PC机上运用MAX+PLUSⅡ软件和EPLD进行电路设计的设计和仿真过程。

之后,老师为我们布置了实验任务,开始,大家都不会编写程序,或是编出来的程序有很多错误,但是在老师的指导修改下,我们克服了困难,找到了问题所在,改正了错误,编出了正确的程序。

但在软件使用及仿真的时候,大家都遇到了较大的困难,同学们都是第一次接触软件,而且软件都是纯英文,加上不熟悉使用流程,老师为我们了讲了使用方法之后大家还是不太懂,后来在同学们的互相讨论中,及个别问题请教老师后,终于也攻克了这一难关,得到了完美的仿真波形和结果。

具备这些基本知识,相信为我今后的自主学习奠定了良好的基础。

相关文档
最新文档