久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

三段式狀態機的vhdl程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年01月19日   【字體:
`timescale 1ns / 100ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 22:24:52 03/24/2012
// Design Name:
// Module Name: jtd
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module jtd(clk,rst_n,key0,led0,led1
);
input clk,rst_n,key0;
output led0,led1;
reg clk1khz,clk1hz;
reg[1:0] state,next_state;
reg led0,led1;
reg[8:0] count2;
reg[14:0] count1;
reg[3:0] num;
parameter s1 = 2'b00, s2 = 2'b01, s3 = 2'b10, s4 = 2'b11;

//********1khz*******
always @(posedge clk or negedge rst_n)
begin
if(!rst_n) begin
count1 <= 0;
end
else if(count1 == 15'd25000) begin
clk1khz <= ~clk1khz;
count1 <= 0;
end
else begin
count1 <= count1+1;
end
end

//*******1hz**********
always @(posedge clk1khz or negedge rst_n)
begin
if(!rst_n) begin
count2 <= 0;
end
else if(count2 == 9'd500) begin
clk1hz = ~clk1hz;
count2 <= 0;
end
else begin
count2 <= count2 + 1;
end
end

always @(posedge clk1hz or negedge rst_n)
begin
if(!rst_n) begin
num <= 0;
end
else if(num == 4'd10) begin
num <= 0;
end
else begin
num <= num + 1;
end
end


//********狀態機*******段一******
always @(posedge clk1hz or negedge rst_n)
begin
if(!rst_n)
state <= s1;
else
state <= next_state;
end

//******狀態機******段二******
always @(state)
begin
if(!rst_n)
next_state = s1;
else
case(state)
s1:
if(key0 == 0)
next_state = s4;
else if(num == 4'd10)
next_state = s2;
else
next_state = s1;
s2:
if(key0==0)
next_state = s4;
else if(num == 4'd10)
next_state = s3;
else
next_state = s2;
s3:
if(key0 == 0)
next_state = s4;
else if(num == 4'd10)
next_state = s4;
else
next_state = s3;
s4:
if(key0 == 0)
next_state = s4;
else if(num == 4'd10)
next_state = s1;
else
next_state = s4;
default:
next_state = s1;
endcase
end

//******狀態機******段三******
always @(posedge clk1hz or negedge rst_n)
begin
if(!rst_n) begin
led0 <= 0;
led1 <= 0;
end
else
case(state)
s1: begin
led0 <= 0;
led1 <= 0;
end
s2: begin
led0 <= 1;
led1 <= 0;
end
s3: begin
led0 <= 0;
led1 <= 1;
end
s4: begin
led0 <= 1;
led1 <= 1;
end
default: begin
led0 <= 0;
led1 <= 0;
end
endcase
end

endmodule

說明:00 01 10 11四個狀態,復位時是00,不復位時,key0按下時是11,key0不按下時每10s進入下一個狀態。 
關閉窗口

相關文章

主站蜘蛛池模板: 精品视频一二区 | 91精品国产综合久久香蕉麻豆 | 黄篇网址 | 精品视频一区二区 | 欧美精品免费观看二区 | 国产免费一区二区三区网站免费 | 91精品国产乱码久久久久久久久 | 欧美国产视频一区二区 | 色婷婷久久久久swag精品 | 久色一区 | 久久久久免费 | 成年人黄色免费视频 | 一本大道久久a久久精二百 欧洲一区二区三区 | 国产成人免费网站 | 国产精品久久久久免费 | 国产中文区二幕区2012 | 日韩精品久久久久久 | 精品一区国产 | 天天拍天天操 | 精品一区二区久久 | 久久免费福利 | 久久国产精品免费一区二区三区 | av一级 | 国内在线视频 | 99re视频这里只有精品 | 亚洲综合日韩精品欧美综合区 | 不卡视频在线 | 亚洲精品欧美一区二区三区 | 国产成人av在线播放 | 午夜精品一区二区三区在线播放 | 久久国产香蕉 | 欧美视频免费在线观看 | 91在线视频免费观看 | av黄色在线 | 一区二区在线 | 国产999精品久久久 日本视频一区二区三区 | 日韩视频 中文字幕 | 性在线 | 久久综合狠狠综合久久综合88 | 精品小视频 | 欧美日韩国产一区二区三区 |