EDA十进制 100计数器
重庆科创学院-EDA十进制计数器并用led显示
End one;
LED显示的十进制计数器
1.根据电路功能分析实体端口,同时也可分析出结构 体中需要的信号。 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity count10 is
port(clk:in std_logic;
End entity;
2.抓住电路功能要点,一步一步充实电路功能描述 Architecture one of count10 is signal q:std_logic_vector(3 downto 0); begin process(clk)
If clk’event and clk=‘1’ then 计数功能 q<=q+1; End if; end process;
Case q is When "0000" => s <="1111110"; When "0001" => s <="0000110"; When "0010" => s <="1101101"; When "0011" => s <="1111001"; When "0100" => s <="0110011"; When "0101" => s <="1011011"; When "0110" => s <="1011111"; When "0111" => s <="1110000"; When "1000" => s <="1111111"; When "1001" => s <="1110011"; When others=>s<="0000000"; End case;
EDA课程设计 百进制计数器
郑州航空工业管理学院《EDA技术及应用》课程设计报告2012 届通信工程专业 1213071 班级题目:百进制计数器姓名学号同组人201 4 年6 月25 日任务书百进制计数器设计要求(1)技术范围为0 ~ 199(2)可以在数码管上显示出计数值,且数值为十进制数(3)计数方向:双向(即可递增递减计数)在EDA实验箱上完成。
1.晶振为48 MHz2.FPGA 器件为ALTERA 的EP1C6Q240C83.采用数码管显示一、设计方案规划:1.整体规划(确定输入与输出)时钟输入clk, 递增递减控制dir, 输入按键key,数码管选择输出引脚dig,数码管段输出引脚seg ,具体如下:input clk;//输入时钟input dir;//递增递减控制键input[1:0]key;//输入按键output [2:0] dig;//数码管选择输出引脚output [7:0] seg;//数码管段输出引脚2.功能划分与模块划分a.秒信号产生部分分频模块:计算机本身频率较大,显示时间短,为显示人眼可见,将高频率改为低频率,即增减周期。
b.按键消抖处理部分按键消抖模块:作为机械开关键盘,在按键操作时,机械触点的弹性以及电压突跳等原因,在触点闭合或开启的瞬间出现电压抖动,所以处理后消除误触发。
c.计数处理部分递增递减计数模块:计数要求在0-199之间可增可减。
d.数码管动态扫描显示部分选择扫描显示数据和选择数码管显示位e.显示译码部分显示相对应的数据3.各功能或各模块的功能细分,a.分频模块定义clk上升沿触发器q定义计数器寄存器,计数部分b.按键消抖模块key输入按键key_done按键消抖输出c.递增递减计数模块清零部分控制键dir,递增部分,递减部分,sum计数缓存器d.数码管动态扫描显示部分显示不同各位的数据,选择对应的不同数码管,dig数码管选择e.显示译码部分共阳数码管,低电平有效,seg数码管译码结果二、各模块的实现方法,技术、要点分频模块: always@(posedge clk )//定义clk上升沿触发器。
基于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课程设计报告,数字频率计
. I目录前言01. 总体设计方案11.1总体设计方案12. 单元模块设计12.1十进制计数器设计12.1.1 十进制计数器原件t10设计12.1.2 位十进制计数器的顶层设计22.2闸门控制模块EDA设计32.2.1 定时信号模块Timer32.2.2 控制信号发生器模块T_con42.3译码显示模块42.3.1 显示存放器设计42.3.2 译码扫描显示电路52.3.3 译码显示模块的顶层电路设计73. 软件测试83.1测试的环境83.2调试和器件编程84. 设计总结85. 参考文献9前言在电子技术高度开展的今天,各种电子产品层出不穷,而频率作为设计的最根本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程的自动化等优点。
数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的根本功能是测量正弦信号、方波信号、尖脉冲信号以及其它各种单位时间变化的物理量。
当今国外厂家生产的数字频率计在功能和性能方面都比拟优良,而且还在不断开展中,但其构造比拟复杂,价位也比拟高,在测量精准度要求比拟低的测量场合,使用这些数字频率计就不够经济合算。
我所设计的这款数字频率计能够可靠实现频率显示功能,原理及构造也比拟简单本次所做的课程设计就是一个数字频率计,能测量1HZ~9999HZ的矩形波信号,并正确地显示所测信号的频率值。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比拟复杂,而且会产生比拟大的延时,造成测量误差、可靠性差。
随着现场可编程门阵列FPGA 的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。
采用FPGA现场可编程门阵列为控制核心,通过硬件描述语言VHDL编程,在Quartus‖仿真平台上编译、仿真、调试,并下载到FPGA芯片上,通过严格的测试后,能够较准确地测量各种常用的波形信号的频率,而且还能对其他多种物理量进展测量。
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技术实验四报告模板-10进制计数器设计
南京工程学院自动化学院实验报告课程名称电子设计自动化EDA技术实验项目名称10进制计数器设计实验学生班级实验学生姓名同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日其中D 表示输入初始计数值,Sta 为计数开始,Q 表示当前计数值;LD 表示预制计数值,LD 为“0”,初始计数值打入器件;UD 表示计数方向,UD 为‘0’,计数器加计数,UD 为‘1’,计数器减计数;C 表示器件工作态,C 为‘0’,表示计数器正在计数;C 为‘1’,表示计数器计数结束;CP 为计数脉冲。
四、实验方案设计、实验方法 1. 实验方案10进制计数器的VHDL 描述有多种方法,设计过程中可以采用计数脉冲CP 作为敏感量,CP 的每个上升沿,计数值Q 加‘1’或减‘1’,加到‘9’后回‘0’或减到‘0’后回‘9’,语句可采用case …when 、with …select 、if …then 以及加减运算等多种结构实现。
也可以首先设计基本的触发器、锁存器等元件,而后通过元件的互联实现。
本实验中根据真值表用if-then 结构实现10进制计数器 2. 实验方法首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。
五、实验步骤1. 设计输入 利用FILE\New 菜单输入VHDL 源程序,创建源文件D0 D1 D2 D3 CP Sta LD UDQ0 Q1 Q2 Q3 C2. 器件及管脚逻分配图管脚分配情况如图,所选器件为EPM7032AELCC44-43. 仿真波形10进制计数器的仿真波形如下图,从波形可以得出,输入输出满足前文真值表,设计电路功能达到设计要求4. 时序分析图上述时间分析可以得到,输出信号存在3ns的时间延迟,它主要与器件速度、表达逻辑的合理性有关,选用速度更高器件、优化设计可以使该值降低。
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实验报告:十进制计数器
Select SEG7 O/P Q : buffer STD_LOGIC_VECTOR( 3 DOWNTO 0); --
3
重庆三峡学院实验报告纸
Number Display Signal M : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
); END jishuqi; ARCHITECTURE a OF jishuqi IS
A. 时钟信号(CLK)为上升沿时,计数一次; B. 十进制数计数 0~9,满 9 进 1; 2.D 触发器是 CMOS 数字集成电路单元中时序逻辑电路中的重要组成部 分之一;D 触发器属于时钟控制触发,时钟信号为高电平时触发器改变 输出状态。 3.当时钟信号(CLK)为高电平,且 CLR 也为高电平时,计数清 0,CLR 是高电平清 0 还是低电平清 0 是由程序指定; 4.当使能信号 EN 为低电平的时候,保持;EN 是高电平还是低电平保持 是由程序指定;
重庆三峡学院实验报告纸当时钟信号clk为高电平且clr也为高电平时计数清0并重新开始计数
实验报告
课程名称
EDA 原理及应用
实验名称
十进制计数器
实验类型 验证 系别 年级班别 级 班 学生姓名 实验教师 编号
学时 专业 开出学期 学号 成绩
2 第期
年月 日
一、实验目的
重庆三峡学院实验报告纸
1. 熟悉数码管的工作原理;
6
重庆三峡学院实验报告纸
2. 将未分配的管脚置为三态输入: 【Assignments】→【Device…】 →【Device】 →【Device & Pin
Options…】 →【Unused Pins】 →【Reserve all unused pins : AS input tri-stated】。 四、实验总结 1.通过本次实验了解十进制同步加载、异步复位计数器的工作原理:
EDA实验报告实验四:带7段显示器的模100计数器
实验四:带7段显示器的模100计数器一、预习内容1.结合教材中的介绍熟悉Quartus Ⅱ软件的使用及设计流程;2.四位多路复用器设计原理;3.对应的VHDL 代码源程序。
二、实验目的1.掌握文本输入设计方法;2.熟悉QuartusⅡ软件的使用及设计流程;3.掌握带7段显示器的模100计数器的设计。
三、实验器材PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干四、实验要求1、用文本输入法设计一个带7段显示器的模100计数器;2、用波形编辑工具生成一个带7段显示器的模100计数器的测试向量(即测试数据);3、完成四位多路复用器的时序仿真。
4、下载到实验箱,看是否正确。
五、实验原理与内容1、原理:带7段显示器的模100计数器能够实现计数功能,并能计数到99后自动清零。
重新开始计数。
六、实验步骤1、用文本输入法设计一个带7段显示器的模100计数器;2、利用步骤一得到的带7段显示器的模100计数器使用图形输入法实现一个带7段显示器的模100计数器;3、后的顶层文件进行编译、仿真和下载;4、看结果是否正确;改变频率可快速计数至99,看能否清零,能否在清零后继续计数。
七、实验报告1、写出实验源程序,并附上综合结果和仿真波形;library ieee;use ieee.std_logic_1164.all;entity counter isport (clk,reset:in std_logic;digit1,digit2:out std_logic_vector(6 downto 0)); end counter;architecture counter1 of counter isbeginprocess (clk,reset)variable temp1: integer range 0 to 10;variable temp2: integer range 0 to 10;beginif (reset='1') thentemp1 := 0;temp2 := 0;elsif (clk'event and clk = '1') thentemp1 := temp1+1;if (temp1=10) thentemp1 := 0;temp2 := temp2+1;if (temp2=10) thentemp2 := 0;end if;end if;end if;case temp1 iswhen 0=>digit1<="1111110";--7Ewhen 1=>digit1<="0110000";--30when 2=>digit1<="1101101";--6Dwhen 3=>digit1<="1111001";--79when 4=>digit1<="0110011";--33when 5=>digit1<="1011011";--5Bwhen 6=>digit1<="1011111";--5Fwhen 7=>digit1<="1110000";--70when 8=>digit1<="1111111";--7Ewhen 9=>digit1<="1111011";--7Bwhen others => null;end case;case temp2 iswhen 0=>digit1<="1111110";--7Ewhen 1=>digit1<="0110000";--30when 2=>digit1<="1101101";--6Dwhen 3=>digit1<="1111001";--79when 4=>digit1<="0110011";--33when 5=>digit1<="1011011";--5Bwhen 6=>digit1<="1011111";--5Fwhen 7=>digit1<="1110000";--70when 8=>digit1<="1111111";--7Ewhen 9=>digit1<="1111011";--7Bwhen others => null;end case;end process;end counter1;2、分析实验结果;实验结果正确,能达到理想效果。
EDA VHDL 一百进制同步计数器设计ppt课件
end if;
end if;
end process;
n2: process(clk,cin) --高4位进程 begin
if clk'event and clk='1'then if cin='1'then if qg=9 then qg<="0000";
cing<='1'; else qg<=qg+1;cing<='0'; end if; end if; end if; if cin='1'and cing='1'then cc<='1';--进位处理 else cc<='0'; end if; end process; gaowei<=qg;diwei<=qd; --信号赋予端口 jinwei<=cc; --进位信号赋予信号端口 end ds100_atch;
一百进制同步计数器
生成原理图
一百进制同步计数器
仿真结果
一百进制同步计数器
本章小结 一 掌握时序逻辑电路的VHDL一般描述方法:明确输入
输出端口,提前设计用几个进程分别描述哪几个信号的行 为 二 进一步掌握敏感信号表的使用 三 会根据仿真结果验证时序逻辑电路的正确性和完整性
信号clk,一个进位信号 (1位),低4位计数器输 出(4位),高4位计数器输出(4位)。时钟上升 沿触发。 用两个进程分别描述低4位和高4位,编写VHDL代 码,并在Quartus II上调试,然后利用ModelsimAltera进行仿真。
一百进制同步计数器
实验环境 1、PC机一台。 2、Altera的Quartus软件一套。 3、主芯片为Altera公司的DE2-70的EDA开发板一
eda10进制计数器实验报告
eda10进制计数器实验报告1B计算机组成原理教学实验箱一台,排线若干。
2) PC机一台。
3、实验步骤与源程序l) 根据该模型机的指令系统,编写一段程序。
这里给出两个参考程序。
参考程序一:本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。
然后程序停止(请实验者考虑:如何修改程序,使程序不断从输入设备取出数据,送到输出设备显示。
每次循环过程中,可以使输入设备数据改变,考察输出显示的结果。
)。
设计机器指令程序如下(机器码为十六进制数据)。
地址内容助记符说明00 00 IN;输入开关数据→R00120 STA [08H] ;R0→[08]02 08 ;地址03 30 OUT [08H] ;[08H] →BUS04 08 ;地址05 40 JMP [00H] ;00H→PC06 00 ;跳转地址参考程序二:本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。
本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。
设计机器指令程序如下(机器码为十六进制数据)。
地址内容助记符说明00 00 IN;输入开关数据→R0,采集数据0110 ADD [0AH] ;R0+[0AH]→R0,输入数据与指定数据相加02 0A ;地址0320 STA [0BH] ;R0→[0B]04 0B ;地址05 30 OUT [0BH] ;[0BH] →BUS,输出显示06 0B ;地址07 40 JMP [00H] ;00H→PC08 00 ;跳转地址0A 01 ;加数,可自定0B ;求和结果保存在0B单元2) 按图1连接实验线路。
3) 写程序:对于本实验箱可以用两种方法来写入程序。
方法一:手动写入(1)先将机器指令对应的微代码正确地写入2816中,由于在实验1.6微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2—2校验正确后就可使用。
EDA课程设计---十进制加法计数器
课程设计说明书题目:十进制加法计数器学院(系):电气工程学院年级专业:学号:学生姓名:**课程设计(论文)任务书院(系):电气工程学院基层教学单位:电子实验中心说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。
年月日目录第1章摘要 (4)第2章十进制加法器设计说明 (5)2.1 设计思路 (5)2.2 流程图 (5)2.3 模块介绍 (6)2.4 真值表 (6)第3章原理图分析 (11)3.1 整体原理图 (11)3.2 输入转换部分设计 (12)3.3 蜂鸣器部分 (12)3.4 加法器部分 (13)3.5 B-BCD(二进制转换为BCD码) (13)3.6 动态数码管部分 (14)第4章波形仿真图及结果分析 (16)第5章管脚锁定及硬件连线 (21)第6章总结 (22)参考文献 (23)**评审意见表 (24)摘要十进制加法器可由BCD码(二-十进制码)来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。
n位BCD码行波式进位加法器由n级组成,每一级将一对4位的BCD数字相加,并通过一位进位线与其相邻级连接。
在十进制运算时,当相加二数之和大于9时,便产生进位。
用BCD码完成十进制数运算时,当和数大于9时,必须对和数进行加6修正,由加法器和比较器完成功能的实现。
加法器的加数和被加数若大9则蜂鸣器警报5秒,数码管显示为0,由比较器和计数器控制。
动态数码管由计数器、数据选择器、译码器完成显示功能。
关键词:十进制加法器、动态数码管显示、蜂鸣器警报第二章十进制加法器设计说明2.1 设计思路根据项目要求设计的十进制加法器有两个输入,及加数和被加数,分别是用四个拨码开关表示的四位二进制数,即输入的范围为0到15;有一个输出,即两个加数相加的结果。
加数、被加数和结果都需要显示在动态数码管上,并且,加数或被加数若大于9,则蜂鸣器报警5秒钟,且显示为0.根据要求,设计加数和被加数的合法范围为0到9,故当输入的加数大于9的时候需要将其统一变换成0。
十进制计数器设计与制作介绍课件
确定计数器 的功能需求, 如计数范围、 显示方式等
编写计数器的 软件程序,包 括计数算法、 显示控制等
测试计数器的 功能,包括计 数准确性、显 示效果等
01
03
05
02
04
06
设计计数器的 硬件结构,包 括电路图、元 器件选择等
制作计数器 的硬件电路, 包括焊接、 调试等
优化计数器的 性能,包括提 高计数速度、 降低功耗等
如电子表、计数器、定时器等。
04 十进制计数器可以通过编程实现各
种功能,如计数、定时、报警等。
十进制计数器的工作原理
01
十进制计数器是一 种能够计数到10 的电子设备。
02
它的基本工作原理 是通过对输入脉冲 进行计数,当计数 值达到10时,输出 一个脉冲信号,然 后重新开始计数。
03
十进制计数器通常 由多个触发器组成, 每个触发器对应一 个计数值,当所有 触发器的计数值都 达到10时,输出脉 冲信号。
计数器
实例二:使 用555定时器 制作十进制
计数器
实例三:使 用FPGA制作 十进制计数
器
分析:不同 制作方法的 优缺点和适
用场景
十进制计数器的测 试与调试
测试方法与标准
功能测试:检查计数 器的基本功能是否正 常,如计数、清零、 复位等
精度测试:检查计数 器的计数精度,如最 大误差、最小误差等
稳定性测试:检查计 数器在不同工作环境 下的稳定性,如温度、 湿度等
抗干扰测试:检查计数 器在受到外界干扰时的 抗干扰能力,如电磁干 扰、电源干扰等
安全性测试:检查计 数器的安全性能,如 漏电流、绝缘强度等
寿命测试:检查计数 器的使用寿命,如连 续工作时间、开关次 数等
eda10进制计数器实验报告
竭诚为您提供优质文档/双击可除eda10进制计数器实验报告篇一:eda作业答案简述用QuartusⅡ开发数字系统的过程1逻辑设计。
首先要使用数字电路的基本设计方法设计数字系统,组合逻辑用组合逻辑的设计方法,时序逻辑用时序逻辑的设计方法。
设计完成后,使用硬件描述语言(Verilog或VhDL)输入QuartusII进行综合。
2.仿真验证阶段。
编译无误后,使用调试工具(QuartusII自带的向量波形文件或modelsim)对综合生成的结果进行仿真。
首先进行功能仿真(Functionalsimulation)以验证逻辑是否正确。
功能仿真无误后,进行时序仿真(Timingsimulation)验证电路功能是否正常。
3.下载调试阶段。
时序仿真结果无误后,将生成的电路下载进入对应的FpgA或cpLD芯片中,进行管脚分配,所有工作完成后进行调试,若调试有误,则查找原因返回步骤1或步骤2修改设计;若调试无误则数字系统设计完成FpgA与cpLD在硬件结构上的区别?FpgA与cpLD的区别系统的比较,与大家共享:尽管FpgA和cpLD都是可编程AsIc器件,有很多共同特点,但由于cpLD和FpgA结构上的差异,具有各自的特点:①cpLD更适合完成各种算法和组合逻辑,FpgA更适合于完成时序逻辑。
换句话说,FpgA更适合于触发器丰富的结构,而cpLD更适合于触发器有限而乘积项丰富的结构。
②cpLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FpgA的分段式布线结构决定了其延迟的不可预测性。
③在编程上FpgA比cpLD具有更大的灵活性。
cpLD通过修改具有固定内连电路的逻辑功能来编程,FpgA主要通过改变内部连线的布线来编程;FpgA可在逻辑门下编程,而cpLD是在逻辑块下编程。
④FpgA的集成度比cpLD高,具有更复杂的布线结构和逻辑实现。
⑤cpLD比FpgA使用起来更方便。
cpLD的编程采用e2pRom或FAsTFLAsh技术,无需外部存储器芯片,使用简单。
100进制计数器
100进制计数器
首先要制作100进制计数器,需要用到2个74LS190N计数器,两个计数器的范围都是从0~99,然而74LS190N自身就是十进制可逆计数器,所以只需要将两个74LS190N芯片级联就可以达到100进制计数器的目的了。
PL是低电平有效地,预置数允许端,PL=0,时,预置数输入端P0~P3上的数据被置入计数器。
MR是有效地复位端,MR=1时,计数器被复位,所有输出端都为低电平。
CPU是加数计时,CPD是减数计时,当CPU=CPD时,计数器处于保持状态,不计数。
TCU是进位输出端,当加数计时达到最大计数值时,即达到9时,TCU在后半个周期(CPU=0)内变成低电平,其他情况均为高电平。
TCU借位为输出端,当减数计时器计时到零时,TCU在时钟的后半个周期(CPD=0)内变成低电平,其他情况均是高电平。
为实现100进制的计数可把第一芯片的TCU,TCD分别接后一级的CPU,CPD就可以级联使用,这就达到了0~99的技术过程了。
电路仿真图:。
EDA课程设计之十进制计数器流程
2.1 十进制计数器流程2.11 建立工作库文件夹和编辑设计文件任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。
此文件夹将被EDA软件默认为工作库(Work Library)。
一般,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
在建立了文件夹后就可以将设计文件通过Quartus II的文本编辑器编辑并存盘,步骤如下:(1)新建一个文件夹。
这里假设本项设计的文件夹取名为CNT10B,在D盘中,路径为d:\cnt10b 。
注意,文件夹名不能用中文,也最好不要用数字。
(2)输入源程序。
打开QuartusII,选择菜单File→New。
在New窗口中的Device Design Files中选择编译文件的语言类型,这里选择“VHDL File”(如图2-1所示)。
然后在VHDL 文本编译窗中输入(键入)例3-22所示的VHDL示例程序。
图2-1 选择编辑文件的语言类型《示例程序和实验指导课件位置》:\EDA_BOOK3_FOR_1C6\chpt4\EXPT53_cnt10\工程cnt10【例3-22】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK, RST, EN)VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿IF EN = '1' THEN --检测是否允许计数(同步使能)IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零END IF;END IF;END IF;IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号ELSE COUT <= '0';END IF;CQ <= CQI; --将计数值向端口输出END PROCESS;(3)文件存盘。
基于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实验⼀:⼗进制计数器(2013-05-25 00:38:40)转载▼标签:杂谈实验⼀QuartusII的VHDL输⼊设计--- 应⽤QuartusII完成基本时序电路的设计姓名:李静学号:1023019857 ⽇期:2013-05-22(⼀)实验⽬的:熟悉QuartusⅡ的VHDL⽂本设计过程,学习简单时序电路的设计、仿真和测试。
(⼆)实验仪器:计算机⼀台,ALTERA公司Cyclone系列的EP1C3TC144芯⽚实验箱。
(三)实验原理:对于异步清零和同步加载与时钟使能的计数器:当时钟信号CLK、复位信号RST、时钟使能信号EN或加载信号LOAD中任⼀信号发⽣变化,都将启动进程。
此时如果RST为‘0’,将计数器清零,该操作独⽴于CLK,如果RST为‘1’,则看是否有时钟信号的上升沿,如果有且EN=‘1’,接下去是判断加载控制信号LOAD的电平,如果LOAD为低电平,则允许将输⼊⼝的四位加载数据置⼊计数器中,以便计数器在此基础上累计计数。
如果LOAD为⾼电平,则允许计数器计数;此时若数值⼩于9,计数器将进⾏正常计数,否则计数器清零。
但如果EN=‘0’,则计数器保持原值不变。
(四)实验内容:设计含异步清零和同步加载与时钟使能的计数器(使⽤例3-20),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。
实验程序:【例3⼀20】:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN,LOAD : IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK, RST, EN,LOAD)VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST = '1' THEN Q:= (OTHERS =>'0') ; --计数器异步复位ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿IF EN = '1' THEN --检测是否允许计数(同步使能)IF LOAD = '0' THEN Q:= DATA;ELSE --由LOAD='0'装载新数据IF Q < 9 THEN Q:= Q + 1; --允许计数,检测是否⼩于9ELSE Q:= (OTHERS =>'0'); --⼤于9,计数值清零END IF;END IF;END IF;END IF;IF Q = "1001" THEN COUT <= '1'; --计数⼤于9,输出进位信号 ELSE COUT <= '0';END IF;DOUT <= Q; --将计数值向端⼝输出END PROCESS;END behav;实验内容Ⅱ:引脚锁定以及硬件下载测试。
EDA实验100进制计数器
录的路径字符串中不能包含中文字符。
2007.12.2
(4)检查错误并编译
为了确保输入的逻辑正确,可以保存文件并检查 错误。步骤如下:
a. 选择 FileProjectSave & compile 选项 ,这 将保存上面编辑的文件,并检查输入程序中的错
2007.12.2
b. 选择 FileNew 菜单,或单击 ,
2007.12.2
c. 选中 Text Editor file (文本设计文件)单选按 钮。
•d.图单形击编辑ok输按入钮。弹出 •Te符xt号E编dit辑or输窗入口。 • 文本编辑输入 • 波形编辑输入
(2)输入verilog HDL程序
文件名称和文本文 件一致,扩展名为 “.scf” ,单击OK 保存激励信号编辑 结果。
2007.12.2
(2)电路仿真
电路仿真属于设计校验,包括功能仿真(前仿真) 和时序仿真(后仿真)。本设计采用功能仿真。
a. 选择MAX+plusⅡSimulator选项,弹出仿真器窗口 。
b. 单击 Start 开始仿真 。
选择初始电平为“0”,时钟周期为“20 ns”,倍数为“1” (时钟周期倍数只能为整数倍),单击 OK 确认。
2007.12.2
e. 为输入端口添加信号
选中b输入端 然后点击窗口左侧的时钟信号源图标 出现如图所示的对话框
选择初始电平为“0”,时钟周期为“20 ns”,倍数为“2” (时钟周期倍数只能为整数倍),单击 OK 确认。
2007.12.2
以计数序列覆盖所选的单个组的全部或部分波形
e. 为输入端口添加信号