URL
https://opencores.org/ocsvn/pcounter/pcounter/trunk
Subversion Repositories pcounter
Compare Revisions
- This comparison shows the changes necessary to convert path
/pcounter
- from Rev 2 to Rev 1
- ↔ Reverse comparison
Rev 2 → Rev 1
/trunk/pcount_tb.vhdl
File deleted
/trunk/pdchain.vhdl
File deleted
/trunk/doc/pcounter_sch.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
trunk/doc/pcounter_sch.pdf
Property changes :
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: trunk/doc/pcounter_4bit_trace.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/doc/pcounter_4bit_trace.pdf
===================================================================
--- trunk/doc/pcounter_4bit_trace.pdf (revision 2)
+++ trunk/doc/pcounter_4bit_trace.pdf (nonexistent)
trunk/doc/pcounter_4bit_trace.pdf
Property changes :
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: trunk/doc/README
===================================================================
--- trunk/doc/README (revision 2)
+++ trunk/doc/README (nonexistent)
@@ -1,85 +0,0 @@
---
--- * pipelined synchronous pulse counter *
---
--- fast counter for slow-carry architectures
--- non-monotonic counting, value calculable by HDL/CPU
---
--- idea&code by Marek Peca 08/2012
--- Vyzkumny a zkusebni letecky ustav, a.s. http://vzlu.cz/
--- thanks to Michael Vacek for testing
---
-
-Pipelined Synchronous Pulse Counter
-===================================
-
-is a proposal of binary counter, designed to minimize logic path
-length in between flip-flops to one gate (MUX/AND) only, at the
-expense of not so straightforward binary counting. The reason for this
-design has emerged while using Actel (MicroSemi) ProASIC/IGLOO
-architecture, lacking any hardwired support for fast carry.
-
-During our work on Actel FPGAs (basically, 3-LUT & DFF only), we were
-aware of following types of faster counters:
-- LFSR counter
-- Johnson counter
-- "RLA counter" (as tailored using Actel's SmartGen core generator)
-
-Johnson due to its O(2^n) (n as number of bits) can not be used for
-longer counts; LFSR's are hard to invert (table lookup seems to be
-only known method), therefore also impractical for wider counters. RLA
-counter is still too slow and complex for wider counters and moderate
-speeds (e.g. > 24bits @ >100MHz).
-
-As a consequence, the proposed counter uses synchronous divide-by-two
-blocks, each using 1-bit pipeline and carry by single-clock
-pulse. Design is simple and fast, preliminary results from Synplify
-and Actel Designer shows 32bits @200MHz feasible.
-
-However, output bit lines are non-proportionaly delayed by discrete
-number of clock periods. Therefore, to obtain linear bit word, an
-inversion formula needs to be applied. Fortunately, the inversion is
-simple (unlike LFSR's), in C (pcount.c):
-
- for (k = 1; k < n; k++)
- if ((y & ((1<
\ No newline at end of file
Index: trunk/pdivtwo.vhdl
===================================================================
--- trunk/pdivtwo.vhdl (revision 2)
+++ trunk/pdivtwo.vhdl (nonexistent)
@@ -1,41 +0,0 @@
---
--- * pipelined synchronous pulse counter *
--- pdivtwo -- core 1-stage element (pipelined f/2 divider)
---
--- fast counter for slow-carry architectures
--- non-monotonic counting, value calculable by HDL/CPU
---
--- idea&code by Marek Peca 08/2012
--- Vyzkumny a zkusebni letecky ustav, a.s. http://vzlu.cz/
--- thanks to Michael Vacek for testing
---
-
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-entity pdivtwo is
- port (
- clock: in std_logic;
- en: in std_logic;
- q, p: out std_logic
- );
-end pdivtwo;
-
-architecture behavioral of pdivtwo is
- signal state: std_logic := '1';
- signal pipe: std_logic := '0';
- signal next_state, next_pipe: std_logic;
-begin
- next_state <= not state when en = '1' else state;
- next_pipe <= state and en;
- p <= pipe;
- q <= state;
-
- process
- begin
- wait until clock'event and clock = '1';
- state <= next_state;
- pipe <= next_pipe;
- end process;
-end behavioral;
Index: trunk/COPYING
===================================================================
--- trunk/COPYING (revision 2)
+++ trunk/COPYING (nonexistent)
@@ -1,165 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
Index: trunk/pcount.c
===================================================================
--- trunk/pcount.c (revision 2)
+++ trunk/pcount.c (nonexistent)
@@ -1,41 +0,0 @@
-#include
-#include
-#include
-#include
-
-typedef unsigned long count_t;
-
-count_t pcount_decode(unsigned n, count_t b) {
- count_t y = b;
- unsigned k;
- for (k = 1; k < n; k++)
- if ((y & ((1< 0; k--)
- if ((b & ((1< %08lx -> %08lx\n", b, y, z);
- }
- return 0;
-}
Index: trunk/Makefile
===================================================================
--- trunk/Makefile (revision 2)
+++ trunk/Makefile (nonexistent)
@@ -1,27 +0,0 @@
-UNITS=pdchain.vhdl pdivtwo.vhdl
-UNIT_TOP=pcount_tb.vhdl
-
-TOP_EXE=$(patsubst %.vhdl,%,$(UNIT_TOP))
-COPT=--ieee=synopsys -g
-ROPT=--vcd=$(TOP_EXE).vcd --stop-time=10us
-
-
-all: $(TOP_EXE) pcount
-
-testvcd: $(TOP_EXE)
- ghdl -r $(TOP_EXE) $(ROPT)
-
-testrun: $(TOP_EXE) pcount
- ghdl -r $(TOP_EXE) | ./pcount
-
-$(TOP_EXE): $(UNITS) $(UNIT_TOP)
- ghdl -i $(UNITS) $(UNIT_TOP)
- ghdl -a $(COPT) $(UNIT_TOP)
- ghdl -m $(COPT) $(TOP_EXE)
-
-pcount: pcount.c
- $(CC) -Wall -O -o $@ $<
-
-clean:
- rm -rf $(TOP_EXE) pcount
- ghdl --remove