--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硬件描述语言实现数字钟的更多相关文章

  1. 中国澳门sinox很多平台CAD制图、PCB电路板、IC我知道了、HDL硬件描述语言叙述、电路仿真和设计软件,元素分析表

    中国澳门sinox很多平台CAD制图.PCB电路板.IC我知道了.HDL硬件描述语言叙述.电路仿真和设计软件,元素分析表,可打开眼世界. 最近的研究sinox执行windows版protel,powe ...

  2. 基于basys2用verilog设计多功能数字钟(重写)

    话不多说先上图         前言 自从学习FPGA以来,唯一做过的完整系统就是基于basys2得多功能数字表.记得当时做的时候也没少头疼,最后用时间磨出来了一个不是很完整的小系统,当时还是产生了满 ...

  3. 基于BASYS2的VHDL程序——数字钟

    在编电子表时发现FPGA求余,取模只能针对2的次方.毕竟是数字的嘛! 时钟用到了动态刷新数码管.以一个大于50Hz的速度刷新每一个数码管. 因为数码管只有四个,只写了分针和秒针. 代码如下: libr ...

  4. 基于BASYS2的VHDL程序——数字钟(最终版)

    转载请注明原地址:http://www.cnblogs.com/connorzx/p/3674178.html 调时电路正常工作.一切正常.发现做FPGA还是得从数电的思路思考,设置一个预置使能端,预 ...

  5. 基于BASYS2的VHDL程序——数字钟(改进版)

    扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...

  6. Qt 之 数字钟

    本例用来展示 QTimer 的使用,如何定时的更新一个窗口部件. 1  QLCDNumber 类 QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继 ...

  7. FPGA 物理时序不合理的体现(体现方式:数字钟的行扫描和列扫描)

    本人在这只讨论建模好的模块来比较解释现象,如有不周到请大家指正. 软件功能仿真和在硬件上的区别:可以从这个数码管的行扫描和列扫描实例来体会一下,物理时序的影响和改进方法. 数码管的行扫描.列扫描要求同 ...

  8. 基于串口校时的数字钟设计(verilog实现)

    任务: 电路图设计: 设计: 模块1:1.先设计一个计数时钟,为了仿真方便,这里把1000ns当作1s. 创建一个计数器second_lim,当计数到1000/20时清零,即1s. 秒显示器secon ...

  9. NCO

    NCO 摘自百度百科 (数字振荡器) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . 数字控制振荡器(NCO,numerically controlled oscillator)是 ...

随机推荐

  1. 【数据结构】bzoj2957楼房重建

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  2. [POI2014] KUR-Couriers(洛谷P3567)

    洛谷题目链接:[POI2014]KUR-Couriers 题目描述 Byteasar works for the BAJ company, which sells computer games. Th ...

  3. 网络流专题练习Day1

    04/16 一共做了8道题 首先网络流目前自己掌握的只有最大流Dinic算法和普通的费用流算法 有空还要去学习一下SAP和ZKW费用流(flag早早立在前面以后看到都有动力... 但网络流的算法个人认 ...

  4. bzoj 2120 线段树套平衡树

    先吐下槽,改了快一个小时,最后发现是SBT的delete写错了,顿时就有想死的心..... 首先对于这道题,我们应该先做一下他的小问题,bzoj1878,虽然和这道题几乎一点关系没有, 但是能给我们一 ...

  5. 在ubuntu 上面安装ubuntu touch 模拟器

    Canonical 公司已经发布了一个运行着Unity8和Mir的Ubuntu Touch模拟器.虽然有一些bug,例如在64位的系统上会使系统崩溃,但我们相信这些都会被一 一修复,这篇文章将教大家如 ...

  6. Settings点击Location(位置)后右上角的开关button不会消失

    MT8121/8382平台: 前几天又遇到一个源码的bug.在10寸平板上,进入设置界面,点击Location(位置)项,右上角Title处会显示一个开关button,用来开关定位服务.但点完Loca ...

  7. 使用lombok省略get、set代码

    首先下载lombok的jar包,如果是maven项目,直接加依赖 <dependency> <groupId>org.projectlombok</groupId> ...

  8. 自动监控tomcat脚本并且执行重启操作

    #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # author:reed # date:// # 定义环境变量 MYPATH=/usr/local/jdk/bin exp ...

  9. [bzoj5017][Snoi2017]炸弹 tarjan缩点+线段树优化建图+拓扑

    5017: [Snoi2017]炸弹 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 608  Solved: 190[Submit][Status][ ...

  10. 【python】ipython与python的区别

    [python]ipython与python的区别 (2014-06-05 12:27:40) 转载▼   分类: Python http://mba.shengwushibie.com/itbook ...