停车场系统的Verilog代码

此项目是停车场系统的Verilog代码。这个简单的项目是在Verilog中实现停车场系统。 停车场系统的Verilog代码已完整显示。在停车系统的入口处,有一个传感器被激活以检测车辆驶来。 触发传感器后,需要输入密码才能打开门。 如果输入的密码正确,则门将打开以允许车辆进入。否则,门仍被锁定。 如果当前汽车正驶入停车场,并被出口传感器检测到而另一辆汽车驶入,则门将被锁定,并要求即将驶来的汽车输入密码。

预览截图

应用介绍

此项目是停车场系统的Verilog代码。这个简单的项目是在Verilog中实现停车场系统。 停车场系统的Verilog代码已完整显示。在停车系统的入口处,有一个传感器被激活以检测车辆驶来。 触发传感器后,需要输入密码才能打开门。 如果输入的密码正确,则门将打开以允许车辆进入。否则,门仍被锁定。 如果当前汽车正驶入停车场,并被出口传感器检测到而另一辆汽车驶入,则门将被锁定,并要求即将驶来的汽车输入密码。附件得文件中包括:停车场系统的Verilog代码、用于停车系统的Testbench Verilog代码、Verilog中的停车场系统的仿真波形。本人在预览区展示了Verilog中的停车场系统的仿真波形;在下方展示了停车场系统的Verilog代码;如想了解得更多请下载附件。

// fpga4student.com FPGA projects, Verilog projects, VHDL projects
// Verilog project: Verilog code for car parking system
`timescale 1ns / 1ps
module parking_system( 
                input clk,reset_n,
 input sensor_entrance, sensor_exit, 
 input [1:0] password_1, password_2,
 output wire GREEN_LED,RED_LED,
 output reg [6:0] HEX_1, HEX_2
    );
 parameter IDLE = 3'b000, WAIT_PASSWORD = 3'b001, WRONG_PASS = 3'b010, RIGHT_PASS = 3'b011,STOP = 3'b100;
 // Moore FSM : output just depends on the current state
 reg[2:0] current_state, next_state;
 reg[31:0] counter_wait;
 reg red_tmp,green_tmp;
 // Next state
 always @(posedge clk or negedge reset_n)
 begin
 if(~reset_n) 
 current_state = IDLE;
 else
 current_state = next_state;
 end
 // counter_wait
 always @(posedge clk or negedge reset_n) 
 begin
 if(~reset_n) 
 counter_wait <= 0;
 else if(current_state==WAIT_PASSWORD)
 counter_wait <= counter_wait + 1;
 else 
 counter_wait <= 0;
 end
 // change state
// fpga4student.com FPGA projects, Verilog projects, VHDL projects
 always @(*)
 begin
 case(current_state)
 IDLE: begin
         if(sensor_entrance == 1)
 next_state = WAIT_PASSWORD;
 else
 next_state = IDLE;
 end
 WAIT_PASSWORD: begin
 if(counter_wait <= 3)
 next_state = WAIT_PASSWORD;
 else 
 begin
 if((password_1==2'b01)&&(password_2==2'b10))
 next_state = RIGHT_PASS;
 else
 next_state = WRONG_PASS;
 end
 end
 WRONG_PASS: begin
 if((password_1==2'b01)&&(password_2==2'b10))
 next_state = RIGHT_PASS;
 else
 next_state = WRONG_PASS;
 end
 RIGHT_PASS: begin
 if(sensor_entrance==1 && sensor_exit == 1)
 next_state = STOP;
 else if(sensor_exit == 1)
 next_state = IDLE;
 else
 next_state = RIGHT_PASS;
 end
 STOP: begin
 if((password_1==2'b01)&&(password_2==2'b10))
 next_state = RIGHT_PASS;
 else
 next_state = STOP;
 end
 default: next_state = IDLE;
 endcase
 end
 // LEDs and output, change the period of blinking LEDs here
 always @(posedge clk) begin 
 case(current_state)
 IDLE: begin
 green_tmp = 1'b0;
 red_tmp = 1'b0;
 HEX_1 = 7'b1111111; // off
 HEX_2 = 7'b1111111; // off
 end
 WAIT_PASSWORD: begin
 green_tmp = 1'b0;
 red_tmp = 1'b1;
 HEX_1 = 7'b000_0110; // E
 HEX_2 = 7'b010_1011; // n 
 end
 WRONG_PASS: begin
 green_tmp = 1'b0;
 red_tmp = ~red_tmp;
 HEX_1 = 7'b000_0110; // E
 HEX_2 = 7'b000_0110; // E 
 end
 RIGHT_PASS: begin
 green_tmp = ~green_tmp;
 red_tmp = 1'b0;
 HEX_1 = 7'b000_0010; // 6
 HEX_2 = 7'b100_0000; // 0 
 end
 STOP: begin
 green_tmp = 1'b0;
 red_tmp = ~red_tmp;
 HEX_1 = 7'b001_0010; // 5
 HEX_2 = 7'b000_1100; // P 
 end
 endcase
 end
 assign RED_LED = red_tmp  ;
 assign GREEN_LED = green_tmp;
endmodule

文件列表(部分)

名称 大小 修改日期
停车场系统的Verilog代码.txt1.19 KB2020-03-29
p1.png39.71 KB2020-03-29
image0.00 KB2020-03-29

立即下载

相关下载

[算术逻辑单元(ALU)的Verilog代码] 此项目是算术逻辑单元(ALU)的Verilog代码。上一次,在VHDL中设计并实现了算术逻辑单元(ALU)。 提出了用于ALU的完整VHDL代码。现在,apollocode提供了ALU的Verilog代码。 还提供了用于ALU的testbench Verilog代码以进行仿真。附件中包括:ALU的Verilog代码、ALU的Testbench Verilog代码、ALU的仿真波形。了解更多请下载附件。
[16位RISC处理器的Verilog代码] 此项目是16位RISC处理器的Verilog代码。在此Verilog项目中,提供了用于16位RISC处理器的Verilog代码。RISC处理器是基于其指令集和哈佛式数据路径结构而设计的。 然后,RISC处理器在Verilog中实现,并使用Xilinx ISIM进行验证。附件中包括:RISC处理器的指令集、处理器控制单元设计、ALU控制单元设计、RISC处理器的Verilog代码等等;了解更多请下载附件。
[Full Adder的Verilog代码] 此项目是Full Adder的Verilog代码。在此Verilog项目中,提供了Full Adder的Verilog代码。 Full Adder的行为和结构Verilog代码均已实现。附件中包括:使用行为代码的完整加法器的Verilog代码、完整加法器的Verilog代码,使用结构代码。想了解的更多请下载附件。
[比较器的Verilog代码] 此项目是比较器的Verilog代码。在该项目中,在Verilog HDL中设计并实现了一个简单的2位比较器。 给出了真值表,K-Map和比较器的最小化方程。 比较器的Verilog代码由ModelSim仿真,并给出了仿真波形。2位比较器的规格如下:输入:2位A和B用于比较;输出:A_greater_B:如果A> B,则为高,否则为低;A_equal_B:如果A = B,则为高,否则为低;A_less_B:如果A [D触发器的Verilog代码] 此项目是D触发器的Verilog代码。D触发器是数字逻辑电路中的基本组件。 此项目中提供了D触发器的Verilog代码。 实现了两种类型的D型触发器,即上升沿D型触发器和下降沿D型触发器。附件文件中包括:上升沿D型触发器的Verilog代码、带有同步复位的上升沿D触发器的Verilog代码、具有异步复位高电平的上升沿D触发器的Verilog代码、具有异步复位低电平的上升沿D触发器的Verilog代码等等。了解更多请下载附件。
[4x4乘法器的Verilog代码] 此项目是4x4乘法器的Verilog代码。该项目将使用Verilog HDL实现4x4乘法器。所使用的技术是移位/相加算法,但不同的功能是使用两相自计时系统,以将乘法时间减少一半。此附件文件包括:乘法器的Verilog代码、4x4乘法器的仿真结果。注意:一旦确定了启动信号,乘法器便开始执行乘法。 通过创建2个相位时钟,它将乘法时间减少了一半。结束信号,通知乘法器乘法已经完成并且结果准备就绪。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部