微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 课程设计做一个出租车计费器 计费模块编译通不过

课程设计做一个出租车计费器 计费模块编译通不过

时间:10-02 整理:3721RD 点击:
首先我确实是个新手,真的需要大神帮忙!这是模块的要求:

车费计数模块——:白天计费:其初值为9元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,之后每来一个脉冲(代表运行了1公里)其数值加1元,当车程超过10公里时每来一个脉冲其数值加1元。

夜间计费:其初值为11元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,之后每来一个脉冲(代表运行了1公里)其数值加2元,当车程超过10公里时每来一个脉冲其数值加3元

然后是 编译通不过的程序:

LIBRARY IEEE;

   USE IEEE.STD_LOGIC_1164.ALL;

   USE IEEE.STD_LOGIC_UNSIGNED.ALL;

   ENTITY COUNTER1 IS

    PORT(CLK_div:IN STD_LOGIC;

       CLR1:IN STD_LOGIC;

       K:IN STD_LOGIC;

       SS:IN STD_LOGIC;

         SI:IN STD_LOGIC_VECTOR(1 DOWNTO 0);

         C2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

         C3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

   END COUNTER1;

   ARCHITECTURE ONE OF COUNTER1 IS

   BEGIN

   PROCESS(CLK_div,CLR1,SI,SS)

    VARIABLE Q2: STD_LOGIC_VECTOR(3 DOWNTO 0);

    VARIABLE Q3: STD_LOGIC_VECTOR(3 DOWNTO 0);

   BEGIN

    IF SS='0' THEN

    IF CLR1='0' THENQ2:="0000";Q3:="0000";

      ELSIF CLK_div'EVENT AND CLK_div='1' THEN

      CASE SI IS

    WHEN "00" => IF K='0' THEN

            Q2:=Q2; Q3:=Q3;

      ELSE IF K='1' THEN

             IF Q2 Q2:="1001";Q3:="0000";

     WHEN "10"=> IFQ2   IFQ2 NULL;

     END CASE;

    END IF;

       ELSE

   IF CLR1='0' THENQ2:="0000";Q3:="0000";

    ELSIF CLK_div'EVENT AND CLK_div='1' THEN

    CASE SI IS

       WHEN "00" =>IF K='0' THEN

               Q2:=Q2;Q3:=Q3;

          ELSE IF K='1' THEN

            IF Q2 Q2:="0001";Q3:="0001";

       WHEN "10"=>  IF Q2 IFQ2 NULL;

      END CASE;

    END IF;

  END IF;

   C2<=Q2;

   C3<=Q3;

  END PROCESS;


  END ONE;

真的感谢啊!


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top