counter_pload.txt
Upload User: aptongtai
Upload Date: 2010-03-28
Package Size: 42k
Code Size: 1k
Category:

SCM

Development Platform:

C/C++

  1. -- This example shows the use of the package 'std_logic_unsigned' . 
  2. -- The minus operator '-' is overloaded by this package, thereby allowing an integer to be subracted from a std_logic_vector. 
  3. -- dowload from: www.fpga.com.cn & www.pld.com.cn
  4. LIBRARY ieee;
  5. USE ieee.std_logic_1164.ALL;
  6. USE ieee.std_logic_unsigned.ALL;
  7. ENTITY pldcntr8 IS 
  8.    PORT (clk, load : IN Std_logic; 
  9.          datain : IN Std_logic_vector(7 DOWNTO 0);
  10.          q : OUT Std_logic_vector(7 DOWNTO 0);
  11.          tc : OUT Std_logic);
  12. END pldcntr8;
  13. ARCHITECTURE using_std_logic OF pldcntr8 IS
  14.    SIGNAL count : Std_logic_vector(7 DOWNTO 0);
  15. BEGIN
  16.    PROCESS
  17.    BEGIN
  18.       WAIT UNTIL rising_edge(clk);
  19.       IF load = '1' THEN
  20.           count <= datain;
  21.       ELSE
  22.           count <= count - 1;
  23.       END IF;
  24.    END PROCESS;
  25.    tc <= '1' WHEN count = "00000000" ELSE '0';
  26.    q <= count;
  27. END using_std_logic;