名称:停车场计数器设计Verilog代码Quartus? DE2-115开发板
软件:Quartus
语言:Verilog
代码功能:
停车场计数器
假设停车场只有一个入口和一个出口,利用两对光电传感器检测车辆的进出情况。当有车辆处在接收器与发射器中间时,相应的输出位置为有效即置1。通过检查光电传感器可以确定是否有车辆进出活动或者只是行人穿过每进入一辆车进行一次固定停车费的收取。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
设计1
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?Testbench
7.?仿真图
设计2
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?Testbench
7.?仿真图
部分代码展示:
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// // module?park_station( input?clk,//输入时钟 input?a,//入口 input?b,//出口 output?reg?[7:0]?HEX0,//低亮 output?reg?[7:0]?HEX1,//低亮 output?reg?[7:0]?HEX2,//低亮 output?reg?[7:0]?HEX4,//低亮 output?reg?[7:0]?HEX5,//低亮 output?reg?[7:0]?HEX6?//低亮 ????); 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;//有车离开维持状态
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1201
阅读全文