久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
FPGA控制呼吸燈
[打印本頁]
作者:
梔子忍冬艷薔薇
時間:
2021-3-26 22:13
標題:
FPGA控制呼吸燈
//`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////////
//// Company:
//// Engineer:
////
//// Create Date: 2020/12/14 19:22:24
//// Design Name:
//// Module Name: led_breath
//// Project Name:
//// Target Devices:
//// Tool Versions:
//// Description:
////
//// Dependencies:
////
//// Revision:
//// Revision 0.01 - File Created
//// Additional Comments:
////
////////////////////////////////////////////////////////////////////////////////////
//module led_breath(
// input i_sys_clk, //輸入時鐘
// input i_sys_rst_n,
// output [3:0] o_led
// );
// /* 計數器r_cnt_2us循環計數,計到99為2us */ //計數r_cnt_2us 計數器
// parameter p_cnt_2us_max = 7'd100 - 1'b1;
// reg [7:0] r_cnt_2us = 7'b0;
// always @(posedge i_sys_clk or negedge i_sys_rst_n)
// begin
// if (i_sys_rst_n == 1'b0)
// r_cnt_2us <= 7'd0;
// else if(r_cnt_2us == p_cnt_2us_max)
// r_cnt_2us <= 7'd0;
// else
// r_cnt_2us <= r_cnt_2us + 1'b1;
// end
// /* 計數器r_cnt_2ms,每2us加一,計到999為2ms */ //計數r_cnt_2ms
// parameter p_cnt_2ms_max = 10'd1000 - 1'b1;
// reg [9:0] r_cnt_2ms = 10'b0;
// always @(posedge i_sys_clk or negedge i_sys_rst_n)
// begin
// if (i_sys_rst_n == 1'b0)
// r_cnt_2ms <= 10'd0;
// else if(r_cnt_2us == p_cnt_2us_max && r_cnt_2ms == p_cnt_2ms_max)
// r_cnt_2ms <= 10'd0;
// else if(r_cnt_2us == p_cnt_2us_max)
// r_cnt_2ms <= r_cnt_2ms + 1'b1;
// else
// r_cnt_2ms = r_cnt_2ms;
// end
// /* 計數器r_cnt_2s,每2ms加一,計到999為2s */ //計數r_cnt_2s 計數
// parameter p_cnt_2s_max = 10'd1000 - 1'b1;
// reg [9:0] r_cnt_2s = 10'b0;
// reg [3:0] r_led = 4'b0;
// always @(posedge i_sys_clk or negedge i_sys_rst_n)
// begin
// if (i_sys_rst_n == 1'b0)
// r_cnt_2s <= 10'd0;
// else if(r_cnt_2us == p_cnt_2us_max && r_cnt_2ms == p_cnt_2ms_max && r_cnt_2s == p_cnt_2s_max)
// r_cnt_2s <= 10'd0;
// else if(r_cnt_2us == p_cnt_2us_max && r_cnt_2ms == p_cnt_2ms_max)
// r_cnt_2s <= r_cnt_2s + 1'b1;
// else
// r_cnt_2s <= r_cnt_2s;
// end
// /* r_flag標志 */
// reg r_flag = 1'b0;
// always @(posedge i_sys_clk or negedge i_sys_rst_n)
// begin
// if (i_sys_rst_n == 1'b0)
// r_flag <= 1'b0;
// else if(r_cnt_2us == p_cnt_2us_max && r_cnt_2ms == p_cnt_2ms_max && r_cnt_2s == p_cnt_2s_max)
// r_flag <= ~r_flag;
// else
// r_flag <= r_flag;
// end
// /* control */
// always @(posedge i_sys_clk or negedge i_sys_rst_n)
// begin
// if (~i_sys_rst_n)
// r_led <= 4'b0000;
// else if (r_cnt_2s >= r_cnt_2ms && r_flag == 1'b0) //2s>兩毫秒,0
// r_led <= 4'b1111;
// else if (r_cnt_2s < r_cnt_2ms && r_flag == 1'b0) //2s<2ms,0
// r_led <= 4'b0000;
// else if (r_cnt_2s >= r_cnt_2ms && r_flag == 1'b1) // 2s>2ms, 1
// r_led <= 4'b0000;
// else if (r_cnt_2s < r_cnt_2ms && r_flag == 1'b1) // 2s<2ms, 1
// r_led <= 4'b1111;
// else
// r_led <= 4'b0000;
// end
// /* 信號輸出 */
// assign o_led = r_led;
// endmodule
`timescale 1ns/1ps
module led_breath(
clk,led,rst
);
input clk;
input rst;
output reg[3:0] led;
parameter p_2us_max=32'd100-32'd1;
parameter p_2ms_max=32'd1000-32'd1;
parameter p_2s_max=32'd1000-32'd1;
reg [32:1]cnt_2us;//2us計數器計數計到99次,2ms計數器加1
always@(posedge clk or negedge rst)
begin
if(rst!=1)
cnt_2us<=32'd0;
else if(cnt_2us==p_2us_max)
cnt_2us<=32'd0;
else
cnt_2us<=cnt_2us+32'd1;
end
reg[32:1] cnt_2ms; //2ms 計數器計數計到999次,2s計數器加1
always@(posedge clk or negedge rst)
begin
if(rst!=1)
cnt_2ms<=32'd0;
else if(cnt_2ms==p_2ms_max&&cnt_2us==p_2us_max)
cnt_2ms<=32'd0;
else if(cnt_2us==p_2us_max)
cnt_2ms<=cnt_2ms+32'd1;
else
cnt_2ms<=cnt_2ms;
end
reg[32:1] cnt_2s; //2s計數器計計到999次,清零,重新計數
always@(posedge clk or negedge rst)
begin
if(rst!=1)
cnt_2s<=32'd0;
else if(cnt_2s==p_2s_max&&cnt_2ms==p_2ms_max&&cnt_2us==p_2us_max)
cnt_2s<=32'd0;
else if(cnt_2us==p_2us_max&&cnt_2ms==p_2ms_max)
cnt_2s<=32'd1+cnt_2s;
else
cnt_2s<=cnt_2s;
end
//always@(posedge clk or negedge rst)
//begin
//if(rst!=1)
// led<=4'b0000;
//else if(cnt_2s>=cnt_2ms)
//led<=4'b1111;
//else if(cnt_2s<cnt_2ms)
//led<=4'b0000;
//else
//led<=4'b0000;
//end
reg flag;// 定義標志位
always@(posedge clk or negedge rst)
begin
if(rst!=1)
flag<=1'b0;
else if(cnt_2s==p_2s_max&&cnt_2ms==p_2ms_max&&cnt_2us==p_2us_max)
flag<=~flag;
else
flag<=flag;
end
//led由亮變暗的過程
//always@(posedge clk or negedge rst)
//begin
//if(rst!=1)
//led<=4'b0000;
//else if(cnt_2s>=cnt_2ms)
//led<=4'b1111;
//else if(cnt_2s<cnt_2ms) //滅到亮的過程
//led<=4'b0000;
//else
//led<=4'b0000;
//end
//利用標志位來判斷亮暗的過程
always@(posedge clk or negedge rst)
begin
if(rst!=1)
led<=4'b0000;
else if(cnt_2s>=cnt_2ms&&flag==1'b0)
led<=4'b1111;
else if(cnt_2s<cnt_2ms&&flag==1'b0)
led<=4'b0000;
else if(cnt_2s>=cnt_2ms&&flag==1'b1)
led<=4'b0000;
else if(cnt_2s<cnt_2ms&&flag==1'b1)
led<=4'b1111;
end
endmodule
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产91在线视频
|
国产免费av在线
|
日韩精品一区在线
|
成人9ⅰ免费影视网站
|
国产日产精品一区二区三区的介绍
|
一区二区自拍
|
久久亚洲免费视频
|
成人午夜激情视频
|
中文字幕在线观看免费视频
|
天天搞天天干
|
在线看av网址
|
手机福利视频
|
国产成人在线观看免费网站
|
国产精品va
|
免费毛片在线播放免费
|
这里只有精品视频
|
国产一区二区三区视频
|
国产成人综合在线
|
在线免费观看毛片
|
国产精品久久久久久久久
|
日本视频www
|
亚洲综合在线一区
|
三年中文在线观看免费大全中国
|
av在线播放不卡
|
日韩欧美国产一区二区三区
|
视频一区中文字幕
|
欧美精品系列
|
亚洲一区二区免费
|
黑人巨大猛烈捣出白浆
|
色综合五月天
|
久久成人毛片
|
伊人av网
|
久久黄色大片
|
在线观看网址你懂的
|
亚洲一区国产精品
|
在线成人免费
|
久久精品一区二区国产
|
日韩成人精品一区二区
|
国产精品成人国产乱一区
|
欧美成人一级片
|
免费精品
|