- May 03, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
Use the generics for memory insted of infererence. Also, remove read-during-write bypass by tweaking index comparisons.
-
Wesley W. Terpstra authored
We cannot access variables outside the process, which we will need to be able to do in the next patch.
-
Wesley W. Terpstra authored
The optimizer should be able to remove all the control registers as they are unchanging, so nothing is lost.
-
- Apr 26, 2013
-
-
Wesley W. Terpstra authored
On slow Wishbone slave devices (eg. flash), the next request might be decoded by the PHY before first has exited the read_first state. In this case, the bar could change causing the mux to prematurely lower the stall line.
-
- Apr 25, 2013
-
-
Wesley W. Terpstra authored
-
- Apr 23, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
- Apr 15, 2013
-
-
Wesley W. Terpstra authored
-
Wesley W. Terpstra authored
-
- Apr 12, 2013
-
-
Wesley W. Terpstra authored
-
- Apr 05, 2013
-
-
Wesley W. Terpstra authored
-
- 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.
-