1. --VHDL上机的一个作业,程序太长实验报告册上写不下了。于是就在博客上留一份吧。
    LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  4.  
  5. ENTITY CLOCK IS
  6. PORT(CLK1S,SET,SWC,CLK1MS,RST:IN STD_LOGIC;
  7. S0,S1,M0,M1,H0,H1:OUT STD_LOGIC_VECTOR( DOWNTO );
  8. BEEP:OUT STD_LOGIC;
  9. PNS,PSS,PSM,PSH:OUT STD_LOGIC
  10. );
  11. END CLOCK;
  12.  
  13. ARCHITECTURE ONE OF CLOCK IS
  14. SIGNAL CS,CM:STD_LOGIC;--,CM
  15. SIGNAL CLKSI,CLKMI,CLKHI:STD_LOGIC;
  16. SIGNAL NS,SS,SM,SH:STD_LOGIC;
  17. BEGIN
  18. PSS<=SS;
  19. PSM<=SM;
  20. PSH<=SH;
  21. PNS<=NS;
  22. PROCESS(SWC,RST)
  23. VARIABLE STAT:STD_LOGIC_VECTOR( DOWNTO );
  24. BEGIN
  25. IF(RST='')THEN
  26. STAT:="";
  27. NS<='';
  28. SS<='';
  29. SM<='';
  30. SH<='';
  31. ELSIF(RISING_EDGE(SWC))THEN
  32. STAT:=STAT+;
  33. CASE STAT IS
  34. WHEN""=>
  35. NS<='';
  36. SS<='';
  37. SM<='';
  38. SH<='';
  39. WHEN""=>
  40. NS<='';
  41. SS<='';
  42. SM<='';
  43. SH<='';
  44. WHEN""=>
  45. NS<='';
  46. SS<='';
  47. SM<='';
  48. SH<='';
  49. WHEN""=>
  50. NS<='';
  51. SS<='';
  52. SM<='';
  53. SH<='';
  54. WHEN OTHERS=>
  55. STAT:="";
  56. END CASE;
  57. END IF;
  58. END PROCESS;
  59.  
  60. CLKSI<=(CLK1S AND NS) OR (SS AND SET);
  61. CLKMI<=CS OR (SM AND SET);
  62. CLKHI<=CM OR (SH AND SET);
  63.  
  64. PROCESS(CLKSI,RST,SET,NS)
  65. VARIABLE SS0,SS1:STD_LOGIC_VECTOR( DOWNTO );
  66. BEGIN
  67. IF(RST='')THEN
  68. SS0:="";
  69. SS1:="";
  70. CS<='';
  71. --CM<='';
  72. ELSIF(RISING_EDGE(CLKSI))THEN
  73. SS0:=SS0+;
  74. IF(SS0="")THEN
  75. SS0:="";
  76. SS1:=SS1+;
  77. END IF;
  78. IF(SS1="")THEN
  79. SS1:="";
  80. --SM0:=SM0+;
  81. CS<='';
  82. ELSE
  83. CS<='';
  84. END IF;
  85. END IF;
  86. S0<=SS0;
  87. S1<=SS1;
  88. END PROCESS;
  89.  
  90. PROCESS(RST,CLKMI,SET)
  91. VARIABLE SM0,SM1:STD_LOGIC_VECTOR( DOWNTO );
  92. BEGIN
  93. IF(RST='')THEN
  94. SM0:="";
  95. SM1:="";
  96. CM<='';
  97. ELSIF(RISING_EDGE(CLKMI))THEN
  98. SM0:=SM0+;
  99. IF(SM0="")THEN
  100. SM0:="";
  101. SM1:=SM1+;
  102. END IF;
  103. IF(SM1="")THEN
  104. SM1:="";
  105. CM<='';
  106. ELSE
  107. CM<='';
  108. END IF;
  109. END IF;
  110. M0<=SM0;
  111. M1<=SM1;
  112. END PROCESS;
  113.  
  114. PROCESS(RST,CLKHI,SET)
  115. VARIABLE SH0,SH1:STD_LOGIC_VECTOR( DOWNTO );
  116. BEGIN
  117. IF(RST='')THEN
  118. SH0:="";
  119. SH1:="";
  120. ELSIF(RISING_EDGE(CLKHI))THEN
  121. SH0:=SH0+;
  122. IF(SH0="")THEN
  123. SH0:="";
  124. SH1:=SH1+;
  125. END IF;
  126. IF(SH1="" AND SH0="")THEN
  127. SH1:="";
  128. SH0:="";
  129. END IF;
  130. END IF;
  131. H0<=SH0;
  132. H1<=SH1;
  133. END PROCESS;
  134.  
  135. PROCESS(CM,CS)
  136. BEGIN
  137. IF(CM='' AND CS='')THEN
  138. BEEP<=CLK1MS;
  139. ELSE
  140. BEEP<='';
  141. END IF;
  142. END PROCESS;
  143. 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. node安装

    由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境. 安装Node.js 目前Node.js的最新版本是7.6.x.首先,从Node.js官网下载对应平台 ...

  2. 获取html元素内容

    html: <!DOCTYPE ><html> <head> <meta http-equiv="Content-Type" conten ...

  3. java 线程 join(wait) 后,是如何唤醒

    概要:锁是线程,锁对象执行完毕后,会调用自身对象上的notify(); Join 方法:本质上还是根据wait方法实现的.分析join源码发现join方法本身是使用了synchronized修饰符的. ...

  4. HDU4889 Scary Path Finding Algorithm

    Fackyyj loves the challenge phase in TwosigmaCrap(TC). One day, he meet a task asking him to find sh ...

  5. bzoj3786 星际探索 splay dfs序

    这道题 首先 因为他求的是当前点到根节点的路径和 我们可以将题目转换为括号序列的写法 将点拆为左括号以及右括号 左括号为正 右括号为负 这样题目就变为了求前缀和了 如果一个点是这个点的子树 那么他的左 ...

  6. [POJ1113&POJ1696]凸包卷包裹算法和Graham扫描法应用各一例

    凸包的算法比较形象好理解 代码写起来也比较短 所以考前看一遍应该就没什么问题了..>_< POJ1113 刚开始并没有理解为什么要用凸包,心想如果贴着城堡走不是更好吗? 突然发现题目中有要 ...

  7. 上传代码到github上

    初始化 git init 添加远程仓库 git remote add origin[仓库名] 仓库地址 添加文件 git add . 本地提交 git commit -m 'message' 拉去远程 ...

  8. kuangbin带你飞 后缀数组 题解

    2份模板 DC3 . 空间复杂度O3N 时间复杂度On #define F(x) ((x) / 3 + ((x) % 3 == 1 ? 0 : tb)) #define G(x) ((x) < ...

  9. 最简单的DLL

    静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了.但是若使用 DLL,该 DLL 不必被包含在最终 EXE ...

  10. 【 Nginx 】proxy_cache 模块的使用记录

    部署环境:nginx + tomcat  同一台服务器. 通过nginx反向代理tomcat. 配置如下: user www www; worker_processes auto; error_log ...