FPGA, CPLD, and ASIC solutions from Altera
  • Download Center
  • Literature
Sign in/register
myAltera Account
Welcome
  •   myAltera
  •   Logout
  • Products
    • Devices
    • Design Software
    • Intellectual Property
    • Development Kits/Cables
    • Design & Support Services
    • Literature
  • End Markets
    • Automotive
    • Broadcast
    • Computer & Storage
    • Consumer
    • Industrial
    • Medical
    • Military
    • Test & Measurement
    • Wireless
    • Wireline
  • Technology
    • DSP
    • External Memory
    • Embedded Processing
    • Transceivers
    • Parallel I/O
    • Signal Integrity
    • System Integration
  • Training
    • Training Courses
    • University Program
    • Webcasts & Videos
    • Demonstrations
    • Events Calendar
  • Support
    • Design & Support Resources
    • Knowledge Database
    • Devices
    • Design Software
    • Intellectual Property
    • Development Kits/Cables
    • Design Examples
    • Downloads
    • User Communities/Forums
    • mySupport
  • About Altera
    • About Us
    • Environmental
    • Customer Successes
    • Partners
    • Newsroom
    • Investor Relations
    • Jobs
    • Contact Us
  • Buy Online
    • Devices
    • Design Software
    • Development & Education Kits
    • Cables & Programming Hardware
    • Intellectual Property
  • Entire Site
  • Part Number
  • Knowledge Database
  • Support & Technical Docs
  • Forums & Wiki
Username:  
Password:  
 
Forgot my username or password
Don't have myAltera account? Register Now.
Enter your email address:

AHDL: Parameterized Counter (lpm_counter)

Home > Support > Design Examples > AHDL > AHDL: Parameterized Counter (lpm_counter)

This example implements a parameterized counter that decodes two values. You can change the width (LPM_WIDTH), direction (LPM_DIRECTION), and modulus (LPM_MODULUS) parameters as needed for your design. The eq 11 port is used to decode when the counter reaches 11. AHDL operators are used to decode when the counter reaches 50 because only 16 eq ports are available in the lpm_counter function. After the counter reaches 99, it will return to zero. This example uses an Include Statement (shown in blue text) to import the contents of the Include File containing the Function Prototype for of the lpm_counter function. An Instance Declaration (shown in red text) implements an instance of the function.

For more information on using this example in your project, go to:
  • How to Use AHDL Examples
  • MAX+PLUS II Help

upcnt99.tdf

INCLUDE "lpm_counter.inc";

SUBDESIGN upcnt99
(
    clkena, cntena, clr, load, clk, data[7..0]
        : INPUT;
    eleven, fifty
        : OUTPUT;
)

VARIABLE
-- Declare my_count as an 8-bit up counter with a
-- modulus of 100 (i.e., count to 99)
      my_count : lpm_counter WITH (LPM_WIDTH = 8, 
               LPM_DIRECTION = "UP", 
               LPM_MODULUS = 100);

BEGIN
-- Connect the data, aclr, clock, clock enable, synchronous load,
-- and count enable ports. You must connect all ports that are used
-- to pins:

   my_count.data[] = data[];
   my_count.aclr = clr;
   my_count.clock = clk;
   my_count.clk_en = clkena;
   my_count.cnt_en = cntena;
   my_count.sload = load;

-- To indicate a 1 at the output (or decode) when the counter
-- reaches state 11, use the following:
   eleven = my_count.eq11;
   
-- When the counter reaches 12, the output goes back to 0
-- Decode fifty.
   IF (my_count.q[] == 50) THEN
      fifty = VCC;
   END IF;
END;

Design Examples Disclaimer

These design examples may only be used within Altera Corporation devices and remain the property of Altera. They are being provided on an “as-is” basis and as an accommodation; therefore, all warranties, representations, or guarantees of any kind (whether express, implied, or statutory) including, without limitation, warranties of merchantability, non-infringement, or fitness for a particular purpose, are specifically disclaimed. Altera expressly does not recommend, suggest, or require that these examples be used in combination with any other product not provided by Altera.

Rate This Page


  • Products
    • MAX/MAX II
    • Stratix/Stratix GX
    • Nios II
  • Functionality
    • Arithmetic
    • External Memory Interfaces
    • On-Chip Memory
    • Bus & I/O Functions
    • Logic
    • Interfaces & Peripherals
    • DSP
    • Communications
    • PLL & Clocking
  • Design Entry
    • Quartus II
    • Tcl
    • VHDL
    • Verilog HDL
    • C Code
    • DSP Builder
    • TimeQuest
    • On-Chip Debugging
      • SignalTap II
  • Simulation Tools
    • Mentor Graphics ModelSim
    • Cadence NCsim
    • Synopsys VCS
  • Legacy Examples
    • Graphic Editor
    • AHDL
    Please give us feedback
    Products | End Markets | Technology | Training | Support | About Altera | Buy Online
    Jobs | Investor Relations | Contact Us | Site Map | Privacy | Legal Notice
    Copyright © 1995-2010 Altera Corporation. All Rights Reserved.
    Altera Forum
    Altera
    Forum
    Twitter
    Twitter
    RSS
    RSS
    Facebook
    Facebook
    Flickr
    Flickr
    YouTube
    YouTube
    Email Updates
    Email
    Updates