--- Quote Start ---
Multi cycle path is only an option if it really is a true multicycle path. Eg. From register to register that use the same periodic enable.
If multi cycle is not an option, the easiest fix is modifying the code to increase the pipelining the design.
--- Quote End ---
Can I make a conclusion from the left part of the bottom screenshot (i.e.
waveform) that the only option is multicycle: lookeng at the image we can state that shifting forward
latch edge by 1 cycle should resolve the problem, isn't it ?
Concerning modifying the code, the code is very simple: it consists of instantiating of Qsys module (I put it below) ... or you mean modify Qsys ?
By the way, I've tried multicycle option with following commands in .SDC file:
set_multicycle_path -setup -to [get_nodes {nios_led2_sdram:u0|nios_led2_sdram_sdram:sdram|za_data[*]}] 2
set_multicycle_path -hold -to [get_nodes {nios_led2_sdram:u0|nios_led2_sdram_sdram:sdram|za_data[*]}] 1
Unfortunately they wasn't taken into account. Here is fragment of TimeQuest output:
Ignored set_multicycle_path at SDC1.sdc(30): Argument <to> is a collection that is not of clk, kpr, reg, port, pin, cell or partition type
set_multicycle_path -setup -to [get_nodes {nios_led2_sdram:u0|nios_led2_sdram_sdram:sdram|za_data[*]}] 2
Ignored set_multicycle_path at SDC1.sdc(31): Argument <to> is a collection that is not of clk, kpr, reg, port, pin, cell or partition type
set_multicycle_path -hold -to [get_nodes {nios_led2_sdram:u0|nios_led2_sdram_sdram:sdram|za_data[*]}] 1
Here is top module:
module nios_led2_top (input clk,
input [9:0] sw,
input [3:0] key,
output[4:0] led_H, led_L,
output [6:0] hex3, hex2 , hex1, hex0,
output [12:0] sdram_addr,
inout [15:0] sdram_dq,
output [1:0] sdram_bank,
output sdram_cas_n, sdram_ras_n, sdram_cke, sdram_cs_n, sdram_clk,
output sdram_dqmh, sdram_dqml, sdram_we_n);
wire [31:0] sseg;
assign hex3 = sseg[31:24];
assign hex2 = sseg[22:16];
assign hex1 = sseg[14:8];
assign hex0 = sseg[6:0];
nios_led2_sdram u0 (
.btn_export (key),
.clk_clk (clk),
.led_h_export (led_H),
.led_l_export (led_L),
.reset_reset_n (1'b1),
.sdram_wire_addr (sdram_addr),
.sdram_wire_ba (sdram_bank),
.sdram_wire_cas_n (sdram_cas_n),
.sdram_wire_cke (sdram_cke),
.sdram_wire_cs_n (sdram_cs_n),
.sdram_wire_dq (sdram_dq),
.sdram_wire_dqm ({sdram_dqmh, sdram_dqml}),
.sdram_wire_ras_n (sdram_ras_n),
.sdram_wire_we_n (sdram_we_n),
.sseg_export (sseg),
.switch_export (sw),
.clk_sdram_clk (sdram_clk)
);
// nios_led2_nopll u0 (
// .btn_export (key), // btn.export
// .clk_clk (clk), // clk.clk
// .led_h_export (led_H), // led_h.export
// .led_l_export (led_L), // led_l.export
// .reset_reset_n (1'b1), // reset.reset_n
// .sseg_export (sseg), // sseg.export
// .switch_export (sw) // switch.export
// );
endmodule