VHDL硬件描述语言实现数字钟
- --VHDL上机的一个作业,程序太长实验报告册上写不下了。于是就在博客上留一份吧。
LIBRARY IEEE;- USE IEEE.STD_LOGIC_1164.ALL;
- USE IEEE.STD_LOGIC_UNSIGNED.ALL;
- ENTITY CLOCK IS
- PORT(CLK1S,SET,SWC,CLK1MS,RST:IN STD_LOGIC;
- S0,S1,M0,M1,H0,H1:OUT STD_LOGIC_VECTOR( DOWNTO );
- BEEP:OUT STD_LOGIC;
- PNS,PSS,PSM,PSH:OUT STD_LOGIC
- );
- END CLOCK;
- ARCHITECTURE ONE OF CLOCK IS
- SIGNAL CS,CM:STD_LOGIC;--,CM
- SIGNAL CLKSI,CLKMI,CLKHI:STD_LOGIC;
- SIGNAL NS,SS,SM,SH:STD_LOGIC;
- BEGIN
- PSS<=SS;
- PSM<=SM;
- PSH<=SH;
- PNS<=NS;
- PROCESS(SWC,RST)
- VARIABLE STAT:STD_LOGIC_VECTOR( DOWNTO );
- BEGIN
- IF(RST='')THEN
- STAT:="";
- NS<='';
- SS<='';
- SM<='';
- SH<='';
- ELSIF(RISING_EDGE(SWC))THEN
- STAT:=STAT+;
- CASE STAT IS
- WHEN""=>
- NS<='';
- SS<='';
- SM<='';
- SH<='';
- WHEN""=>
- NS<='';
- SS<='';
- SM<='';
- SH<='';
- WHEN""=>
- NS<='';
- SS<='';
- SM<='';
- SH<='';
- WHEN""=>
- NS<='';
- SS<='';
- SM<='';
- SH<='';
- WHEN OTHERS=>
- STAT:="";
- END CASE;
- END IF;
- END PROCESS;
- CLKSI<=(CLK1S AND NS) OR (SS AND SET);
- CLKMI<=CS OR (SM AND SET);
- CLKHI<=CM OR (SH AND SET);
- PROCESS(CLKSI,RST,SET,NS)
- VARIABLE SS0,SS1:STD_LOGIC_VECTOR( DOWNTO );
- BEGIN
- IF(RST='')THEN
- SS0:="";
- SS1:="";
- CS<='';
- --CM<='';
- ELSIF(RISING_EDGE(CLKSI))THEN
- SS0:=SS0+;
- IF(SS0="")THEN
- SS0:="";
- SS1:=SS1+;
- END IF;
- IF(SS1="")THEN
- SS1:="";
- --SM0:=SM0+;
- CS<='';
- ELSE
- CS<='';
- END IF;
- END IF;
- S0<=SS0;
- S1<=SS1;
- END PROCESS;
- PROCESS(RST,CLKMI,SET)
- VARIABLE SM0,SM1:STD_LOGIC_VECTOR( DOWNTO );
- BEGIN
- IF(RST='')THEN
- SM0:="";
- SM1:="";
- CM<='';
- ELSIF(RISING_EDGE(CLKMI))THEN
- SM0:=SM0+;
- IF(SM0="")THEN
- SM0:="";
- SM1:=SM1+;
- END IF;
- IF(SM1="")THEN
- SM1:="";
- CM<='';
- ELSE
- CM<='';
- END IF;
- END IF;
- M0<=SM0;
- M1<=SM1;
- END PROCESS;
- PROCESS(RST,CLKHI,SET)
- VARIABLE SH0,SH1:STD_LOGIC_VECTOR( DOWNTO );
- BEGIN
- IF(RST='')THEN
- SH0:="";
- SH1:="";
- ELSIF(RISING_EDGE(CLKHI))THEN
- SH0:=SH0+;
- IF(SH0="")THEN
- SH0:="";
- SH1:=SH1+;
- END IF;
- IF(SH1="" AND SH0="")THEN
- SH1:="";
- SH0:="";
- END IF;
- END IF;
- H0<=SH0;
- H1<=SH1;
- END PROCESS;
- PROCESS(CM,CS)
- BEGIN
- IF(CM='' AND CS='')THEN
- BEEP<=CLK1MS;
- ELSE
- BEEP<='';
- END IF;
- END PROCESS;
- END ONE;
VHDL硬件描述语言实现数字钟的更多相关文章
- 中国澳门sinox很多平台CAD制图、PCB电路板、IC我知道了、HDL硬件描述语言叙述、电路仿真和设计软件,元素分析表
中国澳门sinox很多平台CAD制图.PCB电路板.IC我知道了.HDL硬件描述语言叙述.电路仿真和设计软件,元素分析表,可打开眼世界. 最近的研究sinox执行windows版protel,powe ...
- 基于basys2用verilog设计多功能数字钟(重写)
话不多说先上图 前言 自从学习FPGA以来,唯一做过的完整系统就是基于basys2得多功能数字表.记得当时做的时候也没少头疼,最后用时间磨出来了一个不是很完整的小系统,当时还是产生了满 ...
- 基于BASYS2的VHDL程序——数字钟
在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...
- 基于BASYS2的VHDL程序——数字钟(最终版)
转载请注明原地址:http://www.cnblogs.com/connorzx/p/3674178.html 调时电路正常工作.一切正常.发现做FPGA还是得从数电的思路思考,设置一个预置使能端,预 ...
- 基于BASYS2的VHDL程序——数字钟(改进版)
扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...
- Qt 之 数字钟
本例用来展示 QTimer 的使用,如何定时的更新一个窗口部件. 1 QLCDNumber 类 QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继 ...
- FPGA 物理时序不合理的体现(体现方式:数字钟的行扫描和列扫描)
本人在这只讨论建模好的模块来比较解释现象,如有不周到请大家指正. 软件功能仿真和在硬件上的区别:可以从这个数码管的行扫描和列扫描实例来体会一下,物理时序的影响和改进方法. 数码管的行扫描.列扫描要求同 ...
- 基于串口校时的数字钟设计(verilog实现)
任务: 电路图设计: 设计: 模块1:1.先设计一个计数时钟,为了仿真方便,这里把1000ns当作1s. 创建一个计数器second_lim,当计数到1000/20时清零,即1s. 秒显示器secon ...
- NCO
NCO 摘自百度百科 (数字振荡器) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . 数字控制振荡器(NCO,numerically controlled oscillator)是 ...
随机推荐
- node安装
由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境. 安装Node.js 目前Node.js的最新版本是7.6.x.首先,从Node.js官网下载对应平台 ...
- 获取html元素内容
html: <!DOCTYPE ><html> <head> <meta http-equiv="Content-Type" conten ...
- java 线程 join(wait) 后,是如何唤醒
概要:锁是线程,锁对象执行完毕后,会调用自身对象上的notify(); Join 方法:本质上还是根据wait方法实现的.分析join源码发现join方法本身是使用了synchronized修饰符的. ...
- HDU4889 Scary Path Finding Algorithm
Fackyyj loves the challenge phase in TwosigmaCrap(TC). One day, he meet a task asking him to find sh ...
- bzoj3786 星际探索 splay dfs序
这道题 首先 因为他求的是当前点到根节点的路径和 我们可以将题目转换为括号序列的写法 将点拆为左括号以及右括号 左括号为正 右括号为负 这样题目就变为了求前缀和了 如果一个点是这个点的子树 那么他的左 ...
- [POJ1113&POJ1696]凸包卷包裹算法和Graham扫描法应用各一例
凸包的算法比较形象好理解 代码写起来也比较短 所以考前看一遍应该就没什么问题了..>_< POJ1113 刚开始并没有理解为什么要用凸包,心想如果贴着城堡走不是更好吗? 突然发现题目中有要 ...
- 上传代码到github上
初始化 git init 添加远程仓库 git remote add origin[仓库名] 仓库地址 添加文件 git add . 本地提交 git commit -m 'message' 拉去远程 ...
- kuangbin带你飞 后缀数组 题解
2份模板 DC3 . 空间复杂度O3N 时间复杂度On #define F(x) ((x) / 3 + ((x) % 3 == 1 ? 0 : tb)) #define G(x) ((x) < ...
- 最简单的DLL
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了.但是若使用 DLL,该 DLL 不必被包含在最终 EXE ...
- 【 Nginx 】proxy_cache 模块的使用记录
部署环境:nginx + tomcat 同一台服务器. 通过nginx反向代理tomcat. 配置如下: user www www; worker_processes auto; error_log ...