出租车计费器的Verilog语言简单完成

1.本课程设计完成的计费器应具有如下功能:
(1)实现计费功能,计费标准为:按行驶里程计算,起步价为7.0元,并在车行驶3km后按元/km计费,当计费器达到或超过20元时,每千米加收50%的车费,车停止不收费。
(2)现场模拟功能:以开关按键模拟千米计数,能模拟汽车启动、停止、暂停等状态。
(3)将车费和路程分别以十进制的形式显示出来。
2.设计思想以及过程
本次出租车计费器的设计主要是基于FPGA芯片,使用硬件描述语言VerilogHDL,用“自顶向下”的设计方法,编写一个出租车计费芯片,并使用quartus软件和Modelsim软件进行编程,同时使用软件进行功能和时序的仿真

2.其代码如下展示:

module driver (kilometer,money,a,stop,start,suspend,m1,m0,k1,k0,b1,b2,b3,b4);
    input stop,start,suspend;
    input a;
    output [6:0] kilometer,money;
    output [3:0] m1,m0,k1,k0;
    output [6:0] b1,b2,b3,b4;
    reg [6:0] kilometer,money;
    reg [3:0] m1,m0,k1,k0;
    reg [6:0] b1,b2,b3,b4;
    reg [6:0] money_reg,kilometer_reg;

always@(posedge a )
begin
    if(stop)
    begin
    kilometer<= 0;
    end
    else if(start)
    begin
    kilometer<= 0;
    end
    else
    begin
    if(suspend)
    kilometer<=kilometer+1;
    else
      kilometer<=kilometer;
    end
end
    always@(kilometer)
    begin
    if(kilometer>9)
    begin
    money=money+3;
    end
    else if(kilometer>3)
    begin
    money=money+2;
end
    else money=7;
    
    m1=money/10;
    m0=money%10;
    k1=kilometer/10;
    k0=kilometer%10;
end
    always@(m1)
    begin
    case(m1)
    4'b0000:begin b1<=7'b1000000;end
    4'b0001:begin b1<=7'b1111001;end
    4'b0010:begin b1<=7'b0100100;end
    4'b0011:begin b1<=7'b0110000;end
    4'b0100:begin b1<=7'b0011010;end
    4'b0101:begin b1<=7'b0010010;end
    4'b0110:begin b1<=7'b1000010;end
    4'b0111:begin b1<=7'b1111000;end
    4'b1000:begin b1<=7'b0000000;end
    4'b1001:begin b1<=7'b0010000;end
    endcase
end

    a

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值