⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example_16bit_load.vhd

📁 VHDL examples for counter design, use QuickLogic eclips
💻 VHD
📖 第 1 页 / 共 2 页
字号:
	constant 		VCC : STD_LOGIC := '1';
	constant 		GND : STD_LOGIC := '0';
   signal count_DUMMY : STD_LOGIC_VECTOR  (7 downto 0);
   signal enable_2_DUMMY : STD_LOGIC;
   signal fo_enable_DUMMY : STD_LOGIC;

   component COUNTER_4BIT_LOAD
      Port (   clear : In    STD_LOGIC;
                 clk : In    STD_LOGIC;
             data_in : In    STD_LOGIC_VECTOR  (3 downto 0);
              enable : In    STD_LOGIC;
                load : In    STD_LOGIC;
                Qa_c : Out   STD_LOGIC;
                Qb_c : Out   STD_LOGIC;
                Qc_c : Out   STD_LOGIC;
                Qd_c : Out   STD_LOGIC );
   end component;

   component SUPER_LOGIC
      Port (      A1 : In    STD_LOGIC;
                  A2 : In    STD_LOGIC;
                  A3 : In    STD_LOGIC;
                  A4 : In    STD_LOGIC;
                  A5 : In    STD_LOGIC;
                  A6 : In    STD_LOGIC;
                  B1 : In    STD_LOGIC;
                  B2 : In    STD_LOGIC;
                  C1 : In    STD_LOGIC;
                  C2 : In    STD_LOGIC;
                  D1 : In    STD_LOGIC;
                  D2 : In    STD_LOGIC;
                  E1 : In    STD_LOGIC;
                  E2 : In    STD_LOGIC;
                  F1 : In    STD_LOGIC;
                  F2 : In    STD_LOGIC;
                  F3 : In    STD_LOGIC;
                  F4 : In    STD_LOGIC;
                  F5 : In    STD_LOGIC;
                  F6 : In    STD_LOGIC;
                  MP : In    STD_LOGIC;
                  MS : In    STD_LOGIC;
                  NP : In    STD_LOGIC;
                \NS\ : In    STD_LOGIC;
                  OP : In    STD_LOGIC;
                  OS : In    STD_LOGIC;
                  PP : In    STD_LOGIC;
                  PS : In    STD_LOGIC;
                  QC : In    STD_LOGIC;
                  QR : In    STD_LOGIC;
                  QS : In    STD_LOGIC;
                  AZ : Out   STD_LOGIC;
                  FZ : Out   STD_LOGIC;
                  NZ : Out   STD_LOGIC;
                  OZ : Out   STD_LOGIC;
                 Q2Z : Out   STD_LOGIC;
                  QZ : Out   STD_LOGIC );
   end component;

begin


   count(7 downto 0) <= count_DUMMY(7 downto 0);
   enable_2 <= enable_2_DUMMY;
   fo_enable <= fo_enable_DUMMY;
   I24 : COUNTER_4BIT_LOAD
      Port Map ( clear=>clear, clk=>clk,
                 data_in(3 downto 0)=>data_in(7 downto 4),
                 enable=>enable_1, load=>load_buf1, Qa_c=>count_DUMMY(7),
                 Qb_c=>count_DUMMY(6), Qc_c=>count_DUMMY(5),
                 Qd_c=>count_DUMMY(4) );
   I25 : COUNTER_4BIT_LOAD
      Port Map ( clear=>clear, clk=>clk,
                 data_in(3 downto 0)=>data_in(3 downto 0),
                 enable=>enable_buf, load=>load_buf2,
                 Qa_c=>count_DUMMY(3), Qb_c=>count_DUMMY(2),
                 Qc_c=>count_DUMMY(1), Qd_c=>count_DUMMY(0) );
   I23 : SUPER_LOGIC
      Port Map ( A1=>load, A2=>gnd, A3=>vcc, A4=>gnd, A5=>vcc, A6=>gnd,
                 B1=>vcc, B2=>gnd, C1=>gnd, C2=>gnd, D1=>gnd, D2=>gnd,
                 E1=>gnd, E2=>gnd, F1=>load, F2=>gnd, F3=>vcc, F4=>gnd,
                 F5=>vcc, F6=>gnd, MP=>gnd, MS=>vcc, NP=>gnd, \NS\=>gnd,
                 OP=>vcc, OS=>gnd, PP=>gnd, PS=>gnd, QC=>clk, QR=>clear,
                 QS=>gnd, AZ=>load_buf1, FZ=>load_buf2, NZ=>open,
                 OZ=>open, Q2Z=>open, QZ=>open );
   I14 : SUPER_LOGIC
      Port Map ( A1=>count_DUMMY(3), A2=>gnd, A3=>count_DUMMY(2),
                 A4=>gnd, A5=>count_DUMMY(1), A6=>gnd, B1=>gnd, B2=>gnd,
                 C1=>gnd, C2=>gnd, D1=>count_DUMMY(0), D2=>gnd, E1=>vcc,
                 E2=>count_DUMMY(0), F1=>fo_enable_DUMMY, F2=>gnd,
                 F3=>enable_buf, F4=>gnd, F5=>vcc, F6=>gnd, MP=>gnd,
                 MS=>gnd, NP=>gnd, \NS\=>enable_buf, OP=>vcc, OS=>gnd,
                 PP=>gnd, PS=>gnd, QC=>clk, QR=>clear, QS=>gnd, AZ=>open,
                 FZ=>enable_1, NZ=>open, OZ=>open, Q2Z=>open,
                 QZ=>fo_enable_DUMMY );
   I19 : SUPER_LOGIC
      Port Map ( A1=>count_DUMMY(7), A2=>gnd, A3=>count_DUMMY(6),
                 A4=>gnd, A5=>count_DUMMY(5), A6=>gnd, B1=>gnd, B2=>gnd,
                 C1=>gnd, C2=>gnd, D1=>count_DUMMY(4), D2=>gnd, E1=>gnd,
                 E2=>gnd, F1=>enable, F2=>gnd, F3=>vcc, F4=>gnd, F5=>vcc,
                 F6=>gnd, MP=>gnd, MS=>gnd, NP=>gnd, \NS\=>gnd, OP=>vcc,
                 OS=>gnd, PP=>gnd, PS=>gnd, QC=>clk, QR=>clear, QS=>gnd,
                 AZ=>open, FZ=>enable_buf, NZ=>open, OZ=>open, Q2Z=>open,
                 QZ=>enable_2_DUMMY );

end SCHEMATIC;

library IEEE;
use IEEE.std_logic_1164.all;
entity COUNTER_16BIT_LOAD is
      Port (   clear : In    STD_LOGIC;
                 clk : In    STD_LOGIC;
             data_in : In    STD_LOGIC_VECTOR (15 downto 0);
              enable : In    STD_LOGIC;
                load : In    STD_LOGIC;
               count : Out   STD_LOGIC_VECTOR (15 downto 0) );
end COUNTER_16BIT_LOAD;


architecture SCHEMATIC of COUNTER_16BIT_LOAD is

	attribute syn_macro : integer;
	attribute syn_macro of SCHEMATIC : architecture is 1;
   signal enable_1 : STD_LOGIC;
   signal enable_2 : STD_LOGIC;
   signal count_DUMMY : STD_LOGIC_VECTOR  (15 downto 0);

   component COUNTER_8BIT_II_LOAD
      Port (   clear : In    STD_LOGIC;
                 clk : In    STD_LOGIC;
             data_in : In    STD_LOGIC_VECTOR  (7 downto 0);
              enable : In    STD_LOGIC;
             enable_1 : In    STD_LOGIC;
             enable_2 : In    STD_LOGIC;
                load : In    STD_LOGIC;
               count : Out   STD_LOGIC_VECTOR  (7 downto 0);
             enable_3 : Out   STD_LOGIC;
             enable_4 : Out   STD_LOGIC );
   end component;

   component COUNTER_8BIT_I_LOAD
      Port (   clear : In    STD_LOGIC;
                 clk : In    STD_LOGIC;
             data_in : In    STD_LOGIC_VECTOR  (7 downto 0);
              enable : In    STD_LOGIC;
                load : In    STD_LOGIC;
               count : Out   STD_LOGIC_VECTOR  (7 downto 0);
             enable_2 : Out   STD_LOGIC;
             fo_enable : Out   STD_LOGIC );
   end component;

begin


   count(15 downto 0) <= count_DUMMY(15 downto 0);
   I10 : COUNTER_8BIT_II_LOAD
      Port Map ( clear=>clear, clk=>clk,
                 data_in(7 downto 0)=>data_in(15 downto 8),
                 enable=>enable, enable_1=>enable_1, enable_2=>enable_2,
                 load=>load, count(7 downto 0)=>count_DUMMY(15 downto 8),
                 enable_3=>open, enable_4=>open );
   I11 : COUNTER_8BIT_I_LOAD
      Port Map ( clear=>clear, clk=>clk,
                 data_in(7 downto 0)=>data_in(7 downto 0),
                 enable=>enable, load=>load,
                 count(7 downto 0)=>count_DUMMY(7 downto 0),
                 enable_2=>enable_2, fo_enable=>enable_1 );

end SCHEMATIC;

library IEEE;
use IEEE.std_logic_1164.all;
entity example_16bit_load is
      Port ( clear_in : In    STD_LOGIC;
              clk_in : In    STD_LOGIC;
                data : In    STD_LOGIC_VECTOR (15 downto 0);
             enable_in : In    STD_LOGIC;
             load_in : In    STD_LOGIC;
             count_out : Out   STD_LOGIC_VECTOR (15 downto 0) );
end example_16bit_load;


architecture SCHEMATIC of example_16bit_load is

	attribute syn_macro : integer;
	attribute syn_macro of SCHEMATIC : architecture is 1;
   signal  data_in : STD_LOGIC_VECTOR (15 downto 0);
   signal    count : STD_LOGIC_VECTOR (15 downto 0);
   signal count_reg : STD_LOGIC_VECTOR (15 downto 0);
   signal data_reg : STD_LOGIC_VECTOR (15 downto 0);
   signal load_reg : STD_LOGIC;
   signal enable_reg : STD_LOGIC;
   signal    clear : STD_LOGIC;
   signal     load : STD_LOGIC;
   signal   enable : STD_LOGIC;
   signal      clk : STD_LOGIC;
   signal count_out_DUMMY : STD_LOGIC_VECTOR  (15 downto 0);

   component COUNTER_16BIT_LOAD
      Port (   clear : In    STD_LOGIC;
                 clk : In    STD_LOGIC;
             data_in : In    STD_LOGIC_VECTOR  (15 downto 0);
              enable : In    STD_LOGIC;
                load : In    STD_LOGIC;
               count : Out   STD_LOGIC_VECTOR  (15 downto 0) );
   end component;

   component RG16_25UM
      Port (     CLK : In    STD_LOGIC;
                   D : In    STD_LOGIC_VECTOR  (15 downto 0);
                   Q : Out   STD_LOGIC_VECTOR  (15 downto 0) );
   end component;

   component DFF_2
      Port (     CLK : In    STD_LOGIC;
                  D1 : In    STD_LOGIC;
                  D2 : In    STD_LOGIC;
                  Q1 : Out   STD_LOGIC;
                  Q2 : Out   STD_LOGIC );
   end component;

   component OPAD16_25UM
      Port (       A : In    STD_LOGIC_VECTOR  (15 downto 0);
                   P : Out   STD_LOGIC_VECTOR  (15 downto 0) );
   end component;

   component IPAD16_25UM
      Port (       P : In    STD_LOGIC_VECTOR  (15 downto 0);
                   Q : Out   STD_LOGIC_VECTOR  (15 downto 0) );
   end component;

   component INPAD_25UM
      Port (       P : In    STD_LOGIC;
                   Q : Out   STD_LOGIC );
   end component;

   component CKPAD_25UM
      Port (       P : In    STD_LOGIC;
                   Q : Out   STD_LOGIC );
   end component;

begin


   count_out(15 downto 0) <= count_out_DUMMY(15 downto 0);
   I12 : COUNTER_16BIT_LOAD
      Port Map ( clear=>clear, clk=>clk,
                 data_in(15 downto 0)=>data_reg(15 downto 0),
                 enable=>enable_reg, load=>load,
                 count(15 downto 0)=>count(15 downto 0) );
   I1 : RG16_25UM
      Port Map ( CLK=>clk, D(15 downto 0)=>data_in(15 downto 0),
                 Q(15 downto 0)=>data_reg(15 downto 0) );
   I2 : RG16_25UM
      Port Map ( CLK=>clk, D(15 downto 0)=>count(15 downto 0),
                 Q(15 downto 0)=>count_reg(15 downto 0) );
   I3 : DFF_2
      Port Map ( CLK=>clk, D1=>enable, D2=>load, Q1=>enable_reg,
                 Q2=>load_reg );
   I4 : OPAD16_25UM
      Port Map ( A(15 downto 0)=>count_reg(15 downto 0),
                 P(15 downto 0)=>count_out_DUMMY(15 downto 0) );
   I5 : IPAD16_25UM
      Port Map ( P(15 downto 0)=>data(15 downto 0),
                 Q(15 downto 0)=>data_in(15 downto 0) );
   I6 : INPAD_25UM
      Port Map ( P=>load_in, Q=>load );
   I7 : INPAD_25UM
      Port Map ( P=>enable_in, Q=>enable );
   I8 : CKPAD_25UM
      Port Map ( P=>clear_in, Q=>clear );
   I9 : CKPAD_25UM
      Port Map ( P=>clk_in, Q=>clk );

end SCHEMATIC;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -