EX1_BYPASS : boolean := true;
HAS_FPU : boolean := true;
HAS_BTC : boolean := true;
- HAS_SHORT_MULT : boolean := false;
ALT_RESET_ADDRESS : std_ulogic_vector(63 downto 0) := (others => '0');
LOG_LENGTH : natural := 512;
ICACHE_NUM_LINES : natural := 64;
SIM => SIM,
EX1_BYPASS => EX1_BYPASS,
HAS_FPU => HAS_FPU,
- HAS_SHORT_MULT => HAS_SHORT_MULT,
LOG_LENGTH => LOG_LENGTH
)
port map (
SIM : boolean := false;
EX1_BYPASS : boolean := true;
HAS_FPU : boolean := true;
- HAS_SHORT_MULT : boolean := false;
-- Non-zero to enable log data collection
LOG_LENGTH : natural := 0
);
p_out => pmu_to_x
);
- short_mult_0: if HAS_SHORT_MULT generate
- begin
- short_mult: entity work.short_multiply
- port map (
- clk => clk,
- a_in => a_in(15 downto 0),
- b_in => b_in(15 downto 0),
- m_out => mshort_p
- );
- end generate;
-
dbg_ctrl_out <= ctrl;
log_rd_addr <= ex2.log_addr_spr;
v.se.mult_32s := '1';
v.res2_sel := "00";
slow_op := '1';
- elsif HAS_SHORT_MULT and e_in.reg_valid3 = '0' and
- fits_in_n_bits(a_in, 16) and fits_in_n_bits(b_in, 16) then
- -- Operands fit into 16 bits, so use short multiplier
- if e_in.oe = '1' then
- -- Note 16x16 multiply can't overflow, even for mullwo
- set_ov(v.e, '0', '0');
- end if;
else
-- Use standard multiplier
v.start_mul := '1';
CLK_FREQUENCY : positive := 100000000;
HAS_FPU : boolean := true;
HAS_BTC : boolean := true;
- HAS_SHORT_MULT : boolean := false;
USE_LITEDRAM : boolean := false;
NO_BRAM : boolean := false;
DISABLE_FLATTEN_CORE : boolean := false;
CLK_FREQ => CLK_FREQUENCY,
HAS_FPU => HAS_FPU,
HAS_BTC => HAS_BTC,
- HAS_SHORT_MULT => HAS_SHORT_MULT,
HAS_DRAM => USE_LITEDRAM,
DRAM_SIZE => 256 * 1024 * 1024,
DRAM_INIT_SIZE => PAYLOAD_SIZE,
CLK_FREQUENCY : positive := 100000000;
HAS_FPU : boolean := true;
HAS_BTC : boolean := false;
- HAS_SHORT_MULT: boolean := false;
ICACHE_NUM_LINES : natural := 64;
LOG_LENGTH : natural := 512;
DISABLE_FLATTEN_CORE : boolean := false;
CLK_FREQ => CLK_FREQUENCY,
HAS_FPU => HAS_FPU,
HAS_BTC => HAS_BTC,
- HAS_SHORT_MULT => HAS_SHORT_MULT,
ICACHE_NUM_LINES => ICACHE_NUM_LINES,
LOG_LENGTH => LOG_LENGTH,
DISABLE_FLATTEN_CORE => DISABLE_FLATTEN_CORE,
CLK_FREQUENCY : positive := 100000000;
HAS_FPU : boolean := true;
HAS_BTC : boolean := true;
- HAS_SHORT_MULT: boolean := false;
USE_LITEDRAM : boolean := false;
NO_BRAM : boolean := false;
DISABLE_FLATTEN_CORE : boolean := false;
CLK_FREQ => CLK_FREQUENCY,
HAS_FPU => HAS_FPU,
HAS_BTC => HAS_BTC,
- HAS_SHORT_MULT=> HAS_SHORT_MULT,
HAS_DRAM => USE_LITEDRAM,
DRAM_SIZE => 512 * 1024 * 1024,
DRAM_INIT_SIZE => PAYLOAD_SIZE,
HAS_UART1 => HAS_UART1,
HAS_SD_CARD => USE_LITESDCARD,
ICACHE_NUM_LINES => ICACHE_NUM_LINES,
- HAS_SHORT_MULT => true,
NGPIO => NGPIO
)
port map (
CLK_FREQUENCY : positive := 100000000;
HAS_FPU : boolean := true;
HAS_BTC : boolean := true;
- HAS_SHORT_MULT : boolean := false;
USE_LITEDRAM : boolean := false;
NO_BRAM : boolean := false;
DISABLE_FLATTEN_CORE : boolean := false;
CLK_FREQ => CLK_FREQUENCY,
HAS_FPU => HAS_FPU,
HAS_BTC => HAS_BTC,
- HAS_SHORT_MULT => HAS_SHORT_MULT,
HAS_DRAM => USE_LITEDRAM,
DRAM_SIZE => 256 * 1024 * 1024,
DRAM_INIT_SIZE => PAYLOAD_SIZE,
- uart_is_16550
- has_fpu
- has_btc
- - has_short_mult
tools:
vivado: {part : xc7a100tcsg324-1}
toplevel : toplevel
- uart_is_16550
- has_fpu
- has_btc
- - has_short_mult
generate: [litedram_nexys_video, liteeth_nexys_video, litesdcard_nexys_video]
tools:
vivado: {part : xc7a200tsbg484-1}
- has_uart1
- has_fpu=false
- has_btc=false
- - has_short_mult
- use_litesdcard
tools:
vivado: {part : xc7a35ticsg324-1L}
- has_uart1
- has_fpu=false
- has_btc=false
- - has_short_mult
generate: [litedram_arty, liteeth_arty, litesdcard_arty]
tools:
vivado: {part : xc7a35ticsg324-1L}
- has_uart1
- has_fpu
- has_btc
- - has_short_mult
- use_litesdcard
tools:
vivado: {part : xc7a100ticsg324-1L}
- has_uart1
- has_fpu
- has_btc
- - has_short_mult
generate: [litedram_arty, liteeth_arty, litesdcard_arty]
tools:
vivado: {part : xc7a100ticsg324-1L}
- uart_is_16550
- has_fpu
- has_btc
- - has_short_mult
generate: [litesdcard_wukong-v2]
tools:
vivado: {part : xc7a100tfgg676-1}
- uart_is_16550
- has_fpu
- has_btc
- - has_short_mult
generate: [litedram_wukong-v2, liteeth_wukong-v2, litesdcard_wukong-v2]
tools:
vivado: {part : xc7a100tfgg676-1}
paramtype : generic
default : true
- has_short_mult:
- datatype : bool
- description : Include a 16 bit x 16 bit single-cycle multiplier in the core
- paramtype : generic
- default : false
-
disable_flatten_core:
datatype : bool
description : Prevent Vivado from flattening the main core components
SIM : boolean;
HAS_FPU : boolean := true;
HAS_BTC : boolean := true;
- HAS_SHORT_MULT : boolean := false;
DISABLE_FLATTEN_CORE : boolean := false;
ALT_RESET_ADDRESS : std_logic_vector(63 downto 0) := (23 downto 0 => '0', others => '1');
HAS_DRAM : boolean := false;
SIM => SIM,
HAS_FPU => HAS_FPU,
HAS_BTC => HAS_BTC,
- HAS_SHORT_MULT => HAS_SHORT_MULT,
DISABLE_FLATTEN => DISABLE_FLATTEN_CORE,
ALT_RESET_ADDRESS => ALT_RESET_ADDRESS,
LOG_LENGTH => LOG_LENGTH,