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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

三段式狀態(tài)機(jī)的vhdl程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間: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


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

//******狀態(tài)機(jī)******段二******
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

//******狀態(tài)機(jī)******段三******
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四個(gè)狀態(tài),復(fù)位時(shí)是00,不復(fù)位時(shí),key0按下時(shí)是11,key0不按下時(shí)每10s進(jìn)入下一個(gè)狀態(tài)。 
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 精品视频在线一区 | 手机日韩 | 天天干狠狠干 | 欧美日韩理论 | 亚洲成人免费 | 亚洲国产成人精品久久 | 午夜三级在线观看 | 91视频在线看| 亚洲精品大片 | 黄色一级免费 | 日韩中文字幕一区二区 | 国产成人精品一区二区三区 | 逼逼网 | 亚洲高清电影 | 久久久久国产一区二区 | 成av人电影在线 | 久草视频2 | 综合久久国产 | 国产精品久久久久aaaa九色 | 国产精品视频一二三 | 97伦理| 国产男人的天堂 | 国产一区二区在线播放 | 粉嫩一区二区三区四区公司1 | 日韩午夜 | 国产二区在线播放 | 色播久久| 日本久草视频 | 91 在线| 久久久久久国产精品三区 | 中文字幕在线不卡 | 欧美在线一区二区三区 | 亚洲视频一区二区三区 | 亚洲综合二区 | 成人av免费在线观看 | 日韩免费网 | 夜夜爽99久久国产综合精品女不卡 | 免费黄色av | 日韩欧美在线观看 | 精品一区二区久久久久久久网精 | 成人在线视频网站 |