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

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

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

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
    下载

相关推荐