• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

停车场计数器传感器检测verilog代码basys3开发板验证

05/26 16:04
816
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231120214G6147.doc

共1个文件

名称:停车场计数器传感器检测verilog代码basys3开发板验证(代码在文末下载)

软件:VIVADO

语言:Verilog

代码功能:

停车场计数器设计

1、停车场有一个入口一次出口,每个口有一个传感器检测车辆进出。

2、两个传感器都未被遮挡时,传感器ab值为00。

3、传感器a被遮挡,传感器值ab为10。

4、传感器b被遮挡,传感器值ab为01。

5、传感器ab被遮挡,传感器值ab为11。

使用代码设计停车场计数器,用按键代替传感器,在开发板验证停车场计数器功能。

park.png

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png

演示视频:

设计文档:

停车场计数器仿真

要求:

1.程序文件

2.程序运行

3.程序仿真

程序接口

管脚约束

仿真

Testbench

整体仿真图

a表示车进入信号,enter为一个clk的进入信号,inc为计数增加信号,car_num为车辆数量

同时有车进出,enter和exit同时为高,

Inc和dec信号不为1,总数不增不减

b为汽车驶出信号,exit为一个clk的驶出信号,dec为1,总数减少1

为便于数码管显示,需要将car_num变为3个数码管信号,分别为百位,十位,个位

如下图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;//空闲状态
parameter?idle_out?=?3'd5;//空闲状态
parameter?car_in?=?3'd1;//有车进入状态
parameter?car_in_wait?=?3'd2;//有车进入维持状态
parameter?car_out?=?3'd3;//有车离开状态
parameter?car_out_wait?=?3'd4;//有车离开维持状态
//parameter?car_inout?=?3'd5;//同时有车进入离开状态
reg?[2:0]?state_a='d0;
reg?[2:0]?state_b='d0;
//两段式状态机第一段,状态转换
always@(posedge?clk)
begin
??case(state_a)
????idle_in:if(a==1)
????????????????state_a<=car_in;//有车进入
????????????else
????????????????state_a<=idle_in;//无车保持空闲状态
?????car_in:????state_a<=car_in_wait;//有车进入维持状态
?????car_in_wait:if(a==1)
?????????????????????state_a<=car_in_wait;//有车进入维持状态
?????????????????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;//无车保持空闲状态
????????car_out:????state_b<=car_out_wait;//有车离开维持状态
????????car_out_wait:if(b==1)
????????????????????????state_b<=car_out_wait;//有车离开维持状态
????????????????????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
    下载

相关推荐