60进制计数器设计(VHDL)
EDA-六十进制计数器的VHDL设计概要

THEN
3.1.3 VHDL的数据类型
1. BIT:位数据类型,只有两个取值:‘0’和‘1’。 2. BIT_VECTOR( ): 位矢量数据类型。 3. STD_LOGIC:标准逻辑位数据类型。有9种不同的取值: 4. STD_LOGIC_VECTOR():标准逻辑位矢量数据类型。
STD_LOGIC所定义的9种数据的含义是:
数据类型时,需要使用库和程序包,具体格式如下所示:
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
3.2 VHDL的完整结构
图2-2 D触发器
D触发器的功能:在时钟信号上升沿到来的时候,输 出跟随输入变化,否则,输出保持不变。
3.2.1 时钟上升沿检测表式
时钟上升沿的检测有两种表达方式:
1. CLK’EVENT AND CLK = ‘1’
2. RISING_EDGE(CLK)
3.2.2 D触发器的VHDL设计
库与程序包声明 标准逻辑位
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ; 库 ENTITY DFF1 IS 程序包 PORT (CLK : IN STD_LOGIC ; 实体 D : IN STD_LOGIC ; Q : OUT STD_LOGIC );
END DFF1;
3.3 六十进制计数器的VHDL设计
六十进制BCD码计数器的源程序:
实体名
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt60 IS PORT (clk, clr: IN STD_LOGIC; ten, one: DOWNTO 0 ); OUT STD_LOGIC_VECTOR(3
60进制计数器设计(VHDL)

《EDA技术》课程实验报告学生姓名:黄红玉所在班级:电信100227指导教师:高金定老师记分及评价:一、实验名称实验6:60进制计数器设计二、任务及要求【大体部份】4分一、在QuartusII平台上,采用文本输入设计方式,通过编写VHDL语言程序,完成60进制计数器的设计并进行时序仿真。
二、设计完成后生成一个元件,以供更高层次的设计挪用。
3、实验箱上选择适当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。
【发挥部份】1分在60进制基础上设计6进制计数器,完成时序仿真。
三、实验程序library ieee;use jinzhi60 isport(clk:in std_logic;co:out std_logic;qh:buffer std_logic_vector(3 downto 0);ql:buffer std_logic_vector(3 downto 0));end entity jinzhi60;architecture art of jinzhi60 isbeginco<='1'when(qh="0101"and ql="1001")else'0';process(clk)beginif(clk='1')thenif(ql=9)thenql<="0000";if(qh=5)thenqh<="0000";elseqh<=qh+1;end if;elseql<=ql+1;end if;end if;end process;end architecture art;四、仿真及结果分析由以上代码编译,仿真,取得一下时序仿真波形图。
用VHDL语言实现一个六十进制计数器,该计数器有计数使能端en,清零端clr和进位输出端co。
vhdl数字时钟设计精选全文

可编辑修改精选全文完整版数字时钟设计一、题目分析1、功能介绍1)具有时、分、秒计数显示功能,以24小时循环计时。
2)时钟计数显示时有LED灯的花样显示。
3)具有调节小时、分钟及清零的功能。
4)具有整点报时功能。
2、总体方框图3、性能指标及功能设计1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。
2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。
我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。
3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。
可以根据我们自己任意时间的复位。
4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。
产生“滴答.滴答”的报警声音。
5)LED灯在时钟显示时有花样显示信号产生。
即根据进位情况,LED不停的闪烁,从而产生“花样”信号。
二、选择方案1、方案选择方案一:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。
采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。
显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。
方案二:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。
采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。
显示:小时采用24进制,而分钟和秒均60进制。
终上所述,考虑到试验时的简单性,故我选择了方案二。
三、细化框图根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图:四、编写程序、仿真和分析1、秒计数器1)VHDL 语言描述程序见附录 2)秒计数器的仿真波形图3)波形分析数字时钟控制单元 时调整 分调整使能端信号 CLK 信号时显示 分显示 秒显示24进制 60进制 60进制LED 显示整点报花样显利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。
60进制计数器VHDL实验报告

(2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或 者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯 性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强 大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的 数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的 自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器 移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执 行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进 行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的 优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。
用VHDL编写60进制计数器

用VHDL编写60进制计数器1.用VHDL设计60进计数器。
设计一个BCD码60进计数器。
要求实现同步,异步两种情况,且规定个位显示0~9,十位显示0~5,均用4位二进制数表示。
用VHDL语言描述中小规模集成电路74LS169。
VHDL的源程序如下:(1):同步,文件名为bcd60countLIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bcd60count isport(clk,bcd1wr,bcd10wr,cin: in std_logic;co: out std_logic;datain: in std_logic_vector(3 downto 0);bcd1p: out std_logic_vector(3 downto 0);bcd10p: out std_logic_vector(2 downto 0));end bcd60count;architecture behave of bcd60count issignal bcd1n: std_logic_vector(3 downto 0);signal bcd10n: std_logic_vector(2 downto 0);beginbcd1p<=bcd1n;bcd10p<=bcd10n;kk1: process(clk,bcd1wr)beginif (bcd1wr='1') thenbcd1n<=datain;elsif(clk'event and clk='1') thenif (cin='1') thenif(bcd1n="1001" ) thenbcd1n<="0000";elsebcd1n<=bcd1n+'1';end if;end if;end if;end process kk1;kk2: process(clk,bcd10wr)beginif (bcd10wr='1') thenbcd10n<=datain(2 downto 0);elsif(clk'event and clk='1') thenif(cin='1') and (bcd1n="1001") thenif(bcd10n="101") thenbcd10n<="000";elsebcd10n<=bcd10n+'1';end if;end if;end if;end process kk2;kk3: process(bcd10n,bcd1n,cin)beginif(cin='1' and bcd1n="1001" and bcd10n="101") then co<='1';elseco<='0';end if;end process kk3;end behave;(2)异步程序如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cou60 isport(clk,reset,cin : in std_logic;co : out std_logic;bcd1p : out std_logic_vector(3 downto 0);bcd10p : out std_logic_vector(2 downto 0)); end cou60; architecture behave of cou60 issignal bcd1n: std_logic_vector(3 downto 0);signal bcd10n: std_logic_vector(2 downto 0);beginbcd1p<=bcd1n;bcd10p<=bcd10n;kk1: process(clk)beginif(clk'event and clk='1') thenif (reset='0') thenbcd1n<="0000";elsif (cin='1') thenif(bcd1n="1001" ) thenbcd1n<="0000";elsebcd1n<=bcd1n+'1';end if;end if;end if;end process kk1;kk2: process(clk)beginif(clk'event and clk='1') thenif (reset='0') thenbcd10n<="101";elsif(cin='1') and (bcd1n="1001") thenif(bcd10n="001") thenbcd10n<="101";elsebcd10n<=bcd10n+'1';end if;end if;end if;end process kk2;kk3: process(bcd10n,bcd1n,cin)beginif(cin='1' and bcd1n="1001" and bcd10n="001") then co<='1';elseco<='0';end if;end process kk3;end behave;。
数电-课程设计-60进制计数器

表1 十进制计数器功能表CP RD` LD` EP ET 工作状态×0 ××置零↑ 1 0 ××预置数× 1 1 0 1 保持× 1 1 ×0 保持↑ 1 1 1 1 计数连接方式如图:图2 十进制计数器(个位)2、十进制计数器(十位)电路图3 十进制计数器(十位)3、时钟脉冲电路图4 时钟脉冲电路4、置数电路图5 置数电路5、进位电路图6 进位电路6、译码显示电路图7 译码显示电路三、绘制原理图1、完整原理图图7 计数器原理图2、选定仪器列表仪器名称型号数量用途同步十进制计数器74LS160 2片极联构成60进制计数器与门与非门非门74LS21D74LS00D74LS04D各1个辅助设计构成其他计数器共阴极显示器DCD-HEX 2只显示数字计数电压源1个提供脉冲电压表二原理图仪器列表四、测试方案测试步骤:1)进入Multisim7界面图8 软件页面2)右击空白处,选择放置元件,进入元器件选择区,选择要放置的元件,然后单击好。
图9 放置元件3)放置好各种器件之后,即可进行线路连接,同时标明所需参数值。
设置元器件的参数时,用鼠标双击,弹出属性对话框,分别给元件赋值,并设置名称标号。
图10 元器件属性图4)确认电路无误后,即可单击仿真按钮,实现对电路的仿真工作。
5)观察结果看是否与理论分析的预测结果相同。
五、测试验证结果与分析1、验证结果以下两个仿真结果分别是计数器计数的仿真起点00和仿真终点59,之后计数器会自动恢复原来的00起点继续进行循环计数,并且进位输出灯会在59时发光。
图11 60进制计数器起点00 图12 60进制计数器终点592、理论分析本计数器由两个10进制计数器构成60进制计数器的接线图,右边的10进制计数器作为个位,左边的10进制计数器作为十位。
输入端全部接地,计数开始循环一周后通过置位法自动进行归00,之后再继续循环计数。
vhdl实验报告

专用集成电路实验报告13050Z011305024237X德文实验一开发平台软件安装与认知实验实验内容1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。
下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。
2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。
源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-- Unment the following lines to use the declarations that are-- provided for instantiating Xilinx primitive ponents.--library UNISIM;--use UNISIM.Vponents.all;entity ls74138 isPort ( g1 : in std_logic;g2 : in std_logic;inp : in std_logic_vector(2 downto 0);y : out std_logic_vector(7 downto 0));end ls74138;architecture Behavioral of ls74138 isbeginprocess(g1,g2,inp)beginif((g1 and g2)='1') thencase inp iswhen "000"=>y<="00000001";when "001"=>y<="00000010";when "010"=>y<="00000100";when "011"=>y<="00001000";when "100"=>y<="00010000";when "101"=>y<="00100000";when "110"=>y<="01000000";when "111"=>y<="10000000";when others=>y<="00000000";end case;elsey<="00000000";end if;end process;end Behavioral;波形文件:生成元器件及连接电路思考:有程序可以看出,定义了三个输入端,一个输出端。
60进制计数器课程设计

60进制计数器课程设计一、课程目标知识目标:1. 学生能够理解60进制计数器的概念,掌握其与十进制的转换方法。
2. 学生能够运用60进制计数器进行简单的加、减运算。
3. 学生了解60进制在实际生活中的应用,如时间、角度等。
技能目标:1. 学生能够独立完成60进制与十进制的转换。
2. 学生能够运用所学知识解决实际问题,如将时间、角度等转换为60进制表示。
3. 学生通过小组合作,培养团队协作能力和沟通能力。
情感态度价值观目标:1. 学生对60进制计数器产生兴趣,培养对数学的热爱。
2. 学生在探究过程中,养成独立思考、勇于尝试的良好习惯。
3. 学生通过学习,认识到数学与生活的紧密联系,增强学以致用的意识。
课程性质:本课程为数学学科的一节实践探究课,旨在帮助学生掌握60进制计数器的相关知识,提高学生的实际操作能力和解决问题的能力。
学生特点:四年级学生具有一定的数学基础,对新鲜事物充满好奇,喜欢动手操作,但注意力容易分散。
教学要求:教师需结合学生的特点,设计生动有趣的教学活动,引导学生积极参与,鼓励学生自主探究和合作交流,确保每位学生都能在课堂上有所收获。
同时,注重培养学生的情感态度价值观,使学生在学习过程中形成正确的价值观和积极的学习态度。
通过分解课程目标为具体的学习成果,为后续的教学设计和评估提供依据。
二、教学内容本节课依据课程目标,结合教材第四章《有趣的计数器》相关内容,组织以下教学大纲:1. 引言:介绍60进制计数器的基本概念,引导学生思考其在生活中的应用,如时间、角度等。
2. 知识讲解:a. 讲解60进制计数器与十进制的区别与联系。
b. 详细介绍60进制与十进制的转换方法。
c. 通过实例,展示60进制在时间、角度等方面的应用。
3. 实践操作:a. 学生独立完成60进制与十进制的转换练习。
b. 学生分组讨论,解决实际问题,如将时间、角度等转换为60进制表示。
4. 拓展延伸:a. 探讨60进制在生活中的其他应用,激发学生思考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《EDA技术》课程实验报告
学生姓名:黄红玉
所在班级:电信100227
指导教师:高金定老师
记分及评价:
一、实验名称
实验6:60进制计数器设计
二、任务及要求
【基本部分】4分
1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成60进制计数器的设计并进行时序仿真。
2、设计完成后生成一个元件,以供更高层次的设计调用。
3、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。
【发挥部分】1分
在60进制基础上设计6进制计数器,完成时序仿真。
三、实验程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jinzhi60 is
port(clk:in std_logic;
co:out std_logic;
qh:buffer std_logic_vector(3 downto 0);
ql:buffer std_logic_vector(3 downto 0));
end entity jinzhi60;
architecture art of jinzhi60 is
begin
co<='1'when(qh="0101"and ql="1001")else'0';
process(clk)
begin
if(clk='1')then
if(ql=9)then
ql<="0000";
if(qh=5)then
qh<="0000";
else
qh<=qh+1;
end if;
else
ql<=ql+1;
end if;
end if;
end process;
end architecture art;
四、仿真及结果分析
由以上代码编译,仿真,得到一下时序仿真波形图。
用VHDL语言实现一个六十进制计数器,该计数器有计数使能端en,清零端clr和进位输出端co。
档en=1时,计数器正常计数;当clr=1时,计数器清零。
最后在试验箱上仿真,数码管显示了0到59,则60进制计数器完成。
五、硬件验证
1、选择模式:模7
2、引脚锁定情况表:
六、小结
这次实验仿真了六十进制计数器运用到了QuartusII软件。
通过学习设计,初步掌握了QuartusII软件的使用并且深入地体会到VHDL语言的广泛应用。
这次实验让我感觉收获颇多,一方面培养了我用自己的专业知识解决问题的能力,进一步理解了理论必须运用于实际的重要性,加深了我对这门课程及专业知识的理解,对以后的工作学习生活都有很大的意义;另一方面我也发现自己很多的不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固,这都是自己以后需要深入学习和克服的问题。
在今后的学习中,我会发挥积极主动的精神,把所学知识与实践结合起来,努力掌握Quartus II设计软件和VHDL设计语言的使用方法。