• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

停車場(chǎng)計(jì)數(shù)器傳感器檢測(cè)verilog代碼basys3開發(fā)板驗(yàn)證

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

1-231120214G6147.doc

共1個(gè)文件

名稱:停車場(chǎng)計(jì)數(shù)器傳感器檢測(cè)verilog代碼basys3開發(fā)板驗(yàn)證(代碼在文末下載)

軟件:VIVADO

語言:Verilog

代碼功能:

停車場(chǎng)計(jì)數(shù)器設(shè)計(jì)

1、停車場(chǎng)有一個(gè)入口一次出口,每個(gè)口有一個(gè)傳感器檢測(cè)車輛進(jìn)出。

2、兩個(gè)傳感器都未被遮擋時(shí),傳感器ab值為00。

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

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

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

使用代碼設(shè)計(jì)停車場(chǎng)計(jì)數(shù)器,用按鍵代替?zhèn)鞲衅?,在開發(fā)板驗(yàn)證停車場(chǎng)計(jì)數(shù)器功能。

park.png

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

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

basys3開發(fā)板.png

演示視頻:

設(shè)計(jì)文檔:

停車場(chǎng)計(jì)數(shù)器仿真

要求:

1.程序文件

2.程序運(yùn)行

3.程序仿真

程序接口

管腳約束

仿真

Testbench

整體仿真圖

a表示車進(jìn)入信號(hào),enter為一個(gè)clk的進(jìn)入信號(hào),inc為計(jì)數(shù)增加信號(hào),car_num為車輛數(shù)量

同時(shí)有車進(jìn)出,enter和exit同時(shí)為高,

Inc和dec信號(hào)不為1,總數(shù)不增不減

b為汽車駛出信號(hào),exit為一個(gè)clk的駛出信號(hào),dec為1,總數(shù)減少1

為便于數(shù)碼管顯示,需要將car_num變?yōu)?個(gè)數(shù)碼管信號(hào),分別為百位,十位,個(gè)位

如下圖hun,ten,one信號(hào)

數(shù)碼管位選和段選信號(hào)

部分代碼展示:

module?park_station(
????input?clk,//輸入時(shí)鐘
????input?a_key,//入口
????input?b_key,//出口
????
????output?reg?[3:0]?weixuan,//數(shù)碼管位選
????output?reg?[7:0]?duanxuan//數(shù)碼管段選
????);
wire?a;//消抖后信號(hào)
wire?b;//消抖后信號(hào)
//消抖模塊
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;//有車進(jìn)入狀態(tài)
parameter?car_in_wait?=?3'd2;//有車進(jìn)入維持狀態(tài)
parameter?car_out?=?3'd3;//有車離開狀態(tài)
parameter?car_out_wait?=?3'd4;//有車離開維持狀態(tài)
//parameter?car_inout?=?3'd5;//同時(shí)有車進(jìn)入離開狀態(tài)
reg?[2:0]?state_a='d0;
reg?[2:0]?state_b='d0;
//兩段式狀態(tài)機(jī)第一段,狀態(tài)轉(zhuǎn)換
always@(posedge?clk)
begin
??case(state_a)
????idle_in:if(a==1)
????????????????state_a<=car_in;//有車進(jìn)入
????????????else
????????????????state_a<=idle_in;//無車保持空閑狀態(tài)
?????car_in:????state_a<=car_in_wait;//有車進(jìn)入維持狀態(tài)
?????car_in_wait:if(a==1)
?????????????????????state_a<=car_in_wait;//有車進(jìn)入維持狀態(tài)
?????????????????else
?????????????????????state_a<=idle_in;//車完全駛?cè)???
?????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

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

  • 1-231120214G6147.doc
    下載

相關(guān)推薦