vhdl的电子秒表设计.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vhdl的电子秒表设计

`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 23:23:56 11/10/2013 // Design Name: // Module Name: miaobiao // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module miaobiao(CLK_50M,SP,CLR,CLK_1K,EN,LED,OUTBCD, SEG ); input CLK_50M; input SP; input CLR; output CLK_1K; output EN; output [6:0] LED; output [3:0] OUTBCD; output [7:0] SEG; wire CLK_1K; wire EN; wire[6:0] LED; wire[3:0] OUTBCD; wire[7:0] SEG; wire[3:0]MS10; wire[3:0]MS100; wire[3:0]S1; wire[3:0]S10; CTRL U0(CLR,CLK_50M,SP,EN); CB50000 U1(CLK_50M,CLK_1K); COUNT U2(CLK_1K,CLR,EN,MS10,MS100,S1,S10); MULX U3(CLR,CLK_50M,EN,MS10,MS100,S1,S10,OUTBCD,SEG); BCD7 U4(OUTBCD,LED);endmodule //分频模块,将50Mhz时钟分频成1khz;module CB50000(CLK_50M,CLK_1K); input CLK_50M; output CLK_1K; reg CLK_1K; reg count; always@(posedge CLK_50M) begin if(count==49999) begin count=0;CLK_1K=~CLK_1K; end else count=count+1b1; endendmodule//控制模块module CTRL(CLR,CLK_50M,SP,EN); input CLR; input CLK_50M; input SP; output EN; reg EN; parameter S0=1b0; parameter S1=1b1; reg CURRENT_STATE; reg NEXT_STATE; always@(SP or CURRENT_STATE) begin case(CURRENT_STATE) S0: beginEN=1b1;if(SP==1b1)NEXT_STATE=S1;elseNEXT_STATE=S0;end S1: beginEN=1b0;if(SP==1b1)NEXT_STATE=S1;elseNEXT_STATE=S0;end endcase end always@(CLK_50M) begin if(CLR==1b1) CURRENT_STATE=S0; else if(CLK_50M==1b1) CURRENT_STATE=NEXT_STATE; endendmodule //十进制计数器模块module CDU10(CLK_1K,CLR,EN,CN,COUNT10); input CLK_1K; input CLR; input EN; output CN; reg CN; output[3:0]COUNT10; wire[3:0]COUNT10; reg[3:0]SCOUNT10; assign COUNT10=SCOUNT10; always@(posedge CLK_1K or posedge CLR or posedge EN) begin if(CLR==1b1) begin SCOUNT10=4b0000;CN=1b0; end else begin if(EN==1b1) begin if(SCOUNT10==4b1001)beginCN=1b1;SCO

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档