vhdl 编写counter ,模拟钟表

基于Multisim与74LS系列芯片的红绿灯时序电路设计与仿真 时序逻辑电路是数字电路的核心基础,它通过时钟信号协调各部件按预定顺序工作,是实现自动化控制的关键。其核心原理是利用触发器、计数器等存储单元,在时钟边沿触发下完成状态转移与数据存储。掌握时序逻辑设计,对于理解计算机CPU、通信协议乃至嵌入式系统都至关重要。在电子工程实践中,Multisim作为主流的电路仿真软件,为时序逻辑的验证与优化提供了高效平台。通过搭建经典的红绿灯控制系统,工程师可以深入实践计数器、状态机等核心模块的设计与协同。本项目以74LS190D可预置同步计数器作为计时核心,配合74LS164D移 阅读详情

    好久没玩过FPGA了,回想起当时和张胤一起写的SOPC系统还真是怀念啊,自己编写的CPU,自己编写的外设驱动(软件+硬件),自己定义的汇编语言,自己编写的汇编器,基于这些自己的东西写自己的应用程序,那些好玩的游戏~ 怀念,有时间一定写篇文章纪念一下。

     选这个课,是想回忆下基本的VHDL知识,什么东西不用都会忘掉的。这是一个很简单的程序,有时分秒的功能,没有任何管脚指定,仅仅用modelsim仿真了一下。

      counter的代码:

 

 
  1. --------------------------------------------------------------- 
  2. -- 
  3. --      Author: Chaos Lee(ID:sy1106508) 
  4. --      Name: A simple counter. 
  5. --      Date: 2012/05/06 
  6. -- 
  7. --------------------------------------------------------------- 
  8. library ieee; 
  9. use ieee.std_logic_1164.all; 
  10. use ieee.std_logic_arith.all; 
  11. use ieee.std_logic_unsigned.all; 
  12. entity counter is 
  13.  port( 
  14.    clk: in std_logic; 
  15.    clr: in std_logic; 
  16.    sec: out std_logic_vector(5 downto 0); 
  17.    min: out std_logic_vector(5 downto 0); 
  18.    hour: out std_logic_vector(4 downto 0) 
  19.    ); 
  20. end entity; 
  21. architecture behave of counter is 
  22. begin 
  23.   process(clk,clr) 
  24.  variable sec_cnt: integer range 0 to 59; 
  25.  variable min_cnt: integer range 0 to 59; 
  26.  variable hour_cnt: integer range 0 to 23; 
  27.   begin 
  28.   if(clr = '0') then 
  29.    sec_cnt := 0; 
  30.    min_cnt := 0; 
  31.    hour_cnt := 0; 
  32.   else 
  33.    if(clk'event and clk = '1')then 
  34.     if(sec_cnt = 59) then 
  35.      sec_cnt := 0; 
  36.      if(min_cnt = 59) then 
  37.       min_cnt := 0; 
  38.       if(hour_cnt = 23) then 
  39.        hour_cnt := 0; 
  40.       else 
  41.        hour_cnt := hour_cnt + 1; 
  42.       end if; 
  43.      else  
  44.       min_cnt := min_cnt + 1; 
  45.      end if; 
  46.     else 
  47.      sec_cnt := sec_cnt+1; 
  48.     end if; 
  49.    end if; 
  50.   end if; 
  51.   sec <= conv_std_logic_vector(sec_cnt,6); 
  52.   min <= conv_std_logic_vector(min_cnt,6); 
  53.   hour <= conv_std_logic_vector(hour_cnt,5); 
  54.   end process; 
  55. end architecture; 

      modelsim的测试代码:

    

 
  1. ------------------------------------------------------------ 
  2. -- 
  3. --    Author: Chaos Lee (ID:sy1106508) 
  4. --    Name: counter_tb 
  5. --    Description: A testbench aiming to verify the counter simulating a clock 
  6. --    Date: 2012/05/06 
  7. -- 
  8. ------------------------------------------------------------- 
  9. library ieee; 
  10. use ieee.std_logic_1164.all; 
  11. use ieee.std_logic_arith.all; 
  12. use ieee.std_logic_unsigned.all; 
  13.  
  14. entity counter_tb is 
  15. end entity; 
  16.  
  17. architecture behave of counter_tb is 
  18. component counter is 
  19.  port( 
  20.    clk: in std_logic; 
  21.    clr: in std_logic; 
  22.    sec: out std_logic_vector(5 downto 0); 
  23.    min: out std_logic_vector(5 downto 0); 
  24.    hour: out std_logic_vector(4 downto 0) 
  25.    ); 
  26. end component; 
  27.  
  28. signal clk_tb:std_logic; 
  29. signal clr_tb:std_logic; 
  30. signal sec_tb:std_logic_vector(5 downto 0); 
  31. signal min_tb:std_logic_vector(5 downto 0); 
  32. signal hour_tb:std_logic_vector(4 downto 0); 
  33.  
  34. begin 
  35.   u1:counter port map ( 
  36.       clk => clk_tb ,  
  37.       clr => clr_tb , 
  38.       sec => sec_tb , 
  39.       min => min_tb , 
  40.       hour => hour_tb 
  41.       ); 
  42.   test_bench:process 
  43.   begin 
  44.     clr_tb <='0' , '1' after 20ns; 
  45.     clk_tb <= '1'; 
  46.     for i in 10000 downto 0 loop 
  47.       wait for 10 ns; 
  48.       clk_tb <= not clk_tb; 
  49.     end loop; 
  50.   wait; 
  51.   end process; 
  52. end architecture; 

本文出自 “相信并热爱着” 博客,请务必保留此出处http://hipercomer.blog.51cto.com/4415661/855155

VHDL实现多功能时钟设计 该多功能时钟系统包括: 可以控制模式,计时器或者时钟,通过按键控制,数码管实时显示时分秒,led显示计时状态。 时-分-秒显示,为24小时制 通过按键可以动态调整时间 通过按键可以动态选择要调整的时间,对应的数码管闪烁 按键消抖、看门狗电路等系统包括下列模块: 分频模块,计数模块,按键模块,看门狗模块,数码管模块,计时器模块,选择模块等。使用VHDL语言实现在quartus下实现,也可在vivado下: 下面为quartus工程截图: 下面为顶层模块代码:............ 阅读详情

相关推荐

vhdl 书写tb

对初学者是很好的借鉴

EDA学习笔记

EDA学习笔记

捣蛋龙的博客 5561

VHDL多功能电子表

VHDL电子表,时间+日期,秒表,三个闹钟,长按+短按。

【VHDL语言学习笔记(六)】 计数器

目的:设计一个带使能输入的同步清0的增1/减1的通用(带类属说明)的计数器(8位)。 本程序使用了类属说明语句,可以通过改变类属说明语句中变量的大小进而改变内部电路结构和规模。 程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is generic(n : integer := 8); --generic类属说明,确定计数器的位数 port( --.

Backlight__的博客 4513

contador 1_FPGAVHDL_counter_

VHDL code for a counter

counter_vhdl_双向计数器_

an 8-bit up and down synchronous counter in VHDL with the followingfeatures:(1) The same ports are used for signals to be inputted and outputted. The ports arebi-directionally buffered (2 three-state gates: both input and output).(2) The counter is with an asynchronous reset that assigns a specific initial valuefor counting.(3) The counter is with a synchronous data load control input for a new value ofcounting and an enable control input for allowing the up and down counting.The load control input has a priority over the enable control input. Thisimplies that when the load operation is in process the counter operation isprohibited.

vhdl入门3实现计数器

这几天事情有点多,参加了数学建模选的B题,然后没有更新。 下边是之前那个vhdl计数器,之前没做起来,led总是不跳变,现在发现原因了,用两个if写就行了 下面这个程序功能: 对clk进行计数,10个clk的跳变,一次led的跳变,为了看的更加清晰,加入了cout,用以看cnt的变化。所以加入了arith和usigned。 --ujs-lili library IEEE; use IEEE.STD...

weixin_43475628的博客 3755

Neo4j Desktop新手必看:3分钟搞定CSV数据导入(附常见报错解决方案)

本文详细介绍了在Neo4j Desktop中高效导入CSV数据的三种主流方法,包括图形化界面操作、命令行批量导入和Python驱动编程导入,并提供了常见报错解决方案和性能优化技巧,帮助新手快速构建知识图谱。

lambda的博客 648

VHDL实现计数器

10进制同步计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS PORT(clk:IN STD_LOGIC; data:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC); END cnt10;...

zy010101博客 3万+

Java后端实战:钉钉互动卡片消息从配置到生产级对接

在企业级消息推送场景中,机器人通知已从简单的文本向富交互演进。其核心原理在于通过可交互的卡片模板,将传统单向通知升级为双向、有状态的微型应用界面,实现了用户无需跳转即可完成操作的技术价值。这广泛应用于审批、任务确认、数据填报等需要即时反馈的业务流程。本文聚焦于钉钉平台,深入剖析其互动卡片消息机制,并基于Java后端,系统讲解如何实现包括安全验签、异步回调与卡片动态更新在内的生产级对接方案,涵盖配置管理、服务降级等工程实践关键点,助力构建稳定高效的企业消息交互服务。

weixin_30617737的博客 435

【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第一节 lua框架的建立

魔兽世界插件实战笔记从入门到放弃的心理历程 第二节 lua框架的建立 找到魔兽世界的安装目录,找到插件的默认位置:\World of Warcraft\_retail_\Interface\AddOns,在这里建立一个文件夹,魔兽的插件都是用一个文件夹来区分的,第一课吗,就用Lesson_one吧。 下面建立的三个文件,第一个点toc文件是最重要的一个,它是魔兽客户端识别插件的一个标识符。 魔兽版本号有一个函数可以查询在WoWLua下面运行:print("当前游戏版本号:",(select(4,GetBui

qq_33075391的博客 6450

电子计时时钟带设计报告VHDL代码Quartus仿真

代码功能: 电子计时时钟带设计报告 利用VHDL语言,实现电子计时时钟,要求能够显示分钟、秒钟,显示输出为共阴极数码管,要求: 1、电子计时时钟具有异步清零、同步置数功能,用VHDL实现计数逻辑,并阐述设计原理,给出关键block diagram设计框图。 2、用VHDL实现译码显示逻辑,并阐述设计原理,给出关键block diagram设计框图。 3、驱动的数码管为共阴极数码管,阐述电路原理,给出相应编码方式。 (1)按设计指导书中要求的格式书写,所有内容一律打印; (2)报告内容包括设计过

xiakunpei123的博客 1770

ChatIE:基于ChatGPT的零样本信息抽取实战指南

信息抽取是自然语言处理中的核心任务,旨在从非结构化文本中自动识别并结构化关键信息,如实体、关系及事件。传统方法依赖大量标注数据训练专用模型,流程复杂且成本高昂。随着大语言模型的发展,通过提示工程引导模型理解任务,实现了无需训练数据的零样本抽取能力,极大降低了技术门槛与应用成本。这种范式将信息抽取重构为多轮对话问题,通过分阶段提问引导模型逐步输出结构化结果,在快速原型验证、领域适配及小规模数据探索中展现出显著技术价值。本文以ChatIE项目为例,深入解析如何利用ChatGPT API,通过精心设计的提示词与两

weixin_30540691的博客 404

计算机编程里面counter是什么意思,step在计算机编程中的意思是什么

step在计算机编程中的意思是“步长”,一般出现在计算机算法循化语句中,语法如“For counter = start To end [Step step]”,其中参数“counter”用做循环计数器的数值变量,Step则表示步长。计算机里在算法循化语句中StepFor...Next 语句——以指定次数来重复执行一组语句。语法For counter = start To end [Step ste...

weixin_33076057的博客 4110

ELK 企业级日志分析系统(1)

ELK平台是一套完整的日志集中处理解决方案,将、Logstash和Kiabana三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

云计算运维工程师的成长之路 1864

物联网Node-Red开发教程-第6章 HTTP与Web服务

本章摘要(147字): 本章系统讲解了Node-RED中的HTTP节点应用,重点包括: 三大核心HTTP节点功能:http in(接收请求)、http response(返回响应)、http request(调用外部API) 详细演示了REST API开发流程,包括路径参数(req.params)处理和响应构造 提供了创建Hello World API、传感器数据接口等实用示例 涵盖HTTP方法特性、状态码设置及响应头配置等关键知识点 通过流程图和JSON配置直观展示节点连接方式,帮助快速掌握Web服务开发

shihui2003的博客 264

【转载】关于conv_std_logic_vector 和 conv_integer 这两个函数的使用问题

源地址:http://blog.sina.com.cn/s/blog_622ef24f0100qlct.html std_logic_arithThis is the library that defines some types and basic arithmetic operations for representing integers in standard ways. Th...

dianhuo7207的博客 4279

分布式锁特点、以及用python3实现redis分布式锁

以下是 Python3 实现 Redis 分布式锁的详细教程,包含代码示例、原理说明及最佳实践。

数据知道的博客 2万+

VHDL实现正计时器

实现了一个带有小数位的正计时功能的计时器,按下reset键系统复位,key1开始计时,key2暂停计时,按下按键蜂鸣器会发出响声

vizio.blog.youkuaiyun.com 1696

华为OD机试 - 项目规划 - 深度优先搜索dfs(Java 2024 C卷 100分)

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 1153

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【VHDL】VHDL设计一个分频器

尝试用两种或以上方式设计并实现一个分频器

_TFBoy的小茶馆 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【FPGA学习笔记】VHDL学习(六)用VHDL描述基本逻辑电路(时序逻辑电路:触发器,寄存器,计数器)

用VHDL语言简单描述了几个时序逻辑电路:触发器、寄存器(寄存器,计数器,移位寄存器),计数器

yang_jiangning的博客 2927

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

完整版 VHDL设计数字电子时钟

课程设计报告 一.设计要求 1. 进行正常的时、分、秒计时功能,二十四小时制计时 2. 由数码管显示24h、60min、60s 3. 设置时间 4. 整点报时 5. 闹钟功能 二.设计实现功能 该数字电子钟能够实现时、分、秒计时功能;校准时和分的功能;校准时间时秒清零的功能;整点报时的功能; 三.各个设计模块描述

有空来看看 5万+
上一篇: 编写一个简单通用的makefile
下一篇: Name Mangling in C++
下木
博客等级 码龄16年 88粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值