Forum Discussion
Altera_Forum
Honored Contributor
14 years ago --- Quote Start --- Check if the clock names between quotes match those feeding the relevant TSE mac pins in your Quartus design. --- Quote End --- Yes I think they do match. Here is the instantiation of the TSE mac IP and attached is the complete sdc file for the TSE core. I have generated four ports in my IP, and the sdc file has a mechanism converting the names for all the four ports. Instantiation of my IP in the quartus design: triple_mac triple_mac_inst( .clk(sys_clk), .reset(~rst_n), .address(reg_address), .read(reg_read), .writedata(reg_writedata), .write(reg_write), .rx_afull_clk(), .rx_afull_channel(), .rx_afull_data(), .rx_afull_valid(1'b0), .data_tx_data_0(data_tx_data_0), .data_tx_eop_0(data_tx_eop_0), .data_tx_error_0(data_tx_error_0), .data_tx_sop_0(data_tx_sop_0), .data_tx_valid_0(data_tx_valid_0), .data_rx_ready_0(data_rx_ready_0), .tx_clk_0(tx_clk_0), .rx_clk_0(rx_clk_0), .gm_rx_d_0(gm_rx_d_0), .gm_rx_dv_0(gm_rx_dv_0), .gm_rx_err_0(gm_rx_err_0), .m_rx_d_0(m_rx_d_0), .m_rx_en_0(m_rx_en_0), .m_rx_err_0(m_rx_err_0), .m_rx_col_0(m_rx_col_0), .m_rx_crs_0(m_rx_crs_0), .set_10_0(set_10_0), .set_1000_0(set_1000_0), .tx_crc_fwd_0(tx_crc_fwd_0), .data_tx_data_1(data_tx_data_1), .data_tx_eop_1(data_tx_eop_1), .data_tx_error_1(data_tx_error_1), .data_tx_sop_1(data_tx_sop_1), .data_tx_valid_1(data_tx_valid_1), .data_rx_ready_1(data_rx_ready_1), .tx_clk_1(tx_clk_1), .rx_clk_1(rx_clk_1), .gm_rx_d_1(gm_rx_d_1), .gm_rx_dv_1(gm_rx_dv_1), .gm_rx_err_1(gm_rx_err_1), .m_rx_d_1(m_rx_d_1), .m_rx_en_1(m_rx_en_1), .m_rx_err_1(m_rx_err_1), .m_rx_col_1(m_rx_col_1), .m_rx_crs_1(m_rx_crs_1), .set_10_1(set_10_1), .set_1000_1(set_1000_1), .tx_crc_fwd_1(tx_crc_fwd_1), .data_tx_data_2(data_tx_data_2), .data_tx_eop_2(data_tx_eop_2), .data_tx_error_2(data_tx_error_2), .data_tx_sop_2(data_tx_sop_2), .data_tx_valid_2(data_tx_valid_2), .data_rx_ready_2(data_rx_ready_2), .tx_clk_2(tx_clk_2), .rx_clk_2(rx_clk_2), .gm_rx_d_2(gm_rx_d_2), .gm_rx_dv_2(gm_rx_dv_2), .gm_rx_err_2(gm_rx_err_2), .m_rx_d_2(m_rx_d_2), .m_rx_en_2(m_rx_en_2), .m_rx_err_2(m_rx_err_2), .m_rx_col_2(m_rx_col_2), .m_rx_crs_2(m_rx_crs_2), .set_10_2(set_10_2), .set_1000_2(set_1000_2), .tx_crc_fwd_2(tx_crc_fwd_2), .readdata(reg_readdata), .waitrequest(waitrequest), .mac_tx_clk_0(mac_tx_clk_0), .mac_rx_clk_0(mac_rx_clk_0), .data_tx_ready_0(data_tx_ready_0), .data_rx_data_0(data_rx_data_0), .data_rx_valid_0(data_rx_valid_0), .data_rx_eop_0(data_rx_eop_0), .data_rx_sop_0(data_rx_sop_0), .data_rx_error_0(data_rx_error_0), .pkt_class_data_0(pkt_class_data_0), .pkt_class_valid_0(pkt_class_valid_0), .gm_tx_d_0(gm_tx_d_0), .gm_tx_en_0(gm_tx_en_0), .gm_tx_err_0(gm_tx_err_0), .m_tx_d_0(m_tx_d_0), .m_tx_en_0(m_tx_en_0), .m_tx_err_0(m_tx_err_0), .ena_10_0(), .eth_mode_0(eth_mode_0), .mac_tx_clk_1(mac_tx_clk_1), .mac_rx_clk_1(mac_rx_clk_1), .data_tx_ready_1(data_tx_ready_1), .data_rx_data_1(data_rx_data_1), .data_rx_valid_1(data_rx_valid_1), .data_rx_eop_1(data_rx_eop_1), .data_rx_sop_1(data_rx_sop_1), .data_rx_error_1(data_rx_error_1), .pkt_class_data_1(pkt_class_data_1), .pkt_class_valid_1(pkt_class_valid_1), .gm_tx_d_1(gm_tx_d_1), .gm_tx_en_1(gm_tx_en_1), .gm_tx_err_1(gm_tx_err_1), .m_tx_d_1(m_tx_d_1), .m_tx_en_1(m_tx_en_1), .m_tx_err_1(m_tx_err_1), .ena_10_1(), .eth_mode_1(eth_mode_1), .mac_tx_clk_2(mac_tx_clk_2), .mac_rx_clk_2(mac_rx_clk_2), .data_tx_ready_2(data_tx_ready_2), .data_rx_data_2(data_rx_data_2), .data_rx_valid_2(data_rx_valid_2), .data_rx_eop_2(data_rx_eop_2), .data_rx_sop_2(data_rx_sop_2), .data_rx_error_2(data_rx_error_2), .pkt_class_data_2(pkt_class_data_2), .pkt_class_valid_2(pkt_class_valid_2), .gm_tx_d_2(gm_tx_d_2), .gm_tx_en_2(gm_tx_en_2), .gm_tx_err_2(gm_tx_err_2), .m_tx_d_2(m_tx_d_2), .m_tx_en_2(m_tx_en_2), .m_tx_err_2(m_tx_err_2), .ena_10_2(), .eth_mode_2(eth_mode_2));