• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

停車場計數器傳感器檢測verilog代碼basys3開發(fā)板驗證

05/26 16:04
321
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-231120214G6147.doc

共1個文件

名稱:停車場計數器傳感器檢測verilog代碼basys3開發(fā)板驗證(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

停車場計數器設計

1、停車場有一個入口一次出口,每個口有一個傳感器檢測車輛進出。

2、兩個傳感器都未被遮擋時,傳感器ab值為00。

3、傳感器a被遮擋,傳感器值ab為10。

4、傳感器b被遮擋,傳感器值ab為01。

5、傳感器ab被遮擋,傳感器值ab為11。

使用代碼設計停車場計數器,用按鍵代替?zhèn)鞲衅?,在開發(fā)板驗證停車場計數器功能。

park.png

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在Basys3開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:

basys3開發(fā)板.png

演示視頻:

設計文檔:

停車場計數器仿真

要求:

1.程序文件

2.程序運行

3.程序仿真

程序接口

管腳約束

仿真

Testbench

整體仿真圖

a表示車進入信號,enter為一個clk的進入信號,inc為計數增加信號,car_num為車輛數量

同時有車進出,enter和exit同時為高,

Inc和dec信號不為1,總數不增不減

b為汽車駛出信號,exit為一個clk的駛出信號,dec為1,總數減少1

為便于數碼管顯示,需要將car_num變?yōu)?個數碼管信號,分別為百位,十位,個位

如下圖hun,ten,one信號

數碼管位選和段選信號

部分代碼展示:

module?park_station(
????input?clk,//輸入時鐘
????input?a_key,//入口
????input?b_key,//出口
????
????output?reg?[3:0]?weixuan,//數碼管位選
????output?reg?[7:0]?duanxuan//數碼管段選
????);
wire?a;//消抖后信號
wire?b;//消抖后信號
//消抖模塊
key_debounce?a_key_debounce(
.?clk(clk),
.?button_in(a_key),//輸入
.?button_jitter(a)//消抖后按鍵
);
//消抖模塊
key_debounce?b_key_debounce(
.?clk(clk),
.?button_in(b_key),//輸入
.?button_jitter(b)//消抖后按鍵
);
parameter?idle_in?=?3'd0;//空閑狀態(tài)
parameter?idle_out?=?3'd5;//空閑狀態(tài)
parameter?car_in?=?3'd1;//有車進入狀態(tài)
parameter?car_in_wait?=?3'd2;//有車進入維持狀態(tài)
parameter?car_out?=?3'd3;//有車離開狀態(tài)
parameter?car_out_wait?=?3'd4;//有車離開維持狀態(tài)
//parameter?car_inout?=?3'd5;//同時有車進入離開狀態(tài)
reg?[2:0]?state_a='d0;
reg?[2:0]?state_b='d0;
//兩段式狀態(tài)機第一段,狀態(tài)轉換
always@(posedge?clk)
begin
??case(state_a)
????idle_in:if(a==1)
????????????????state_a<=car_in;//有車進入
????????????else
????????????????state_a<=idle_in;//無車保持空閑狀態(tài)
?????car_in:????state_a<=car_in_wait;//有車進入維持狀態(tài)
?????car_in_wait:if(a==1)
?????????????????????state_a<=car_in_wait;//有車進入維持狀態(tài)
?????????????????else
?????????????????????state_a<=idle_in;//車完全駛入???
?????default:state_a<=idle_in;???
?????endcase
?????
??case(state_b)
???????idle_out:if(b==1)
???????????????????state_b<=car_out;//有車離開
???????????????else
???????????????????state_b<=idle_out;//無車保持空閑狀態(tài)
????????car_out:????state_b<=car_out_wait;//有車離開維持狀態(tài)
????????car_out_wait:if(b==1)
????????????????????????state_b<=car_out_wait;//有車離開維持狀態(tài)
????????????????????else
????????????????????????state_b<=idle_out;//車完全離開???
????????default:state_b<=idle_out;???
????????endcase
end

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=292

  • 1-231120214G6147.doc
    下載

相關推薦