URL
https://opencores.org/ocsvn/common/common/trunk
Subversion Repositories common
[/] [common/] [trunk/] [Readme] - Rev 48
Compare with Previous | Blame | View Log
// This directory contains files which are too small to be projects in themselves.
//
// Examples of such files might be:
// prototype copyright files
// parameterizable cell libraries
// files which implement some interesting low-level function
// files which are used as components in several projects
//
// Each file should be self-documenting so that a quick glance would serve
// to explain what it is and why it is here.
//
// As a courtesy, each file could also have a small entry here to make it
// easy to browse the directory looking for interesting stuff.
//
// "opencores_copyright.v" is an example of a copyright file one might
// include to control the use and abuse of a file stored in this web site.
//
// "synchronizer_flop.v" is a behaviorial description of a 1-bit flop.
// It should be manually instantiated in EACH AND EVERY MODULE which
// uses a flop to synchronize a signal from one clock domain to another.
// In real use, the user of this file will generate a simulation module
// which will behave like a normal flop when presented with 1, 0, X, or Z.
// This special-purpose module will NOT have setup and hold tests. It will
// NOT convert a valid value into an X due to setup timing being violated.
// This module makes it possible to simulate gate-level netlists with
// multiple clock domains without fear of making inappropriate X's.
//
// "grey_to_binary.v" is an example of code which takes a binary number
// and converts it to grey code, and vice versa.
// This module has a parameter which describes how wide the operands
// are.
// This module does not use for-loops to generate the functions. Instead,
// it manually does the translation for widths up to 16 bits.
// If the user wants fewer bits, the synthesis tool removes the extra.
//
// "plesiochronous_fifo.v" is an example of a FIFO which transfers packets
// between two clock domains.
// The clocks are REQUIRED to be close to one-another in frequency.
// The Writer is REQUIRED to skip writes every so often, to make sure that
// the FIFO doesn't overflow.
// This file instantiates the synchronizer_flop mentioned above.
//
// "hamming_ecc_64.v" is an example of how to use 8 bits of redundant data to
// correct single-bit errors and detect double-bit errors in 64 bits of data.
// There are probably better ways to reorder the terms to reduce loads, and
// to change the formulas to detect a larger percentage of likely errors.
//