Skip to content
A self-contained online book containing a library of FPGA design modules and related coding/design guides.
HTML Verilog Coq Python CSS SystemVerilog Shell
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial Commit. v2h needs improvement. Still carrying things over. Oct 24, 2019
Adder_Subtractor_Binary.html Add Adder/Subtractor and Counter Nov 6, 2019
Adder_Subtractor_Binary.v Add Adder/Subtractor and Counter Nov 6, 2019
Address_Decoder_Arithmetic.html Add Address Decoders Nov 14, 2019
Address_Decoder_Arithmetic.v Add Address Decoders Nov 14, 2019
Address_Decoder_Behavioural.html Zero-out parameter Nov 15, 2019
Address_Decoder_Behavioural.v Zero-out parameter Nov 15, 2019
Address_Decoder_Static.html Add Address Decoders Nov 14, 2019
Address_Decoder_Static.v Add Address Decoders Nov 14, 2019
Address_Translator_Arithmetic.html Arithmetic Address Translator Jan 14, 2020
Address_Translator_Arithmetic.v Arithmetic Address Translator Jan 14, 2020
Address_Translator_Static.html Arithmetic Address Translator Jan 14, 2020
Address_Translator_Static.v Arithmetic Address Translator Jan 14, 2020
Annuller.html Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Annuller.v Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Arithmetic_Predicates_Binary.html Add Arithmetic Predicates Nov 14, 2019
Arithmetic_Predicates_Binary.v Add Arithmetic Predicates Nov 14, 2019
Binary_to_One_Hot.html Fix input port bit widths (32 bit integer to ADDR_WIDTH) to remove Vi… Jan 8, 2020
Binary_to_One_Hot.v
Bit_Reducer.html Fix headings and regenerate all HTML. Nov 5, 2019
Bit_Reducer.v Fix headings and regenerate all HTML. Nov 5, 2019
Bit_Shifter.html Add Bit Shifter Nov 27, 2019
Bit_Shifter.v Add Bit Shifter Nov 27, 2019
Bit_Voting.html
Bit_Voting.v Add Bit Voting Nov 20, 2019
Bitmask_0_Bit_at_Rightmost_1_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_0_Bit_at_Rightmost_1_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_1_Bit_at_Rightmost_0_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_1_Bit_at_Rightmost_0_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Isolate_Rightmost_1_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Isolate_Rightmost_1_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Next_with_Constant_Popcount.html Fix explanation errors and wrong module name. Feb 2, 2020
Bitmask_Next_with_Constant_Popcount.v Fix explanation errors and wrong module name. Feb 2, 2020
Bitmask_Thermometer_from_Count.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Thermometer_from_Count.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Thermometer_to_Rightmost_0_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Thermometer_to_Rightmost_0_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Thermometer_to_Rightmost_1_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Thermometer_to_Rightmost_1_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Turn_Off_Trailing_1_Bits.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Turn_Off_Trailing_1_Bits.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Turn_On_Trailing_0_Bits.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Bitmask_Turn_On_Trailing_0_Bits.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
CONTRIBUTING.md Get the darn sub-item right... Nov 1, 2019
CarryIn_Binary.html Add Binary Carry-In Calculator Nov 14, 2019
CarryIn_Binary.v Add Binary Carry-In Calculator Nov 14, 2019
Constant.html Typo fix. Closes #1. Nov 5, 2019
Constant.v Typo fix. Closes #1. Nov 5, 2019
Counter_Binary.html Add Adder/Subtractor and Counter Nov 6, 2019
Counter_Binary.v Add Adder/Subtractor and Counter Nov 6, 2019
Demultiplexer_Binary.html Update Demultiplexer with BROADCAST parameter Nov 27, 2019
Demultiplexer_Binary.v Update Demultiplexer with BROADCAST parameter Nov 27, 2019
Hamming_Distance.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Hamming_Distance.v
LICENSE Update LICENSE and README Oct 25, 2019
Logarithm_of_Powers_of_Two.html
Logarithm_of_Powers_of_Two.v Add Logarithm of Powers of Two. Feb 2, 2020
Multiplexer_Binary_Behavioural.html Rename binary multiplexer to behavioural version. Nov 15, 2019
Multiplexer_Binary_Behavioural.v Rename binary multiplexer to behavioural version. Nov 15, 2019
Multiplexer_Binary_Structural.html typo fix Nov 15, 2019
Multiplexer_Binary_Structural.v typo fix Nov 15, 2019
Multiplexer_One_Hot.html Add one-hot multiplexer and binary to one-hot convertor Nov 15, 2019
Multiplexer_One_Hot.v Add one-hot multiplexer and binary to one-hot convertor Nov 15, 2019
Pipeline_Skid_Buffer.html
Pipeline_Skid_Buffer.v Update Skid Buffer, with "redirect" from old page. Dec 30, 2019
Population_Count.html Clear parameter value in source Nov 20, 2019
Population_Count.v Clear parameter value in source Nov 20, 2019
README.md
Register.html Fix headings and regenerate all HTML. Nov 5, 2019
Register.v Fix headings and regenerate all HTML. Nov 5, 2019
Register_Pipeline.html Add details to Pipeline Register usage Dec 30, 2019
Register_Pipeline.v Add details to Pipeline Register usage Dec 30, 2019
Simulation_Clock.html Add Simulation clock, update index, and anchor Nov 29, 2019
Simulation_Clock.v Add Simulation clock, update index, and anchor Nov 29, 2019
Synthesis_Harness_Input.html Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Synthesis_Harness_Input.v Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Synthesis_Harness_Output.html Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Synthesis_Harness_Output.v Remove "synthesis" from comments. Triggers CAD warnings. Feb 2, 2020
Turn_Off_Rightmost_1_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_Off_Rightmost_1_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_Off_Rightmost_Contiguous_1_Bits.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_Off_Rightmost_Contiguous_1_Bits.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_Off_Trailing_1_Bits.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_Off_Trailing_1_Bits.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_On_Rightmost_0_Bit.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_On_Rightmost_0_Bit.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_On_Trailing_0_Bits.html Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Turn_On_Trailing_0_Bits.v Add all the Extended Boolean operations, plus Hamming Distance Jan 18, 2020
Word_Reducer.html Fix logic error in explanation. Nov 20, 2019
Word_Reducer.v Fix logic error in explanation. Nov 20, 2019
Word_Reverser.html Add Word Reverser Nov 14, 2019
Word_Reverser.v Add Word Reverser Nov 14, 2019
books.html Update index Nov 14, 2019
clog2_function.html Add clog2 function Nov 20, 2019
clog2_function.vh Add clog2 function Nov 20, 2019
debian.html Add USB Blaster on Debian page Oct 27, 2019
favicon.ico Initial Commit. v2h needs improvement. Still carrying things over. Oct 24, 2019
fsm.html update fsm Oct 25, 2019
index.html Add Logarithm of Powers of Two. Feb 2, 2020
legal.html Update footers to point to http://fpgacpu.ca/ Nov 5, 2019
links.html Update links Oct 25, 2019
open.html
outline.html Update footers to point to http://fpgacpu.ca/ Nov 5, 2019
skid_buffer.html Update Skid Buffer, with "redirect" from old page. Dec 30, 2019
style.css Tweak HTML/CSS. Describe tools used. Oct 25, 2019
system.html Fix anchor Nov 29, 2019
template.html Tweak HTML/CSS. Describe tools used. Oct 25, 2019
tools.html Add Quartus to list of tools Oct 25, 2019
v2h.py Don't print skipped v2h conversions. Easier to see. Feb 2, 2020
verilinter Add Verilator linter Oct 25, 2019
verilog.html Add Simulation clock, update index, and anchor Nov 29, 2019

README.md

FPGA Design Elements

Copyright (c) 2019 Charles Eric LaForest, PhD.

A self-contained online book containing a library of FPGA design elements and related coding/design guides.

You can read it online at http://fpgacpu.ca/fpga/

To obtain your own local copy:

git clone https://github.com/laforest/FPGADesignElements.git

then access index.html from your favourite browser.

All files are in one directory, so you can use it as a library in your CAD tools by simply importing all Verilog files.

See LICENSE for the details, but overall, you are free to use this book as you please.

Contributions are welcome. Please email eric@fpgacpu.ca or Twitter @elaforest or join the Discord server.

You can’t perform that action at this time.