OpenCores
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.