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