SCAN_GEN.VHD
上传用户:dgjihui88
上传日期:2013-07-23
资源大小:43k
文件大小:1k
源码类别:

VHDL/FPGA/Verilog

开发平台:

MultiPlatform

  1. -scan_gen.vhd keyboard scan_clock generator
  2. library ieee ;
  3. use ieee.std_logic_1164.all;
  4. use ieee.std_logic_unsigned.all;
  5. entity scan_gen is
  6. generic (osc_f : integer := 3686 ; osc_bit : integer := 12);
  7. --generic (osc_f : integer := 100 ; osc_bit : integer := 7); for testing
  8. port(
  9.   clk : in std_logic;--clock
  10.   scan_f : out std_logic);--1khz
  11. end scan_gen;
  12. architecture behavior of scan_gen is 
  13. begin 
  14.   scan_freq:process(clk)
  15.     variable qscan : std_logic_vector(osc_bit-1 downto 0);
  16.   begin
  17.     if(clk'event and clk='1')then
  18.       if (qscan>=osc_f-1) then
  19.         for i in osc_bit-1 downto 0 loop
  20.           qscan(i):='0';--reset to zero
  21.         end loop;
  22.       else
  23.         qscan:=qscan+1;
  24.       end if;
  25.     end if;
  26.     if (qscan>=osc_f-1) then
  27.       scan_f<='1';--count to osc_f then generate pulse
  28.     else
  29.       scan_f<='0';--remain zero
  30.     end if;
  31.   end process scan_freq;
  32. end behavior;