久久久久久久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進入下一個狀態。 
關閉窗口

相關文章

主站蜘蛛池模板: 欧美 视频 | 国产精品海角社区在线观看 | 亚洲精品乱码久久久久久9色 | 亚洲午夜精品 | 免费观看毛片 | 精品久久久久国产 | 欧美成年网站 | 天天操夜夜操 | 欧美二区三区 | 中文字幕在线观看日韩 | h视频免费在线观看 | 成人黄色电影在线播放 | caoporn免费| 色婷婷综合久久久中字幕精品久久 | 一道本不卡 | 免费艹逼视频 | 日韩av美女电影 | 国产视频二区 | 秋霞av国产精品一区 | 性色在线 | 日韩精品一区二区三区在线播放 | 久久91av| 区一区二区三在线观看 | 国产婷婷在线视频 | 免费爱爱视频 | 91社区在线观看播放 | 三级成人在线观看 | 国产高清精品一区二区三区 | 日本一区精品 | 精品视频99 | 91精品一区二区三区久久久久 | 在线午夜 | 极品销魂美女一区二区 | 国产精品久久久久久吹潮日韩动画 | 毛片综合 | 久久精品免费观看 | 成人免费淫片aa视频免费 | 成人精品免费视频 | 亚洲一区二区久久久 | 一级特黄在线 | 精品久久精品 |