mirror of https://github.com/YosysHQ/yosys.git
intel_alm: enable M10K initialisation
This commit is contained in:
parent
ec8d7b1c68
commit
cac1bc6fbe
|
@ -1,5 +1,5 @@
|
|||
bram $__MISTRAL_M10K
|
||||
init 0 # TODO: Re-enable when I figure out how BRAM init works
|
||||
init 1
|
||||
abits 13 @D8192x1
|
||||
dbits 1 @D8192x1
|
||||
abits 12 @D4096x2
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
module \$__MISTRAL_M10K (CLK1, A1ADDR, A1DATA, A1EN, B1ADDR, B1DATA, B1EN);
|
||||
|
||||
parameter INIT = 0;
|
||||
|
||||
parameter CFG_ABITS = 10;
|
||||
parameter CFG_DBITS = 10;
|
||||
|
||||
|
@ -11,6 +13,6 @@ input [CFG_DBITS-1:0] A1DATA;
|
|||
input A1EN, B1EN;
|
||||
output reg [CFG_DBITS-1:0] B1DATA;
|
||||
|
||||
MISTRAL_M10K #(.CFG_ABITS(CFG_ABITS), .CFG_DBITS(CFG_DBITS)) _TECHMAP_REPLACE_ (.CLK1(CLK1), .A1ADDR(A1ADDR), .A1DATA(A1DATA), .A1EN(!A1EN), .B1ADDR(B1ADDR), .B1DATA(B1DATA), .B1EN(B1EN));
|
||||
MISTRAL_M10K #(.INIT(INIT), .CFG_ABITS(CFG_ABITS), .CFG_DBITS(CFG_DBITS)) _TECHMAP_REPLACE_ (.CLK1(CLK1), .A1ADDR(A1ADDR), .A1DATA(A1DATA), .A1EN(!A1EN), .B1ADDR(B1ADDR), .B1DATA(B1DATA), .B1EN(B1EN));
|
||||
|
||||
endmodule
|
||||
endmodule
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// In addition to Logic Array Blocks (LABs) that contain ten Adaptive Logic
|
||||
// Modules (ALMs, see alm_sim.v), the Cyclone V/10GX also contain
|
||||
// Memory/Logic Array Blocks (MLABs) that can act as either ten ALMs, or utilise
|
||||
// the memory the ALM uses to store the look-up table data for general usage,
|
||||
// the memory the ALM uses to store the look-up table data for general usage,
|
||||
// producing a 32 address by 20-bit block of memory. MLABs are spread out
|
||||
// around the chip, so they can be placed near where they are needed, rather than
|
||||
// being comparatively limited in placement for a deep but narrow memory such as
|
||||
|
@ -43,7 +43,7 @@
|
|||
// Quartus will pack external flops into the MLAB, but this is an assumption
|
||||
// that needs testing.
|
||||
|
||||
// The vendor sim model outputs 'x for a very short period (a few
|
||||
// The vendor sim model outputs 'x for a very short period (a few
|
||||
// combinational delta cycles) after each write. This has been omitted from
|
||||
// the following model because it's very difficult to trigger this in practice
|
||||
// as clock cycles will be much longer than any potential blip of 'x, so the
|
||||
|
@ -110,6 +110,8 @@ endmodule
|
|||
|
||||
module MISTRAL_M10K(CLK1, A1ADDR, A1DATA, A1EN, B1ADDR, B1DATA, B1EN);
|
||||
|
||||
parameter INIT = 0;
|
||||
|
||||
parameter CFG_ABITS = 10;
|
||||
parameter CFG_DBITS = 10;
|
||||
|
||||
|
@ -119,7 +121,7 @@ input [CFG_DBITS-1:0] A1DATA;
|
|||
input A1EN, B1EN;
|
||||
output reg [CFG_DBITS-1:0] B1DATA;
|
||||
|
||||
reg [2**CFG_ABITS * CFG_DBITS - 1 : 0] mem = 0;
|
||||
reg [2**CFG_ABITS * CFG_DBITS - 1 : 0] mem = INIT;
|
||||
|
||||
`ifdef cyclonev
|
||||
specify
|
||||
|
|
Loading…
Reference in New Issue