Verilog + HDLBit-Pratice
https://hdlbits.01xz.net/wiki/Main_Page
FPGA
https://medium.com/@pixelridge/the-art-of-thought-deploying-neural-networks-onto-fpgas-8e91a75ca366
"One of the primary challenges in deploying multi-layer neural networks onto FPGAs is resource allocation. FPGAs have a finite number of logic gates, and each neuron in our network requires a portion of these resources. It’s akin to assigning seats to an ever-growing audience; there’s only so much space in the concert hall. Engineers must therefore design their networks to be as resource-efficient as possible, which often involves pruning redundant connections and neurons, much like an orchestra might omit unnecessary instruments to achieve a more focused sound."
https://asmbits.01xz.net/wiki/Main_Page
https://www.01xz.net/wiki/Main_Page
Contains a simple module that assigns a constant value of 1 to the output.
Defines a module with an output but no logic.
Defines a module that performs a logical AND operation on two inputs.
Defines a module that inverts the input signal.
Defines a module that performs a logical NOR operation on two inputs.
Defines a module that directly connects the input to the output.
Defines a module that performs a logical XNOR operation on two inputs.
Defines a module that instantiates another module named mod_a
.
Defines a module that performs a 100-bit addition with carry.
Defines a module that performs a 100-digit BCD addition.
Defines a module that finds the minimum of four 8-bit inputs using conditional operators.
Defines a module that counts the number of set bits in a 255-bit input.
Defines a module that performs reduction operations (AND, OR, XOR) on a 100-bit input.
Defines a module that reverses a 100-bit input vector.
Defines a module that uses both continuous assignment and an always block to perform a logical AND operation.
Defines a module that uses continuous assignment, combinational always block, and sequential always block to perform a logical XOR operation.
Defines a module that uses a case statement to select one of six 4-bit inputs based on a 3-bit selector.
Defines a module that uses a case statement to determine the position of the first set bit in a 4-bit input.
Defines a module that uses a casez statement to determine the position of the first set bit in an 8-bit input.
Defines a module that uses an if statement to select between two inputs based on two selectors.
This repository contains a collection of Verilog code examples and notes related to digital design and hardware description languages (HDL). The examples cover various aspects of Verilog, including basic gates, modules, procedures, and more advanced features. The repository is organized into different sections to help users get started with Verilog and explore its capabilities.
The "Getting Started" section provides simple Verilog examples to help beginners understand the basics of the language. It includes modules that perform basic operations such as assigning constant values and defining simple logic gates.
The "Verilog Language" section covers various aspects of Verilog, including basic gates, module hierarchy, and more advanced features. It provides examples of how to define and use different types of modules, perform arithmetic operations, and implement conditional logic.
The "Circuits" section includes examples of combinational and sequential logic circuits implemented in Verilog. It covers topics such as arithmetic circuits, basic gates, Karnaugh maps, multiplexers, counters, finite state machines, and shift registers. Each example demonstrates the functionality of a specific type of circuit and provides a brief description of its purpose.
This repository includes a GitHub Actions workflow to ensure that all Verilog modules are synthesizable. The workflow is defined in the .github/workflows/synthesis.yml
file.
To view the synthesis results, navigate to the "Actions" tab in your GitHub repository. You will see a list of workflow runs. Click on a specific run to view the details, including the synthesis results and any errors or warnings that were encountered.