miaobiao2.rar

  • PUDN用户
    了解作者
  • VHDL
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2012-12-18 17:26
    上传日期
能实现自动更新的秒表,是经典的集成电路设计源代码
miaobiao2.rar
  • miaobiao2.txt
    5KB
内容介绍
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 12:48:49 12/03/2012 // Design Name: // Module Name: miaobiao // Project Name: // Target Devices: // Tool versions: F // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module miaobiao(clk,reset,start,an,a_to_g,dp ); input clk,reset,start; output [3:0]an; output [6:0]a_to_g; output dp; wire start,clk,reset; reg a_to_g; reg [3:0]an; reg dp; reg [3:0]one,two,three,four; reg clk100hz; reg zhuangtai; reg c1,c2,c3; reg [1:0]state,nextstate; reg digit; reg clk1khz,clk5000hz; //分频// integer count1,count2,count3; parameter s1 = 2'b00, //用独热码表示状态变量; s2 = 2'b01, s3 = 2'b10, s4 = 2'b11; always @(posedge clk or posedge reset) begin if(reset) begin count1<=1; clk100hz <=0; end else begin if(count1==500000) begin count1<=1; end else begin if (count1<250000) begin clk100hz<=0; end else begin clk100hz<=1; end count1<=count1+1; end end end //计时// //10ms// always @(posedge clk100hz or posedge reset ) begin if(reset) begin one<=4'b0000; c1<=1'b0; end else begin if(zhuangtai==1'b1) begin if(one==4'b1001) begin one<=4'b0000; c1<=1'b1; end else begin one<=one+4'b0001; c1<=1'b0; end end else begin one<=one; end end end //100ms// always@(posedge c1 or posedge reset) begin if(reset==1) begin two<=4'b0000; c2<= 1'b0; end else begin if(two==4'b1001) begin two<=4'b0000; c2<=1'b1; end else begin two<=two+1; c2<=1'b0; end end end //1s// always@(posedge c2 or posedge reset) begin if(reset==1) begin three<=4'b0000; c3<=1'b0; end else begin if(three==4'b1001) begin three<=4'b0000; c3<=1'b1; end else begin three<=three+1; c3<=1'b0; end end end //10s// always@(posedge c3 or posedge reset) begin if(reset==1) begin four<=4'b0000; end else begin if(four==4'b0101) begin four<=4'b0000; end else begin four<=four+1; end end end //显示// always@(posedge clk or posedge reset) begin if(reset) begin count2<=1; end else begin if(count2==10000) begin count2<=1; end else begin count2<=count2+1; if(count2>5000) begin clk5000hz<=1'b1; end else begin clk5000hz<=1'b0; end end end end always begin dp<=1'b1; end always@(posedge clk5000hz or posedge reset ) begin if(reset) begin an<=4'b1110; end else begin an<={an[2:0],an[3]}; end end always @(*) begin case(an) 4'b0111:digit<=four; 4'b1011:digit<=three; 4'b1101:digit<=two; 4'b1110:digit<=one; default:digit<=4'b0000; endcase end always@(digit) begin case(digit) 4'b0000:a_to_g<=7'b0000001; 4'b0001:a_to_g<=7'b1001111; 4'b0010:a_to_g<=7'b0010010; 4'b0011:a_to_g<=7'b0000110; 4'b0100:a_to_g<=7'b1001100; 4'b0101:a_to_g<=7'b0100100; 4'b0110:a_to_g<=7'b0100000; 4'b0111:a_to_g<=7'b0001111; 4'b1000:a_to_g<=7'b0000000; 4'b1001:a_to_g<=7'b0000100; default: a_to_g<=7'b111111;//不显示// endcase end //分频// always@(posedge clk) begin if(reset) begin count3<=1; end else begin if(count3==50000) begin count3<=1'b1; end else begin count3<=count3+1; if(count3<25000) begin clk1khz<=1'b1; end else begin clk1khz<=1'b0; end end end end //按键状态机// always@(posedge clk1khz or posedge reset) begin if(reset) begin state<=4'b0001; end else begin state<=nextstate; end end always@(state,start) begin case(state) s1:begin zhuangtai<=1'b0; if(start==1'b1) begin nextstate<=s2; end else begin nextstate<=s1; end end s2:begin zhuangtai<=1'b0; if(start==1'b1) begin nextstate<=s2; end else begin nextstate<=s3; end end s3:begin zhuangtai<=1'b1; if(start==1'b1) begin nextstate<=s4; end else begin nextstate<=s3; end end s4:begin zhuangtai<=1'b1; if(start==1'b1) begin nextstate<=s4; end else begin nextstate<=s1; end end default:begin zhuangtai<=1'b0; nextstate<=s1; end endcase end endmodule
评论
    相关推荐
    • 数字集成电路物理设计.pdf.zip
      数字集成电路物理设计,适合数字后端学习使用,
    • IC集成电路应用手册
      IC集成电路应用手册全书共分10章。内容包括:晶体管的版图设计,组合逻辑和时序逻辑的门级电路设计,子电路系统及其芯片的版图布局、布线技术,芯片的体系结构以及CAD算法及可测性设计等。每章末尾均附有难度不同的...
    • 555集成电路应用800例.rar
      555集成电路应用800例, 时基电路555的结构和工作原理、单稳态模式、无稳态多谐振荡
    • 家用电器遥控系统集成电路大全
      非常实用的家用电器遥控系统集成电路大全,希望对大家有用!
    • 通信系统集成电路设计实验5.zip
      通信系统集成电路设计实验5.zip
    • 通用集成电路速查手册
      通用集成电路速查手册 、 PC 机与单片机通信(RS232 协议) 0002、C与VB语言联合在proteus上仿真 0003、IC卡读写仿真 0004、Integrate就医服务平台论文 0005、PC红外线遥控器上位机及电路图 0006、PLC电梯控制系统论文...
    • 数字集成电路设计入门
      数字集成电路设计入门--从HDL到版图 于敦山 北大微电子学系 课程内容(一) 介绍Verilog HDL, 内容包括: Verilog应用 Verilog语言的构成元素 结构级描述及仿真 行为级描述及仿真 延时的特点及说明 介绍Verilog test...
    • 555集成电路应用800例.zip
      介绍时基电路555(556)工作原理,分大类介绍IC555在波形产生、变换、调制、定时、计量、检测、电源变换、继电保护等多方面的应用技术。
    • 2019集成电路行业研究报告.rar
      2019集成电路行业研究报告,可以大概看一下,PDF文件,感兴趣的可以下载试试
    • 555集成电路应用800例.rar
      涉及到数电、模电等的集成电路应用的例子,共有800个,对新手很友好