c5soc: working hdl version
parent
6346017763
commit
59759a8ab3
|
@ -73,10 +73,10 @@ module axi_ad9361_alt_lvds_tx (
|
||||||
input tx_clk;
|
input tx_clk;
|
||||||
input clk;
|
input clk;
|
||||||
input [ 3:0] tx_frame;
|
input [ 3:0] tx_frame;
|
||||||
input [11:0] tx_data_0;
|
input [ 5:0] tx_data_0;
|
||||||
input [11:0] tx_data_1;
|
input [ 5:0] tx_data_1;
|
||||||
input [11:0] tx_data_2;
|
input [ 5:0] tx_data_2;
|
||||||
input [11:0] tx_data_3;
|
input [ 5:0] tx_data_3;
|
||||||
output tx_locked;
|
output tx_locked;
|
||||||
|
|
||||||
// internal registers
|
// internal registers
|
||||||
|
|
|
@ -174,10 +174,10 @@ module axi_ad9361_dev_if (
|
||||||
reg tx_data_sel = 'd0;
|
reg tx_data_sel = 'd0;
|
||||||
reg [47:0] tx_data = 'd0;
|
reg [47:0] tx_data = 'd0;
|
||||||
reg [ 3:0] tx_frame = 'd0;
|
reg [ 3:0] tx_frame = 'd0;
|
||||||
reg [11:0] tx_data_0 = 'd0;
|
reg [ 5:0] tx_data_0 = 'd0;
|
||||||
reg [11:0] tx_data_1 = 'd0;
|
reg [ 5:0] tx_data_1 = 'd0;
|
||||||
reg [11:0] tx_data_2 = 'd0;
|
reg [ 5:0] tx_data_2 = 'd0;
|
||||||
reg [11:0] tx_data_3 = 'd0;
|
reg [ 5:0] tx_data_3 = 'd0;
|
||||||
|
|
||||||
// internal signals
|
// internal signals
|
||||||
|
|
||||||
|
@ -190,56 +190,6 @@ module axi_ad9361_dev_if (
|
||||||
wire [ 5:0] rx_data_3_s;
|
wire [ 5:0] rx_data_3_s;
|
||||||
wire rx_locked_s;
|
wire rx_locked_s;
|
||||||
|
|
||||||
// signal tap
|
|
||||||
|
|
||||||
wire [255:0] acq_data_s;
|
|
||||||
wire [ 1:0] acq_trigger_s;
|
|
||||||
|
|
||||||
assign acq_data_s[ 3: 0] = rx_frame;
|
|
||||||
assign acq_data_s[ 9: 4] = rx_data_3;
|
|
||||||
assign acq_data_s[ 15: 10] = rx_data_2;
|
|
||||||
assign acq_data_s[ 21: 16] = rx_data_1;
|
|
||||||
assign acq_data_s[ 27: 22] = rx_data_0;
|
|
||||||
assign acq_data_s[ 28: 28] = rx_error_r2;
|
|
||||||
assign acq_data_s[ 29: 29] = rx_valid_r2;
|
|
||||||
assign acq_data_s[ 53: 30] = rx_data_r2;
|
|
||||||
assign acq_data_s[ 54: 54] = adc_valid;
|
|
||||||
assign acq_data_s[102: 55] = adc_data;
|
|
||||||
assign acq_data_s[103:103] = adc_status;
|
|
||||||
assign acq_data_s[104:104] = rx_locked_s;
|
|
||||||
assign acq_data_s[105:105] = dac_valid;
|
|
||||||
assign acq_data_s[153:106] = dac_data;
|
|
||||||
assign acq_data_s[154:154] = tx_data_sel;
|
|
||||||
assign acq_data_s[202:155] = tx_data;
|
|
||||||
assign acq_data_s[206:203] = tx_frame;
|
|
||||||
assign acq_data_s[218:207] = tx_data_0;
|
|
||||||
assign acq_data_s[230:219] = tx_data_1;
|
|
||||||
assign acq_data_s[242:231] = tx_data_2;
|
|
||||||
assign acq_data_s[254:243] = tx_data_3;
|
|
||||||
assign acq_data_s[255:255] = tx_locked_s;
|
|
||||||
|
|
||||||
assign acq_trigger_s[1] = tx_locked_s;
|
|
||||||
assign acq_trigger_s[0] = rx_locked_s;
|
|
||||||
|
|
||||||
sld_signaltap #(
|
|
||||||
.sld_data_bits (256),
|
|
||||||
.sld_sample_depth (128),
|
|
||||||
.sld_ram_block_type ("AUTO"),
|
|
||||||
.sld_storage_qualifier_mode ("OFF"),
|
|
||||||
.sld_trigger_bits (2),
|
|
||||||
.sld_trigger_level (1),
|
|
||||||
.sld_trigger_in_enabled (0),
|
|
||||||
.sld_enable_advanced_trigger (0),
|
|
||||||
.sld_trigger_level_pipeline (1),
|
|
||||||
.sld_node_info (1076736),
|
|
||||||
.sld_node_crc_bits (32),
|
|
||||||
.sld_node_crc_hiword (17890),
|
|
||||||
.sld_node_crc_loword (38728))
|
|
||||||
i_ila_dev_if (
|
|
||||||
.acq_clk (clk),
|
|
||||||
.acq_data_in (acq_data_s),
|
|
||||||
.acq_trigger_in (acq_trigger_s));
|
|
||||||
|
|
||||||
// defaults
|
// defaults
|
||||||
|
|
||||||
assign delay_rdata = 5'd0;
|
assign delay_rdata = 5'd0;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -73,6 +73,14 @@
|
||||||
type = "String";
|
type = "String";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
element sys_int_mem.s1
|
||||||
|
{
|
||||||
|
datum baseAddress
|
||||||
|
{
|
||||||
|
value = "0";
|
||||||
|
type = "String";
|
||||||
|
}
|
||||||
|
}
|
||||||
element sys_gpio.s1
|
element sys_gpio.s1
|
||||||
{
|
{
|
||||||
datum _lockedAddress
|
datum _lockedAddress
|
||||||
|
@ -86,11 +94,11 @@
|
||||||
type = "String";
|
type = "String";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
element sys_int_mem.s1
|
element axi_ad9361.s_axi
|
||||||
{
|
{
|
||||||
datum baseAddress
|
datum baseAddress
|
||||||
{
|
{
|
||||||
value = "0";
|
value = "131072";
|
||||||
type = "String";
|
type = "String";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,14 +110,6 @@
|
||||||
type = "String";
|
type = "String";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
element axi_ad9361.s_axi
|
|
||||||
{
|
|
||||||
datum baseAddress
|
|
||||||
{
|
|
||||||
value = "131072";
|
|
||||||
type = "String";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
element axi_dmac_adc.s_axi
|
element axi_dmac_adc.s_axi
|
||||||
{
|
{
|
||||||
datum baseAddress
|
datum baseAddress
|
||||||
|
@ -611,7 +611,7 @@
|
||||||
<parameter name="dbg_trace_clk_div" value="0" />
|
<parameter name="dbg_trace_clk_div" value="0" />
|
||||||
<parameter name="desired_l4_mp_clk_mhz" value="100.0" />
|
<parameter name="desired_l4_mp_clk_mhz" value="100.0" />
|
||||||
<parameter name="desired_l4_sp_clk_mhz" value="100.0" />
|
<parameter name="desired_l4_sp_clk_mhz" value="100.0" />
|
||||||
<parameter name="desired_cfg_clk_mhz" value="100.0" />
|
<parameter name="desired_cfg_clk_mhz" value="80.0" />
|
||||||
<parameter name="desired_sdmmc_clk_mhz" value="200.0" />
|
<parameter name="desired_sdmmc_clk_mhz" value="200.0" />
|
||||||
<parameter name="desired_nand_clk_mhz" value="12.5" />
|
<parameter name="desired_nand_clk_mhz" value="12.5" />
|
||||||
<parameter name="desired_qspi_clk_mhz" value="400.0" />
|
<parameter name="desired_qspi_clk_mhz" value="400.0" />
|
||||||
|
@ -737,7 +737,7 @@
|
||||||
<parameter name="F2H_AXI_CLOCK_FREQ" value="50000000" />
|
<parameter name="F2H_AXI_CLOCK_FREQ" value="50000000" />
|
||||||
<parameter name="H2F_AXI_CLOCK_FREQ" value="50000000" />
|
<parameter name="H2F_AXI_CLOCK_FREQ" value="50000000" />
|
||||||
<parameter name="H2F_LW_AXI_CLOCK_FREQ" value="50000000" />
|
<parameter name="H2F_LW_AXI_CLOCK_FREQ" value="50000000" />
|
||||||
<parameter name="F2H_SDRAM0_CLOCK_FREQ" value="100000000" />
|
<parameter name="F2H_SDRAM0_CLOCK_FREQ" value="80000000" />
|
||||||
<parameter name="F2H_SDRAM1_CLOCK_FREQ" value="100" />
|
<parameter name="F2H_SDRAM1_CLOCK_FREQ" value="100" />
|
||||||
<parameter name="F2H_SDRAM2_CLOCK_FREQ" value="100" />
|
<parameter name="F2H_SDRAM2_CLOCK_FREQ" value="100" />
|
||||||
<parameter name="F2H_SDRAM3_CLOCK_FREQ" value="100" />
|
<parameter name="F2H_SDRAM3_CLOCK_FREQ" value="100" />
|
||||||
|
|
|
@ -1,22 +1,54 @@
|
||||||
|
|
||||||
create_clock -period "20.000 ns" -name clk_50m [get_ports {sys_clk}]
|
create_clock -period "20.000 ns" -name clk_50m [get_ports {sys_clk}]
|
||||||
create_clock -period "3.906 ns" -name clk_250m [get_ports {rx_clk_in}]
|
create_clock -period "4.000 ns" -name clk_250m [get_ports {rx_clk_in}]
|
||||||
create_clock -period "10.000 ns" -name clk_100m [get_pins {i_system_bd|sys_hps|fpga_interfaces|clocks_resets|h2f_user0_clk}]
|
create_clock -period "12.500 ns" -name clk_80m [get_pins {i_system_bd|sys_hps|fpga_interfaces|clocks_resets|h2f_user0_clk}]
|
||||||
|
|
||||||
|
|
||||||
derive_pll_clocks
|
derive_pll_clocks
|
||||||
derive_clock_uncertainty
|
derive_clock_uncertainty
|
||||||
|
|
||||||
set clk_64m [get_clocks {i_system_bd|axi_ad9361|i_ad9361|i_dev_if|i_clk|i_gclk|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}]
|
set clk_125m [get_clocks {i_system_bd|axi_ad9361|i_ad9361|i_dev_if|i_rx|i_altlvds_rx|auto_generated|pll_sclk~PLL_OUTPUT_COUNTER|divclk}]
|
||||||
|
|
||||||
set_false_path -from clk_250m -to $clk_64m
|
set_false_path -from clk_50m -to clk_80m
|
||||||
set_false_path -from $clk_64m -to clk_250m
|
set_false_path -from clk_50m -to $clk_125m
|
||||||
|
set_false_path -from clk_80m -to clk_50m
|
||||||
|
set_false_path -from clk_80m -to $clk_125m
|
||||||
|
set_false_path -from $clk_125m -to clk_50m
|
||||||
|
set_false_path -from $clk_125m -to clk_80m
|
||||||
|
|
||||||
set_false_path -from clk_50m -to clk_100m
|
create_clock -period 4.0 -name v_rx_clk
|
||||||
set_false_path -from clk_50m -to $clk_64m
|
|
||||||
set_false_path -from clk_100m -to clk_50m
|
|
||||||
set_false_path -from clk_100m -to $clk_64m
|
|
||||||
set_false_path -from $clk_64m -to clk_50m
|
|
||||||
set_false_path -from $clk_64m -to clk_100m
|
|
||||||
|
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_frame_in}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[0]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[1]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[2]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[3]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[4]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -max 1.2 [get_ports {rx_data_in[5]}]
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_frame_in}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[0]}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[1]}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[2]}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[3]}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[4]}] -clock_fall -add_delay
|
||||||
|
set_input_delay -clock {v_rx_clk} -min 0.2 [get_ports {rx_data_in[5]}] -clock_fall -add_delay
|
||||||
|
|
||||||
|
create_generated_clock -source [get_ports {rx_clk_in}] -name v_tx_clk [get_ports {tx_clk_out}] -phase 90
|
||||||
|
|
||||||
|
set_false_path -from clk_250m -to v_tx_clk
|
||||||
|
set_false_path -from v_tx_clk -to clk_250m
|
||||||
|
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_frame_out}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[0]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[1]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[2]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[3]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[4]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -max 1.2 [get_ports {tx_data_out[5]}]
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_frame_out}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[0]}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[1]}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[2]}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[3]}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[4]}] -clock_fall -add_delay
|
||||||
|
set_output_delay -clock {v_tx_clk} -min 0.2 [get_ports {tx_data_out[5]}] -clock_fall -add_delay
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue