- Mar 08, 2013
-
-
Tomasz Wlostowski authored
Conflicts: modules/common/gc_crc_gen.vhd
-
Tomasz Wlostowski authored
-
Tomasz Wlostowski authored
-
Tomasz Wlostowski authored
-
Tomasz Wlostowski authored
Conflicts: modules/genrams/xilinx/Manifest.py
-
Tomasz Wlostowski authored
Conflicts: modules/genrams/xilinx/Manifest.py modules/genrams/xilinx/generic_dpram_sameclock.vhd modules/genrams/xilinx/spartan6/generic_sync_fifo.vhd
-
Tomasz Wlostowski authored
Conflicts: modules/common/Manifest.py modules/common/gencores_pkg.vhd
-
- Mar 05, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
The LM32 needs a read-enable. Unfortunately, Xilinx does not have one, so we emulate it.
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
By using altsyncram directly, we get the follow benefits: * clear control of read-write resolution behaviour * can specify a mif file for initialization * eliminates warnings about dual-port clock inference timings
-
Wesley W. Terpstra authored
On Altera, "" generates a null-range warning. When the dpram is used heavily, these warnings add up to many.
-
Wesley W. Terpstra authored
The RW ordering on address conflict varies by platform. Some platforms only support some options. Most of the dprams in WR are portable and don't depend on the order. This new option allows a core to specify that it does not care what the result of a RW conflict is, and thus work on more platforms. For Xilinx, "dont_care" = "read_first", the old default.
-
Wesley W. Terpstra authored
On both Altera and Xilinx, a dual port memory can achieve twice the bit-width per memory block when there is a single reader and writer. This adds a place-holder generic_simple_dpram for Xilinx so that code using the purpose-built variant for Altera continues to work on ISE.
-
Wesley W. Terpstra authored
In the past we used a generic to set the initial memory contents on altera. Unfortunately, quartus compiles big generics slowly (read: hours). Now we can load from a .mif file instead, which is much faster (seconds). Thus, this old option is no longer needed.
-
- Mar 01, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
There were many constructs like this: gen_with_empty : if(g_with_empty) generate empty_o <= empty; end generate gen_with_empty; If g_with_empty is true, then there are no warnings. If g_with_empty is false, then empty_o is unset and empty is unused. There is no improvement in performance/resource utilization to explicitly cutting these signals. The optimizer will happily discard unused logic. The alternative of adding gen_without_empty : if(not g_with_empty) generate empty_o <= 'X'; end generate gen_without_empty; will remove the empty_o unset warning, but not the empty unused warning. This patch does make it possible for designs to use empty_o without setting g_with_empty; an error. On the other hand, those designs had undefined behaviour before anyway, so they might have worked unreliably.
-
Wesley W. Terpstra authored
CFG_EBA_RESET is supposed to be the default value of the LM32's eba_reset parameter. Unfortunately, the constant leaked into the sources directly. In order to clean-up a truncation warning for pc_f, it was easiest to fix the missing parameter and then use a subarray of that value.
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
Some signals are flat-out unused => these are outright removed Some signals are used only under certain conditions => these have the definitions made also conditional
-
Wesley W. Terpstra authored
In Verilog, an "assign x = y;" will cause a warning in Quartus if x was not defined. For example, Warning (10236): Verilog HDL Implicit Net warning at lm32_allprofiles.v(45398): created implicit net for "multiply" This patch defines all such nets. Also, the CSR width is too narrow by default (CFG2 must fit).
-
- Feb 28, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 26, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 25, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
- Feb 21, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 19, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 15, 2013
-
-
Wesley W. Terpstra authored
In case the free_clk itself is not running when the lock is lost, still reset the other clock domains.
-
- Feb 14, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 13, 2013
-
-
Wesley W. Terpstra authored
According to Peter Jansweijer, Precision and Questasim had trouble synthesizing the crossbar HDL. After tracking the problem down via email, it appears that these tools cannot handle nested functions correctly; they crash or fail when trying to access the parameters of the lexically enclosing function. Therefore, this patch just outright removes all nested functions.
-
- Feb 11, 2013
-
-
Wesley W. Terpstra authored
-
- Feb 05, 2013
-
-
Wesley W. Terpstra authored
Unfortunately, Arria5 cannot do read-old-data for the same port. This formulation describes a dual-ported RAM with: write-first/read-new-data for RW conflict on same port read-first /read-old-data for RW conflict between ports ... which is exactly what Arria5 supports (and Arria2 can do too). Users of the generic_dpram should simply avoid simultaneous RW on the same port, as the result is undefined (Altera != Xilinx).
-
Wesley W. Terpstra authored
The old version didn't do WE properly and was rather strangely coded.
-