//+FHDR------------------------------------------------------------------------
|
//+FHDR------------------------------------------------------------------------
|
//Copyright (c) 2013 Latin Group American Integhrated Circuit, Inc. All rights reserved
|
//Copyright (c) 2013 Latin Group American Integhrated Circuit, Inc. All rights reserved
|
//GLADIC Open Source RTL
|
//GLADIC Open Source RTL
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//FILE NAME :
|
//FILE NAME :
|
//DEPARTMENT : IC Design / Verification
|
//DEPARTMENT : IC Design / Verification
|
//AUTHOR : Felipe Fernandes da Costa
|
//AUTHOR : Felipe Fernandes da Costa
|
//AUTHOR’S EMAIL :
|
//AUTHOR’S EMAIL :
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//RELEASE HISTORY
|
//RELEASE HISTORY
|
//VERSION DATE AUTHOR DESCRIPTION
|
//VERSION DATE AUTHOR DESCRIPTION
|
//1.0 YYYY-MM-DD name
|
//1.0 YYYY-MM-DD name
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//KEYWORDS : General file searching keywords, leave blank if none.
|
//KEYWORDS : General file searching keywords, leave blank if none.
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//PURPOSE : ECSS_E_ST_50_12C_31_july_2008
|
//PURPOSE : ECSS_E_ST_50_12C_31_july_2008
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//PARAMETERS
|
//PARAMETERS
|
//PARAM NAME RANGE : DESCRIPTION : DEFAULT : UNITS
|
//PARAM NAME RANGE : DESCRIPTION : DEFAULT : UNITS
|
//e.g.DATA_WIDTH [32,16] : width of the data : 32:
|
//e.g.DATA_WIDTH [32,16] : width of the data : 32:
|
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
//REUSE ISSUES
|
//REUSE ISSUES
|
//Reset Strategy :
|
//Reset Strategy :
|
//Clock Domains :
|
//Clock Domains :
|
//Critical Timing :
|
//Critical Timing :
|
//Test Features :
|
//Test Features :
|
//Asynchronous I/F :
|
//Asynchronous I/F :
|
//Scan Methodology :
|
//Scan Methodology :
|
//Instantiations :
|
//Instantiations :
|
//Synthesizable (y/n) :
|
//Synthesizable (y/n) :
|
//Other :
|
//Other :
|
//-FHDR------------------------------------------------------------------------
|
//-FHDR------------------------------------------------------------------------
|
|
|
`timescale 1ns/1ns
|
`timescale 1ns/1ns
|
|
|
module top_spw_ultra_light(
|
module top_spw_ultra_light(
|
|
|
input pclk,
|
input pclk,
|
input ppllclk,
|
input ppllclk,
|
input resetn,
|
input resetn,
|
|
|
input top_sin,
|
input top_sin,
|
input top_din,
|
input top_din,
|
|
|
input top_auto_start,
|
input top_auto_start,
|
input top_link_start,
|
input top_link_start,
|
input top_link_disable,
|
input top_link_disable,
|
|
|
input top_tx_write,
|
input top_tx_write,
|
input [8:0] top_tx_data,
|
input [8:0] top_tx_data,
|
|
|
input top_tx_tick,
|
input top_tx_tick,
|
input [7:0] top_tx_time,
|
input [7:0] top_tx_time,
|
|
|
input credit_error_rx,
|
input credit_error_rx,
|
input top_send_fct_now,
|
input top_send_fct_now,
|
|
|
output [8:0] datarx_flag,
|
output [8:0] datarx_flag,
|
output buffer_write,
|
output buffer_write,
|
|
|
output [7:0] time_out,
|
output [7:0] time_out,
|
output tick_out,
|
output tick_out,
|
|
|
output top_dout,
|
output top_dout,
|
output top_sout,
|
output top_sout,
|
|
|
output top_tx_ready,
|
output top_tx_ready,
|
output top_tx_ready_tick,
|
output top_tx_ready_tick,
|
|
|
output [5:0] top_fsm
|
output [5:0] top_fsm
|
|
|
);
|
);
|
|
|
wire resetn_rx;
|
wire resetn_rx;
|
wire error_rx;
|
wire error_rx;
|
|
|
wire got_bit_rx;
|
wire got_bit_rx;
|
wire got_null_rx;
|
wire got_null_rx;
|
wire got_nchar_rx;
|
wire got_nchar_rx;
|
wire got_time_code_rx;
|
wire got_time_code_rx;
|
wire got_fct_rx;
|
wire got_fct_rx;
|
|
|
wire enable_tx;
|
wire enable_tx;
|
wire send_null_tx;
|
wire send_null_tx;
|
wire send_fct_tx;
|
wire send_fct_tx;
|
|
|
|
wire got_fct_flag_fsm;
|
|
|
|
|
FSM_SPW FSM(
|
FSM_SPW FSM(
|
.pclk(pclk),
|
.pclk(pclk),
|
.resetn(resetn),
|
.resetn(resetn),
|
|
|
.auto_start(top_auto_start),
|
.auto_start(top_auto_start),
|
.link_start(top_link_start),
|
.link_start(top_link_start),
|
.link_disable(top_link_disable),
|
.link_disable(top_link_disable),
|
|
|
.rx_error(error_rx),
|
.rx_error(error_rx),
|
.rx_credit_error(credit_error_rx),
|
.rx_credit_error(credit_error_rx),
|
.rx_got_bit(got_bit_rx),
|
.rx_got_bit(got_bit_rx),
|
.rx_got_null(got_null_rx),
|
.rx_got_null(got_null_rx),
|
.rx_got_nchar(got_nchar_rx),
|
.rx_got_nchar(got_nchar_rx),
|
.rx_got_time_code(got_time_code_rx),
|
.rx_got_time_code(got_time_code_rx),
|
.rx_got_fct(got_fct_rx),
|
.rx_got_fct(got_fct_flag_fsm),
|
.rx_resetn(resetn_rx),
|
.rx_resetn(resetn_rx),
|
|
|
.enable_tx(enable_tx),
|
.enable_tx(enable_tx),
|
.send_null_tx(send_null_tx),
|
.send_null_tx(send_null_tx),
|
.send_fct_tx(send_fct_tx),
|
.send_fct_tx(send_fct_tx),
|
|
|
.fsm_state(top_fsm)
|
.fsm_state(top_fsm)
|
|
|
);
|
);
|
|
|
|
|
RX_SPW RX(
|
RX_SPW RX(
|
.rx_din(top_din),
|
.rx_din(top_din),
|
.rx_sin(top_sin),
|
.rx_sin(top_sin),
|
|
|
.rx_resetn(resetn_rx),
|
.rx_resetn(resetn_rx),
|
|
|
.rx_error(error_rx),
|
.rx_error(error_rx),
|
.rx_got_bit(got_bit_rx),
|
.rx_got_bit(got_bit_rx),
|
.rx_got_null(got_null_rx),
|
.rx_got_null(got_null_rx),
|
.rx_got_nchar(got_nchar_rx),
|
.rx_got_nchar(got_nchar_rx),
|
.rx_got_time_code(got_time_code_rx),
|
.rx_got_time_code(got_time_code_rx),
|
.rx_got_fct(got_fct_rx),
|
.rx_got_fct(got_fct_rx),
|
|
.rx_got_fct_fsm(got_fct_flag_fsm),
|
|
|
.rx_data_flag(datarx_flag),
|
.rx_data_flag(datarx_flag),
|
.rx_buffer_write(buffer_write),
|
.rx_buffer_write(buffer_write),
|
|
|
.rx_time_out(time_out),
|
.rx_time_out(time_out),
|
.rx_tick_out(tick_out)
|
.rx_tick_out(tick_out)
|
|
|
);
|
);
|
|
|
TX_SPW TX(
|
TX_SPW TX(
|
.pclk_tx(ppllclk),
|
.pclk_tx(ppllclk),
|
|
|
.data_tx_i(top_tx_data),
|
.data_tx_i(top_tx_data),
|
.txwrite_tx(top_tx_write),
|
.txwrite_tx(top_tx_write),
|
|
|
.timecode_tx_i(top_tx_time),
|
.timecode_tx_i(top_tx_time),
|
.tickin_tx(top_tx_tick),
|
.tickin_tx(top_tx_tick),
|
|
|
.enable_tx(enable_tx),
|
.enable_tx(enable_tx),
|
.send_null_tx(send_null_tx),
|
.send_null_tx(send_null_tx),
|
.send_fct_tx(send_fct_tx),
|
.send_fct_tx(send_fct_tx),
|
|
|
.gotfct_tx(got_fct_rx),
|
.gotfct_tx(got_fct_rx),
|
.send_fct_now(top_send_fct_now),
|
.send_fct_now(top_send_fct_now),
|
|
|
.tx_dout(top_dout),
|
.tx_dout(top_dout),
|
.tx_sout(top_sout),
|
.tx_sout(top_sout),
|
|
|
.ready_tx_data(top_tx_ready),
|
.ready_tx_data(top_tx_ready),
|
.ready_tx_timecode(top_tx_ready_tick)
|
.ready_tx_timecode(top_tx_ready_tick)
|
);
|
);
|
|
|
endmodule
|
endmodule
|
|
|