OpenCores
URL https://opencores.org/ocsvn/ethernet_tri_mode/ethernet_tri_mode/trunk

Subversion Repositories ethernet_tri_mode

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 5 to Rev 6
    Reverse comparison

Rev 5 → Rev 6

/trunk/bench/verilog/reg_int_sim.v
0,0 → 1,132
//////////////////////////////////////////////////////////////////////
//// ////
//// reg_int_sim.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
//// ////
//// Author(s): ////
//// - Jon Gao (gaojon@yahoo.com) ////
//// ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2001 Authors ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
 
module reg_int_sim (
input Reset ,
input Clk_reg ,
//Tx host interface
output [4:0] Tx_Hwmark ,
output [4:0] Tx_Lwmark ,
output pause_frame_send_en ,
output [15:0] pause_quanta_set ,
output MAC_tx_add_en ,
output FullDuplex ,
output [3:0] MaxRetry ,
output [5:0] IFGset ,
output [7:0] MAC_tx_add_prom_data ,
output [2:0] MAC_tx_add_prom_add ,
output MAC_tx_add_prom_wr ,
output tx_pause_en ,
output xoff_cpu ,
output xon_cpu ,
//Rx host interface
output MAC_rx_add_chk_en ,
output [7:0] MAC_rx_add_prom_data ,
output [2:0] MAC_rx_add_prom_add ,
output MAC_rx_add_prom_wr ,
output broadcast_filter_en ,
output [15:0] broadcast_MAX ,
output RX_APPEND_CRC ,
output CRC_chk_en ,
output [5:0] RX_IFG_SET ,
output [15:0] RX_MAX_LENGTH ,// 1518
output [6:0] RX_MIN_LENGTH ,// 64
//RMON host interface
output [5:0] CPU_rd_addr ,
output CPU_rd_apply ,
input CPU_rd_grant ,
input [31:0] CPU_rd_dout ,
//Phy int host interface
output Line_loop_en ,
output [2:0] Speed ,
//MII to CPU
output [7:0] Divider ,// Divider for the host clock
output [15:0] CtrlData ,// Control Data (to be written to the PHY reg.)
output [4:0] Rgad ,// Register Address (within the PHY)
output [4:0] Fiad ,// PHY Address
output NoPre ,// No Preamble (no 32-bit preamble)
output WCtrlData ,// Write Control Data operation
output RStat ,// Read Status operation
output ScanStat ,// Scan Status operation
input Busy ,// Busy Signal
input LinkFail ,// Link Integrity Signal
input Nvalid ,// Invalid Status (qualifier for the valid scan result)
input [15:0] Prsd ,// Read Status Data (data read from the PHY)
input WCtrlDataStart ,// This signals resets the WCTRLDATA bit in the MIIM Command register
input RStatStart ,// This signal resets the RSTAT BIT in the MIIM Command register
input UpdateMIIRX_DATAReg ,// Updates MII RX_DATA register with read data
);
 
assign Tx_Hwmark =5'h1e;
assign Tx_Lwmark =5'h19;
assign pause_frame_send_en =0;
assign pause_quanta_set =0;
assign MAC_tx_add_en =0;
assign FullDuplex =1;
assign MaxRetry =2;
assign IFGset =10;
assign MAC_tx_add_prom_data =0;
assign MAC_tx_add_prom_add =0;
assign MAC_tx_add_prom_wr =0;
assign tx_pause_en =0;
assign xoff_cpu =0;
assign xon_cpu =0;
assign MAC_rx_add_chk_en =0;
assign MAC_rx_add_prom_data =0;
assign MAC_rx_add_prom_add =0;
assign MAC_rx_add_prom_wr =0;
assign broadcast_filter_en =0;
assign broadcast_MAX =10;
assign RX_APPEND_CRC =0;
assign CRC_chk_en =1;
assign RX_IFG_SET =10;
assign RX_MAX_LENGTH =1518;
assign RX_MIN_LENGTH =64;
 
assign CPU_rd_addr =0;
assign CPU_rd_apply =0;
assign Line_loop_en =0;
assign Speed =3'b001;
endmodule
/trunk/bench/verilog/User_int_sim.v
0,0 → 1,121
//////////////////////////////////////////////////////////////////////
//// ////
//// User_input_sim.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
//// ////
//// Author(s): ////
//// - Jon Gao (gaojon@yahoo.com) ////
//// ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2001 Authors ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
//
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
module User_int_sim (
input Reset ,
input Clk_user ,
//user inputerface
input Rx_mac_ra ,
output Rx_mac_rd ,
input [31:0] Rx_mac_data ,
input [1:0] Rx_mac_BE ,
input Rx_mac_pa ,
input Rx_mac_sop ,
input Rx_mac_eop ,
//user inputerface
input Tx_mac_wa ,
output Tx_mac_wr ,
output [31:0] Tx_mac_data ,
output [1:0] Tx_mac_BE ,//big endian
output Tx_mac_sop ,
output Tx_mac_eop
);
//////////////////////////////////////////////////////////////////////
// inputernal signals
//////////////////////////////////////////////////////////////////////
reg[4:0] operation;
reg[31:0] data;
reg Rx_mac_rd;
reg Start_tran;
//////////////////////////////////////////////////////////////////////
//generate Tx user data
//////////////////////////////////////////////////////////////////////
initial
begin
operation =0;
data =0;
end
 
always @ (posedge Clk_user or posedge Reset)
if (Reset)
Start_tran <=0;
else if (Tx_mac_eop&&!Tx_mac_wa)
Start_tran <=0;
else if (Tx_mac_wa)
Start_tran <=1;
always @ (posedge Clk_user )
if (Tx_mac_wa)
$ip_32W_gen("config.ini",operation,data);
else
begin
operation <=0;
data <=0;
end
 
assign Tx_mac_data =data;
assign Tx_mac_wr =operation[4];
assign Tx_mac_sop =operation[3];
assign Tx_mac_eop =operation[2];
assign Tx_mac_BE =operation[1:0];
//////////////////////////////////////////////////////////////////////
//verify Rx user data
//////////////////////////////////////////////////////////////////////
always @ (posedge Clk_user or posedge Reset)
if (Reset)
Rx_mac_rd <=0;
else if(Rx_mac_ra)
Rx_mac_rd <=1;
else
Rx_mac_rd <=0;
 
always @ (posedge Clk_user )
if (Rx_mac_pa)
$ip_32W_check( Rx_mac_data,
{Rx_mac_sop,Rx_mac_eop,Rx_mac_eop?Rx_mac_BE:2'b0});
endmodule
/trunk/bench/verilog/tb_top.v
1,6 → 1,7
`timescale 1 ns/100ps
//////////////////////////////////////////////////////////////////////
//// ////
//// tb_top.v ////
//// tb_top.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
38,7 → 39,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
module tb_top (
);
46,104 → 50,135
//internal signals
//******************************************************************************
//system signals
input Reset ,
input Clk_125M ,
input Clk_user ,
input Clk_reg ,
reg Reset ;
reg Clk_125M ;
reg Clk_user ;
reg Clk_reg ;
//user interface
output Rx_mac_ra ,
input Rx_mac_rd ,
output [31:0] Rx_mac_data ,
output [1:0] Rx_mac_BE ,
output Rx_mac_pa ,
output Rx_mac_sop ,
output Rx_mac_eop ,
wire Rx_mac_ra ;
wire Rx_mac_rd ;
wire [31:0] Rx_mac_data ;
wire [1:0] Rx_mac_BE ;
wire Rx_mac_pa ;
wire Rx_mac_sop ;
wire Rx_mac_eop ;
//user interface
output Tx_mac_wa ,
input Tx_mac_wr ,
input [31:0] Tx_mac_data ,
input [1:0] Tx_mac_BE ,//big endian
input Tx_mac_sop ,
input Tx_mac_eop ,
wire Tx_mac_wa ;
wire Tx_mac_wr ;
wire [31:0] Tx_mac_data ;
wire [1:0] Tx_mac_BE ;//big endian
wire Tx_mac_sop ;
wire Tx_mac_eop ;
//Phy interface
//Phy interface
output Gtx_clk ,//used only in GMII mode
input Rx_clk ,
input Tx_clk ,//used only in MII mode
output Tx_er ,
output Tx_en ,
output [7:0] Txd ,
input Rx_er ,
input Rx_dv ,
input [7:0] Rxd ,
input Crs ,
input Col ,
wire Gtx_clk ;//used only in GMII mode
wire Rx_clk ;
wire Tx_clk ;//used only in MII mode
wire Tx_er ;
wire Tx_en ;
wire [7:0] Txd ;
wire Rx_er ;
wire Rx_dv ;
wire [7:0] Rxd ;
wire Crs ;
wire Col ;
//Tx host interface
input [4:0] Tx_Hwmark ,
input [4:0] Tx_Lwmark ,
input pause_frame_send_en ,
input [15:0] pause_quanta_set ,
input MAC_tx_add_en ,
input FullDuplex ,
input [3:0] MaxRetry ,
input [5:0] IFGset ,
input [7:0] MAC_tx_add_prom_data ,
input [2:0] MAC_tx_add_prom_add ,
input MAC_tx_add_prom_wr ,
input tx_pause_en ,
input xoff_cpu ,
input xon_cpu ,
wire [4:0] Tx_Hwmark ;
wire [4:0] Tx_Lwmark ;
wire pause_frame_send_en ;
wire [15:0] pause_quanta_set ;
wire MAC_tx_add_en ;
wire FullDuplex ;
wire [3:0] MaxRetry ;
wire [5:0] IFGset ;
wire [7:0] MAC_tx_add_prom_data ;
wire [2:0] MAC_tx_add_prom_add ;
wire MAC_tx_add_prom_wr ;
wire tx_pause_en ;
wire xoff_cpu ;
wire xon_cpu ;
//Rx host interface
input MAC_rx_add_chk_en ,
input [7:0] MAC_rx_add_prom_data ,
input [2:0] MAC_rx_add_prom_add ,
input MAC_rx_add_prom_wr ,
input broadcast_filter_en ,
input [15:0] broadcast_MAX ,
input RX_APPEND_CRC ,
input CRC_chk_en ,
input [5:0] RX_IFG_SET ,
input [15:0] RX_MAX_LENGTH ,// 1518
input [6:0] RX_MIN_LENGTH ,// 64
wire MAC_rx_add_chk_en ;
wire [7:0] MAC_rx_add_prom_data ;
wire [2:0] MAC_rx_add_prom_add ;
wire MAC_rx_add_prom_wr ;
wire broadcast_filter_en ;
wire [15:0] broadcast_MAX ;
wire RX_APPEND_CRC ;
wire CRC_chk_en ;
wire [5:0] RX_IFG_SET ;
wire [15:0] RX_MAX_LENGTH ;// 1518
wire [6:0] RX_MIN_LENGTH ;// 64
//RMON host interface
input [5:0] CPU_rd_addr ,
input CPU_rd_apply ,
output CPU_rd_grant ,
output [31:0] CPU_rd_dout ,
wire [5:0] CPU_rd_addr ;
wire CPU_rd_apply ;
wire CPU_rd_grant ;
wire [31:0] CPU_rd_dout ;
//Phy int host interface
input Line_loop_en ,
input [2:0] Speed ,
wire Line_loop_en ;
wire [2:0] Speed ;
//MII to CPU
input [7:0] Divider ,// Divider for the host clock
input [15:0] CtrlData ,// Control Data (to be written to the PHY reg.)
input [4:0] Rgad ,// Register Address (within the PHY)
input [4:0] Fiad ,// PHY Address
input NoPre ,// No Preamble (no 32-bit preamble)
input WCtrlData ,// Write Control Data operation
input RStat ,// Read Status operation
input ScanStat ,// Scan Status operation
output Busy ,// Busy Signal
output LinkFail ,// Link Integrity Signal
output Nvalid ,// Invalid Status (qualifier for the valid scan result)
output [15:0] Prsd ,// Read Status Data (data read from the PHY)
output WCtrlDataStart ,// This signals resets the WCTRLDATA bit in the MIIM Command register
output RStatStart ,// This signal resets the RSTAT BIT in the MIIM Command register
output UpdateMIIRX_DATAReg ,// Updates MII RX_DATA register with read data
wire [7:0] Divider ;// Divider for the host clock
wire [15:0] CtrlData ;// Control Data (to be written to the PHY reg.)
wire [4:0] Rgad ;// Register Address (within the PHY)
wire [4:0] Fiad ;// PHY Address
wire NoPre ;// No Preamble (no 32-bit preamble)
wire WCtrlData ;// Write Control Data operation
wire RStat ;// Read Status operation
wire ScanStat ;// Scan Status operation
wire Busy ;// Busy Signal
wire LinkFail ;// Link Integrity Signal
wire Nvalid ;// Invalid Status (qualifier for the valid scan result)
wire [15:0] Prsd ;// Read Status Data (data read from the PHY)
wire WCtrlDataStart ;// This signals resets the WCTRLDATA bit in the MIIM Command register
wire RStatStart ;// This signal resets the RSTAT BIT in the MIIM Command register
wire UpdateMIIRX_DATAReg ;// Updates MII RX_DATA register with read data
//MII interface signals
inout Mdio ,// MII Management Data In
output Mdc ,// MII Management Data Clock
wire Mdio ;// MII Management Data In
wire Mdc ;// MII Management Data Clock
 
//******************************************************************************
//internal signals
//******************************************************************************
 
initial
begin
Reset =1;
#20 Reset =0;
end
always
begin
#4 Clk_125M=0;
#4 Clk_125M=1;
end
 
always
begin
#5 Clk_user=0;
#5 Clk_user=1;
end
always
begin
#10 Clk_reg=0;
#10 Clk_reg=1;
end
 
 
initial
begin
$shm_open("tb_top.shm",,900000000,);
$shm_probe("AS");
end
 
 
MAC_top U_MAC_top(
.//system signals (//system signals ),
//system signals (//system signals ),
.Reset (Reset ),
.Clk_125M (Clk_125M ),
.Clk_user (Clk_user ),
.Clk_reg (Clk_reg ),
.//user interface (//user interface ),
//user interface (//user interface ),
.Rx_mac_ra (Rx_mac_ra ),
.Rx_mac_rd (Rx_mac_rd ),
.Rx_mac_data (Rx_mac_data ),
151,7 → 186,7
.Rx_mac_pa (Rx_mac_pa ),
.Rx_mac_sop (Rx_mac_sop ),
.Rx_mac_eop (Rx_mac_eop ),
.//user interface (//user interface ),
//user interface (//user interface ),
.Tx_mac_wa (Tx_mac_wa ),
.Tx_mac_wr (Tx_mac_wr ),
.Tx_mac_data (Tx_mac_data ),
158,8 → 193,8
.Tx_mac_BE (Tx_mac_BE ),
.Tx_mac_sop (Tx_mac_sop ),
.Tx_mac_eop (Tx_mac_eop ),
.//Phy interface (//Phy interface ),
.//Phy interface (//Phy interface ),
//Phy interface (//Phy interface ),
//Phy interface (//Phy interface ),
.Gtx_clk (Gtx_clk ),
.Rx_clk (Rx_clk ),
.Tx_clk (Tx_clk ),
171,7 → 206,7
.Rxd (Rxd ),
.Crs (Crs ),
.Col (Col ),
.//Tx host interface (//Tx host interface ),
//Tx host interface (//Tx host interface ),
.Tx_Hwmark (Tx_Hwmark ),
.Tx_Lwmark (Tx_Lwmark ),
.pause_frame_send_en (pause_frame_send_en ),
186,7 → 221,7
.tx_pause_en (tx_pause_en ),
.xoff_cpu (xoff_cpu ),
.xon_cpu (xon_cpu ),
.//Rx host interface (//Rx host interface ),
//Rx host interface (//Rx host interface ),
.MAC_rx_add_chk_en (MAC_rx_add_chk_en ),
.MAC_rx_add_prom_data (MAC_rx_add_prom_data ),
.MAC_rx_add_prom_add (MAC_rx_add_prom_add ),
198,15 → 233,15
.RX_IFG_SET (RX_IFG_SET ),
.RX_MAX_LENGTH (RX_MAX_LENGTH ),
.RX_MIN_LENGTH (RX_MIN_LENGTH ),
.//RMON host interface (//RMON host interface ),
//RMON host interface (//RMON host interface ),
.CPU_rd_addr (CPU_rd_addr ),
.CPU_rd_apply (CPU_rd_apply ),
.CPU_rd_grant (CPU_rd_grant ),
.CPU_rd_dout (CPU_rd_dout ),
.//Phy int host interface (//Phy int host interface ),
//Phy int host interface (//Phy int host interface ),
.Line_loop_en (Line_loop_en ),
.Speed (Speed ),
.//MII to CPU (//MII to CPU ),
//MII to CPU (//MII to CPU ),
.Divider (Divider ),
.CtrlData (CtrlData ),
.Rgad (Rgad ),
222,10 → 257,99
.WCtrlDataStart (WCtrlDataStart ),
.RStatStart (RStatStart ),
.UpdateMIIRX_DATAReg (UpdateMIIRX_DATAReg ),
.//MII interface signals (//MII interface signals ),
//MII interface signals (//MII interface signals ),
.Mdio (Mdio ),
.Mdc (Mdc )
);
 
Phy_sim U_Phy_sim (
.Gtx_clk (Gtx_clk ),
.Rx_clk (Rx_clk ),
.Tx_clk (Tx_clk ),
.Tx_er (Tx_er ),
.Tx_en (Tx_en ),
.Txd (Txd ),
.Rx_er (Rx_er ),
.Rx_dv (Rx_dv ),
.Rxd (Rxd ),
.Crs (Crs ),
.Col (Col ),
.Speed (Speed )
);
 
User_int_sim U_User_int_sim(
.Reset (Reset ),
.Clk_user (Clk_user ),
//user inputerface (//user inputerface ),
.Rx_mac_ra (Rx_mac_ra ),
.Rx_mac_rd (Rx_mac_rd ),
.Rx_mac_data (Rx_mac_data ),
.Rx_mac_BE (Rx_mac_BE ),
.Rx_mac_pa (Rx_mac_pa ),
.Rx_mac_sop (Rx_mac_sop ),
.Rx_mac_eop (Rx_mac_eop ),
//user inputerface (//user inputerface ),
.Tx_mac_wa (Tx_mac_wa ),
.Tx_mac_wr (Tx_mac_wr ),
.Tx_mac_data (Tx_mac_data ),
.Tx_mac_BE (Tx_mac_BE ),
.Tx_mac_sop (Tx_mac_sop ),
.Tx_mac_eop (Tx_mac_eop )
);
 
reg_int_sim U_reg_int_sim(
.Reset (Reset ),
.Clk_reg (Clk_reg ),
//Tx host interface (//Tx host interface ),
.Tx_Hwmark (Tx_Hwmark ),
.Tx_Lwmark (Tx_Lwmark ),
.pause_frame_send_en (pause_frame_send_en ),
.pause_quanta_set (pause_quanta_set ),
.MAC_tx_add_en (MAC_tx_add_en ),
.FullDuplex (FullDuplex ),
.MaxRetry (MaxRetry ),
.IFGset (IFGset ),
.MAC_tx_add_prom_data (MAC_tx_add_prom_data ),
.MAC_tx_add_prom_add (MAC_tx_add_prom_add ),
.MAC_tx_add_prom_wr (MAC_tx_add_prom_wr ),
.tx_pause_en (tx_pause_en ),
.xoff_cpu (xoff_cpu ),
.xon_cpu (xon_cpu ),
//Rx host interface (//Rx host interface ),
.MAC_rx_add_chk_en (MAC_rx_add_chk_en ),
.MAC_rx_add_prom_data (MAC_rx_add_prom_data ),
.MAC_rx_add_prom_add (MAC_rx_add_prom_add ),
.MAC_rx_add_prom_wr (MAC_rx_add_prom_wr ),
.broadcast_filter_en (broadcast_filter_en ),
.broadcast_MAX (broadcast_MAX ),
.RX_APPEND_CRC (RX_APPEND_CRC ),
.CRC_chk_en (CRC_chk_en ),
.RX_IFG_SET (RX_IFG_SET ),
.RX_MAX_LENGTH (RX_MAX_LENGTH ),
.RX_MIN_LENGTH (RX_MIN_LENGTH ),
//RMON host interface (//RMON host interface ),
.CPU_rd_addr (CPU_rd_addr ),
.CPU_rd_apply (CPU_rd_apply ),
.CPU_rd_grant (CPU_rd_grant ),
.CPU_rd_dout (CPU_rd_dout ),
//Phy int host interface (//Phy int host interface ),
.Line_loop_en (Line_loop_en ),
.Speed (Speed ),
//MII to CPU (//MII to CPU ),
.Divider (Divider ),
.CtrlData (CtrlData ),
.Rgad (Rgad ),
.Fiad (Fiad ),
.NoPre (NoPre ),
.WCtrlData (WCtrlData ),
.RStat (RStat ),
.ScanStat (ScanStat ),
.Busy (Busy ),
.LinkFail (LinkFail ),
.Nvalid (Nvalid ),
.Prsd (Prsd ),
.WCtrlDataStart (WCtrlDataStart ),
.RStatStart (RStatStart ),
.UpdateMIIRX_DATAReg (UpdateMIIRX_DATAReg )
);
endmodule
/trunk/bench/verilog/Phy_sim.v
0,0 → 1,96
//////////////////////////////////////////////////////////////////////
//// ////
//// Phy_sim.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
//// ////
//// Author(s): ////
//// - Jon Gao (gaojon@yahoo.com) ////
//// ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2001 Authors ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
`timescale 1ns/100ps
 
module Phy_sim (
input Gtx_clk ,//used only in GMII mode
output Rx_clk ,
output Tx_clk ,//used only in MII mode
input Tx_er ,
input Tx_en ,
input [7:0] Txd ,
output Rx_er ,
output Rx_dv ,
output [7:0] Rxd ,
output Crs ,
output Col ,
input [2:0] Speed
);
//////////////////////////////////////////////////////////////////////
// this file used to simulate Phy.
// generate clk and loop the Tx data to Rx data
// full duplex mode can be verified on loop mode.
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// internal signals
//////////////////////////////////////////////////////////////////////
reg Clk_25m ;//used for 100 Mbps mode
reg Clk_2_5m ;//used for 10 Mbps mode
wire Rx_clk ;
wire Tx_clk ;//used only in MII mode
//////////////////////////////////////////////////////////////////////
always
begin
#20 Clk_25m=0;
#20 Clk_25m=1;
end
always
begin
#200 Clk_2_5m=0;
#200 Clk_2_5m=1;
end
 
assign Rx_clk=Speed[2]?Gtx_clk:Speed[1]?Clk_25m:Speed[0]?Clk_2_5m:0;
assign Tx_clk=Speed[2]?Gtx_clk:Speed[1]?Clk_25m:Speed[0]?Clk_2_5m:0;
assign Rx_dv =Tx_en ;
assign Rxd =Txd ;
assign Rx_er =0 ;
assign Crs =Tx_en ;
assign Col =0 ;
 
endmodule
/trunk/rtl/verilog/MAC_tx.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
module MAC_tx(
input Reset ,
input Clk ,
/trunk/rtl/verilog/RMON.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
module RMON (
Clk ,
/trunk/rtl/verilog/eth_miim.v
41,6 → 41,9
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
// Revision 1.4 2005/08/16 12:07:57 Administrator
// no message
//
/trunk/rtl/verilog/Clk_ctrl.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
module Clk_ctrl(
Reset ,
82,11 → 85,13
assign MAC_rx_clk =Rx_clk ;
 
CLK_DIV2 U_0_CLK_DIV2(
.Reset (Reset ),
.IN (Rx_clk ),
.OUT (Rx_clk_div2 )
);
 
CLK_DIV2 U_1_CLK_DIV2(
.Reset (Reset ),
.IN (Tx_clk ),
.OUT (Tx_clk_div2 )
);
/trunk/rtl/verilog/TECH/CLK_DIV2.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
 
//////////////////////////////////////////////////////////////////////
47,11 → 50,15
//////////////////////////////////////////////////////////////////////
 
module CLK_DIV2 (
input Reset,
input IN,
output reg OUT
);
 
always @ (posedge IN)
OUT <=!OUT;
always @ (posedge IN or posedge Reset)
if (Reset)
OUT <=0;
else
OUT <=!OUT;
endmodule
/trunk/rtl/verilog/TECH/afifo.v
0,0 → 1,329
//////////////////////////////////////////////////////////////////////
//// ////
//// afifo.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
//// ////
//// Author(s): ////
//// - Jon Gao (gaojon@yahoo.com) ////
//// ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2001 Authors ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
module afifo(
din,
wr_en,
wr_clk,
rd_en,
rd_clk,
ainit,
dout,
full,
almost_full,
empty,
wr_count,
rd_count,
rd_ack,
wr_ack);
//////////////////////////////////////////////////////
parameter DATA_WIDTH =32;
parameter ADDR_WIDTH =5;
parameter COUNT_DATA_WIDTH =5;
parameter ALMOST_FULL_DEPTH =8;
parameter BLK_RAM_TYPE ="M4K";
parameter DUAL_PORT_TYPE ="DUAL_PORT";// DUAL_PORT=simple dual port or BIDIR_DUAL_PORT=true dual_port
//////////////////////////////////////////////////////
input [DATA_WIDTH-1:0] din;
input wr_en;
input wr_clk;
input rd_en;
input rd_clk;
input ainit;
output [DATA_WIDTH-1:0] dout;
output full;
output almost_full;
output empty;
output [COUNT_DATA_WIDTH-1:0] wr_count /* synthesis syn_keep=1 */;
output [COUNT_DATA_WIDTH-1:0] rd_count /* synthesis syn_keep=1 */;
output rd_ack;
output wr_ack;
//////////////////////////////////////////////////////
//local signals
//////////////////////////////////////////////////////
reg [ADDR_WIDTH-1:0] Add_wr;
reg [ADDR_WIDTH-1:0] Add_wr_ungray;
reg [ADDR_WIDTH-1:0] Add_wr_gray;
reg [ADDR_WIDTH-1:0] Add_wr_gray_dl1;
reg [ADDR_WIDTH-1:0] Add_rd;
wire [ADDR_WIDTH-1:0] Add_rd_pluse;
reg [ADDR_WIDTH-1:0] Add_rd_gray;
reg [ADDR_WIDTH-1:0] Add_rd_gray_dl1;
reg [ADDR_WIDTH-1:0] Add_rd_ungray;
wire [ADDR_WIDTH-1:0] Add_wr_pluse;
integer i;
reg full /* synthesis syn_keep=1 */;
reg empty;
wire [ADDR_WIDTH-1:0] ff_used_wr;
wire [ADDR_WIDTH-1:0] ff_used_rd;
reg rd_ack;
reg rd_ack_tmp;
reg almost_full;
wire [DATA_WIDTH-1:0] dout_tmp;
 
//////////////////////////////////////////////////////
//Write clock domain
//////////////////////////////////////////////////////
assign wr_ack =0;
assign ff_used_wr =Add_wr-Add_rd_ungray;
 
assign wr_count =ff_used_wr[ADDR_WIDTH-1:ADDR_WIDTH-COUNT_DATA_WIDTH];
 
 
 
always @ (posedge ainit or posedge wr_clk)
if (ainit)
Add_wr_gray <=0;
else
begin
Add_wr_gray[ADDR_WIDTH-1] <=Add_wr[ADDR_WIDTH-1];
for (i=ADDR_WIDTH-2;i>=0;i=i-1)
Add_wr_gray[i] <=Add_wr[i+1]^Add_wr[i];
end
 
 
 
always @ (posedge wr_clk or posedge ainit)
if (ainit)
Add_rd_gray_dl1 <=0;
else
Add_rd_gray_dl1 <=Add_rd_gray;
always @ (posedge wr_clk or posedge ainit)
if (ainit)
Add_rd_ungray =0;
else
begin
Add_rd_ungray[ADDR_WIDTH-1] =Add_rd_gray_dl1[ADDR_WIDTH-1];
for (i=ADDR_WIDTH-2;i>=0;i=i-1)
Add_rd_ungray[i] =Add_rd_ungray[i+1]^Add_rd_gray_dl1[i];
end
 
assign Add_wr_pluse=Add_wr+1;
 
 
/*
always @ (Add_wr_pluse or Add_rd_ungray)
if (Add_wr_pluse==Add_rd_ungray)
full =1;
else
full =0;
 
*/
always @ (posedge wr_clk or posedge ainit)
if (ainit)
full <=0;
else if(Add_wr_pluse==Add_rd_ungray&&wr_en)
full <=1;
else if(Add_wr!=Add_rd_ungray)
full <=0;
always @ (posedge wr_clk or posedge ainit)
if (ainit)
almost_full <=0;
else if (wr_count>=ALMOST_FULL_DEPTH)
almost_full <=1;
else
almost_full <=0;
always @ (posedge wr_clk or posedge ainit)
if (ainit)
Add_wr <=0;
else if (wr_en&&!full)
Add_wr <=Add_wr +1;
//******************************************************************************
//read clock domain
//******************************************************************************
always @ (posedge rd_clk or posedge ainit)
if (ainit)
rd_ack <=0;
else if (rd_en&&!empty)
rd_ack <=1;
else
rd_ack <=0;
 
 
 
assign ff_used_rd =Add_wr_ungray-Add_rd;
assign rd_count =ff_used_rd[ADDR_WIDTH-1:ADDR_WIDTH-COUNT_DATA_WIDTH];
assign Add_rd_pluse =Add_rd+1;
 
always @ (posedge rd_clk or posedge ainit)
if (ainit)
Add_rd <=0;
 
Add_rd <=Add_rd + 1;
 
 
always @ (posedge ainit or posedge rd_clk)
if (ainit)
Add_rd_gray <=0;
else
begin
Add_rd_gray[ADDR_WIDTH-1] <=Add_rd[ADDR_WIDTH-1];
for (i=ADDR_WIDTH-2;i>=0;i=i-1)
Add_rd_gray[i] <=Add_rd[i+1]^Add_rd[i];
end
/* Add_rd_gray <={ Add_rd[8],
Add_rd[8]^Add_rd[7],
Add_rd[7]^Add_rd[6],
Add_rd[6]^Add_rd[5],
Add_rd[5]^Add_rd[4],
Add_rd[4]^Add_rd[3],
Add_rd[3]^Add_rd[2],
Add_rd[2]^Add_rd[1],
Add_rd[1]^Add_rd[0]};
*/
 
 
always @ (posedge rd_clk or posedge ainit)
if (ainit)
Add_wr_gray_dl1 <=0;
else
Add_wr_gray_dl1 <=Add_wr_gray;
always @ (posedge rd_clk or posedge ainit)
if (ainit)
Add_wr_ungray =0;
else
begin
Add_wr_ungray[ADDR_WIDTH-1] =Add_wr_gray_dl1[ADDR_WIDTH-1];
for (i=ADDR_WIDTH-2;i>=0;i=i-1)
Add_wr_ungray[i] =Add_wr_ungray[i+1]^Add_wr_gray_dl1[i];
end
 
/* Add_wr_ungray <={
Add_wr_gray_dl1[8],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5]^Add_wr_gray_dl1[4],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5]^Add_wr_gray_dl1[4]^Add_wr_gray_dl1[3],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5]^Add_wr_gray_dl1[4]^Add_wr_gray_dl1[3]^Add_wr_gray_dl1[2],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5]^Add_wr_gray_dl1[4]^Add_wr_gray_dl1[3]^Add_wr_gray_dl1[2]^Add_wr_gray_dl1[1],
Add_wr_gray_dl1[8]^Add_wr_gray_dl1[7]^Add_wr_gray_dl1[6]^Add_wr_gray_dl1[5]^Add_wr_gray_dl1[4]^Add_wr_gray_dl1[3]^Add_wr_gray_dl1[2]^Add_wr_gray_dl1[1]^Add_wr_gray_dl1[0] };
*/
 
/*
always @ (Add_rd or Add_wr_ungray)
if (Add_rd==Add_wr_ungray)
empty =1;
else
empty =0;
*/
always @ (posedge rd_clk or posedge ainit)
if (ainit)
empty <=1;
else if (Add_rd_pluse==Add_wr_ungray&&rd_en)
empty <=1;
else if (Add_rd!=Add_wr_ungray)
empty <=0;
 
//////////////////////////////////////////////////////
//instant need change for your own dpram
//////////////////////////////////////////////////////
duram #(
DATA_WIDTH,
ADDR_WIDTH,
BLK_RAM_TYPE,
DUAL_PORT_TYPE)
U_duram (
.data_a (din ),
.wren_a (wr_en ),
.address_a (Add_wr ),
.address_b (Add_rd ),
.clock_a (wr_clk ),
.clock_b (rd_clk ),
.q_b (dout ));
 
endmodule
/trunk/rtl/verilog/TECH/duram.v
0,0 → 1,128
//////////////////////////////////////////////////////////////////////
//// ////
//// duram.v ////
//// ////
//// This file is part of the Ethernet IP core project ////
//// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
//// ////
//// Author(s): ////
//// - Jon Gao (gaojon@yahoo.com) ////
//// ////
//// ////
//////////////////////////////////////////////////////////////////////
//// ////
//// Copyright (C) 2001 Authors ////
//// ////
//// This source file may be used and distributed without ////
//// restriction provided that this copyright statement is not ////
//// removed from the file and that any derivative work contains ////
//// the original copyright notice and the associated disclaimer. ////
//// ////
//// This source file is free software; you can redistribute it ////
//// and/or modify it under the terms of the GNU Lesser General ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any ////
//// later version. ////
//// ////
//// This source is distributed in the hope that it will be ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////
//// PURPOSE. See the GNU Lesser General Public License for more ////
//// details. ////
//// ////
//// You should have received a copy of the GNU Lesser General ////
//// Public License along with this source; if not, download it ////
//// from http://www.opencores.org/lgpl.shtml ////
//// ////
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
module duram(
data_a,
data_b,
wren_a,
wren_b,
address_a,
address_b,
clock_a,
clock_b,
q_a,
q_b); //synthesis syn_black_box
 
parameter DATA_WIDTH = 32;
parameter ADDR_WIDTH = 5;
parameter BLK_RAM_TYPE = "AUTO";
parameter DURAM_MODE = "BIDIR_DUAL_PORT";
parameter ADDR_DEPTH = 2**ADDR_WIDTH;
 
 
 
input [DATA_WIDTH -1:0] data_a;
input wren_a;
input [ADDR_WIDTH -1:0] address_a;
input clock_a;
output [DATA_WIDTH -1:0] q_a;
input [DATA_WIDTH -1:0] data_b;
input wren_b;
input [ADDR_WIDTH -1:0] address_b;
input clock_b;
output [DATA_WIDTH -1:0] q_b;
 
altsyncram U_altsyncram (
.wren_a (wren_a),
.wren_b (wren_b),
.data_a (data_a),
.data_b (data_b),
.address_a (address_a),
.address_b (address_b),
.clock0 (clock_a),
.clock1 (clock_b),
.q_a (q_a),
.q_b (q_b),
// synopsys translate_off
.aclr0 (),
.aclr1 (),
.addressstall_a (),
.addressstall_b (),
.byteena_a (),
.byteena_b (),
.clocken0 (),
.clocken1 (),
.rden_b ()
// synopsys translate_on
);
defparam
U_altsyncram.intended_device_family = "Stratix",
U_altsyncram.ram_block_type = BLK_RAM_TYPE,
U_altsyncram.operation_mode = DURAM_MODE,
U_altsyncram.width_a = DATA_WIDTH,
U_altsyncram.widthad_a = ADDR_WIDTH,
// U_altsyncram.numwords_a = 256,
U_altsyncram.width_b = DATA_WIDTH,
U_altsyncram.widthad_b = ADDR_WIDTH,
// U_altsyncram.numwords_b = 256,
U_altsyncram.lpm_type = "altsyncram",
U_altsyncram.width_byteena_a = 1,
U_altsyncram.width_byteena_b = 1,
U_altsyncram.outdata_reg_a = "UNREGISTERED",
U_altsyncram.outdata_aclr_a = "NONE",
U_altsyncram.outdata_reg_b = "UNREGISTERED",
U_altsyncram.indata_aclr_a = "NONE",
U_altsyncram.wrcontrol_aclr_a = "NONE",
U_altsyncram.address_aclr_a = "NONE",
U_altsyncram.indata_reg_b = "CLOCK1",
U_altsyncram.address_reg_b = "CLOCK1",
U_altsyncram.wrcontrol_wraddress_reg_b = "CLOCK1",
U_altsyncram.indata_aclr_b = "NONE",
U_altsyncram.wrcontrol_aclr_b = "NONE",
U_altsyncram.address_aclr_b = "NONE",
U_altsyncram.outdata_aclr_b = "NONE",
U_altsyncram.power_up_uninitialized = "FALSE";
endmodule
 
 
/trunk/rtl/verilog/TECH/CLK_SWITCH.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
 
//////////////////////////////////////////////////////////////////////
/trunk/rtl/verilog/MAC_top.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
module MAC_top(
//system signals
/trunk/rtl/verilog/MAC_rx/CRC_chk.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module CRC_chk(
Reset ,
114,6 → 117,6
else if (CRC_en)
CRC_reg <=NextCRC(CRC_data,CRC_reg);
 
assign CRC_err = CRC_chk_en&(Next_CRC[31:0] != 32'hc704dd7b);
assign CRC_err = CRC_chk_en&(CRC_reg[31:0] != 32'hc704dd7b);
 
endmodule
/trunk/rtl/verilog/MAC_rx/MAC_rx_ctrl.v
37,8 → 37,10
//////////////////////////////////////////////////////////////////////
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_rx_ctrl (
Reset ,
121,6 → 123,7
parameter State_preamble =4'd01;
parameter State_SFD =4'd02;
parameter State_data =4'd03;
parameter State_checkCRC =4'd04;
parameter State_OkEnd =4'd07;
parameter State_drop =4'd08;
parameter State_ErrEnd =4'd09;
222,18 → 225,21
else
Next_state =State_data;
State_data:
if (!Crs_dv&&!CRC_err&&!Too_short&&!Too_long)
Next_state =State_OkEnd;
if (!Crs_dv&&!Too_short&&!Too_long)
Next_state =State_checkCRC;
else if (!Crs_dv&&(Too_short||Too_long))
Next_state =State_ErrEnd;
else if (!Crs_dv&&CRC_err)
Next_state =State_CRCErrEnd;
else if (Fifo_full)
Next_state =State_FFFullErrEnd;
else if (RxErr||MAC_rx_add_chk_err||Too_long||broadcast_drop)
Next_state =State_drop;
else
Next_state =State_data;
Next_state =State_data;
State_checkCRC:
if (CRC_err)
Next_state =State_CRCErrEnd;
else
Next_state =State_OkEnd;
State_drop:
if (!Crs_dv)
Next_state =State_ErrEnd;
319,7 → 325,7
if (Reset)
Frame_length_counter <=0;
else if (Current_state==State_SFD)
Frame_length_counter <=0;
Frame_length_counter <=1;
else if (Current_state==State_data)
Frame_length_counter <=Frame_length_counter+ 1;
/trunk/rtl/verilog/MAC_rx/MAC_rx_FF.v
38,7 → 38,11
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
//
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_rx_FF (
Reset ,
140,6 → 144,9
reg Packet_number_add_dl1;
reg Packet_number_add_dl2;
reg Packet_number_add ;
reg Packet_number_add_tmp ;
reg Packet_number_add_tmp_dl1;
reg Packet_number_add_tmp_dl2;
 
reg Rx_mac_sop_tmp_dl1;
reg[35:0] Dout_dl1;
309,16 → 316,10
else if (Current_state==State_byte1&&Fifo_data_en_dl1)
Fifo_data_byte1 <=Fifo_data_dl1;
 
always @ (posedge Clk_MAC or posedge Reset)
if (Reset)
Fifo_data_byte0 <=0;
else if (Current_state==State_byte0&&Fifo_data_en_dl1)
Fifo_data_byte0 <=Fifo_data_dl1;
always @ (Current_state or Fifo_data_byte3 or Fifo_data_byte2 or Fifo_data_byte1 or Fifo_data_byte0 )
always @ (Current_state or Fifo_data_byte3 or Fifo_data_byte2 or Fifo_data_byte1 )
case (Current_state)
State_be0:
Din ={4'b1000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_byte0};
Din ={4'b1000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_dl1};
State_be1:
Din ={4'b1001,Fifo_data_byte3,24'h0};
State_be2:
326,7 → 327,7
State_be3:
Din ={4'b1011,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,8'h0};
default:
Din ={4'b0000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_byte0};
Din ={4'b0000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_dl1};
endcase
always @ (Current_state or Fifo_data_en)
339,9 → 340,32
//this signal for read side to handle the packet number in fifo
always @ (posedge Clk_MAC or posedge Reset)
if (Reset)
Packet_number_add <=0;
Packet_number_add_tmp <=0;
else if (Current_state==State_be0||Current_state==State_be1||
Current_state==State_be2||Current_state==State_be3)
Packet_number_add_tmp <=1;
else
Packet_number_add_tmp <=0;
always @ (posedge Clk_MAC or posedge Reset)
if (Reset)
begin
Packet_number_add_tmp_dl1 <=0;
Packet_number_add_tmp_dl2 <=0;
end
else
begin
Packet_number_add_tmp_dl1 <=Packet_number_add_tmp;
Packet_number_add_tmp_dl2 <=Packet_number_add_tmp_dl1;
end
//Packet_number_add delay to Din[35] is needed to make sure the data have been wroten to ram.
//expand to two cycles long almost=16 ns
//if the Clk_SYS period less than 16 ns ,this signal need to expand to 3 or more clock cycles
always @ (posedge Clk_MAC or posedge Reset)
if (Reset)
Packet_number_add <=0;
else if (Packet_number_add_tmp_dl1||Packet_number_add_tmp_dl2)
Packet_number_add <=1;
else
Packet_number_add <=0;
/trunk/rtl/verilog/MAC_rx/MAC_rx_add_chk.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_rx_add_chk (
Reset ,
/trunk/rtl/verilog/MAC_rx/Broadcast_filter.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module Broadcast_filter (
Reset ,
/trunk/rtl/verilog/MAC_tx/flow_ctrl.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module flow_ctrl
(
/trunk/rtl/verilog/MAC_tx/MAC_tx_addr_add.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_tx_addr_add (
Reset ,
/trunk/rtl/verilog/MAC_tx/MAC_tx_Ctrl.v
38,7 → 38,11
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
//
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_tx_ctrl (
Reset ,
242,8 → 246,7
IPLengthCounter <=0;
else if (Current_state==StateSwitchNext)
IPLengthCounter <=0;
else if (IPLengthCounter!=8'hff&&((Current_state==StateData)||
(PADCounter==0&&Current_state==StatePAD)))
else if (IPLengthCounter!=8'hff&&(Current_state==StateData||Current_state==StatePAD))
IPLengthCounter <=IPLengthCounter+1;
 
always @(posedge Clk or posedge Reset)
312,7 → 315,7
Next_state=StateJam;
else if (Fifo_data_err_empty)
Next_state=StateFFEmptyDrop;
else if (Fifo_eop&&IPLengthCounter>=60)//IP+MAC+TYPE=60
else if (Fifo_eop&&IPLengthCounter>=59)//IP+MAC+TYPE=60 ,start from 0
Next_state=StateFCS;
else if (Fifo_eop)
Next_state=StatePAD;
321,7 → 324,7
StatePAD:
if (!FullDuplex&&Collision)
Next_state=StateJam;
else if (IPLengthCounter>=60)
else if (IPLengthCounter>=59)
Next_state=StateFCS;
else
Next_state=Current_state;
472,7 → 475,7
StateSFD:
TxD_tmp =8'hd5;
StateData:
if (Src_MAC_ptr)
if (Src_MAC_ptr&&MAC_tx_add_en)
TxD_tmp =MAC_tx_addr_data;
else
TxD_tmp =Fifo_data;
523,7 → 526,7
if (Reset)
Tx_pkt_length_rmon <=0;
else if (Current_state==StateSFD)
Tx_pkt_length_rmon <=4;
Tx_pkt_length_rmon <=0;
else if (Current_state==StateData)
Tx_pkt_length_rmon <=Tx_pkt_length_rmon+1;
553,7 → 556,7
if (Reset)
MAC_header_slot_tmp <=0;
else if(Current_state==StateSFD&&Next_state==StateData)
MAC_header_slot_tmp <=1;
MAC_header_slot_tmp <=0;
else
MAC_header_slot_tmp <=0;
/trunk/rtl/verilog/MAC_tx/CRC_gen.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module CRC_gen (
Reset ,
/trunk/rtl/verilog/MAC_tx/MAC_tx_FF.v
38,7 → 38,11
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
//
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module MAC_tx_FF (
Reset ,
98,10 → 102,7
parameter MAC_byte2 =4'd01;
parameter MAC_byte1 =4'd02;
parameter MAC_byte0 =4'd03;
parameter MAC_BE0 =4'd04;
parameter MAC_BE3 =4'd05;
parameter MAC_BE2 =4'd06;
parameter MAC_BE1 =4'd07;
parameter MAC_wait_finish =4'd04;
parameter MAC_retry =4'd08;
parameter MAC_idle =4'd09;
parameter MAC_FFEmpty =4'd10;
213,8 → 214,14
else
Next_state_SYS =Current_state_SYS ;
SYS_EOP_ok:
if (Tx_mac_wr&&Tx_mac_sop)
Next_state_SYS =SYS_SOP;
else
Next_state_SYS =SYS_idle;
SYS_EOP_err:
if (Tx_mac_wr&&Tx_mac_sop)
Next_state_SYS =SYS_SOP;
else
Next_state_SYS =SYS_idle;
SYS_SOP_err:
Next_state_SYS =SYS_DROP;
411,7 → 418,7
always @ (posedge Clk_SYS or posedge Reset)
if (Reset)
Fifo_ra_tmp <=0;
else if (Packet_number_inFF_reg>=1||Fifo_data_count>=Tx_Hwmark)
else if (Packet_number_inFF_reg>=1||Fifo_data_count>=Tx_Lwmark)
Fifo_ra_tmp <=1;
else
Fifo_ra_tmp <=0;
499,9 → 506,9
MAC_byte3:
if (Fifo_rd_retry)
Next_state_MAC=MAC_retry;
else if (Fifo_rd_finish)
Next_state_MAC=MAC_pkt_sub;
else if (Fifo_rd)
else if (Fifo_eop)
Next_state_MAC=MAC_wait_finish;
else if (Fifo_rd&&!Fifo_eop)
Next_state_MAC=MAC_byte2;
else
Next_state_MAC=Current_state_MAC;
508,9 → 515,9
MAC_byte2:
if (Fifo_rd_retry)
Next_state_MAC=MAC_retry;
else if (Fifo_rd_finish)
Next_state_MAC=MAC_pkt_sub;
else if (Fifo_rd)
else if (Fifo_eop)
Next_state_MAC=MAC_wait_finish;
else if (Fifo_rd&&!Fifo_eop)
Next_state_MAC=MAC_byte1;
else
Next_state_MAC=Current_state_MAC;
517,25 → 524,30
MAC_byte1:
if (Fifo_rd_retry)
Next_state_MAC=MAC_retry;
else if (Fifo_rd_finish)
Next_state_MAC=MAC_pkt_sub;
else if (Fifo_rd)
else if (Fifo_eop)
Next_state_MAC=MAC_wait_finish;
else if (Fifo_rd&&!Fifo_eop)
Next_state_MAC=MAC_byte0;
else
Next_state_MAC=Current_state_MAC;
MAC_byte0:
if (Empty&&Fifo_rd)
if (Empty&&Fifo_rd&&!Fifo_eop)
Next_state_MAC=MAC_FFEmpty;
else if (Fifo_rd_retry)
Next_state_MAC=MAC_retry;
else if (Fifo_rd_finish)
Next_state_MAC=MAC_pkt_sub;
else if (Fifo_rd)
else if (Fifo_eop)
Next_state_MAC=MAC_wait_finish;
else if (Fifo_rd&&!Fifo_eop)
Next_state_MAC=MAC_byte3;
else
Next_state_MAC=Current_state_MAC;
MAC_retry:
Next_state_MAC=MAC_idle;
MAC_wait_finish:
if (Fifo_rd_finish)
Next_state_MAC=MAC_pkt_sub;
else
Next_state_MAC=Current_state_MAC;
MAC_pkt_sub:
Next_state_MAC=MAC_idle;
MAC_FFEmpty:
682,10 → 694,12
else
Fifo_rd_dl1 <=Fifo_rd;
always @ (Current_state_MAC or Fifo_rd_dl1)
if (Current_state_MAC==MAC_byte0||Current_state_MAC==MAC_byte1||
Current_state_MAC==MAC_byte2||Current_state_MAC==MAC_byte3)
Fifo_da =Fifo_rd_dl1;
always @ (posedge Clk_MAC or posedge Reset)
if (Reset)
Fifo_da <=0;
else if ((Current_state_MAC==MAC_byte0||Current_state_MAC==MAC_byte1||
Current_state_MAC==MAC_byte2||Current_state_MAC==MAC_byte3)&&Fifo_rd&&!Fifo_eop)
Fifo_da <=1;
else
Fifo_da =0;
 
/trunk/rtl/verilog/MAC_tx/Ramdon_gen.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
 
module Ramdon_gen(
Reset ,
/trunk/rtl/verilog/RMON/RMON_addr_gen.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
module RMON_addr_gen(
Clk ,
Reset ,
/trunk/rtl/verilog/RMON/RMON_ctrl.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
module RMON_CTRL (
Clk ,
Reset ,
/trunk/rtl/verilog/miim/eth_shiftreg.v
41,6 → 41,9
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
// Revision 1.2 2005/04/27 15:58:47 Administrator
// no message
//
/trunk/rtl/verilog/miim/eth_outputcontrol.v
41,6 → 41,9
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
// Revision 1.2 2005/04/27 15:58:46 Administrator
// no message
//
/trunk/rtl/verilog/miim/eth_clockgen.v
41,6 → 41,9
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
// Revision 1.2 2005/04/27 15:58:45 Administrator
// no message
//
/trunk/rtl/verilog/miim/timescale.v
41,6 → 41,9
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:45 Administrator
// no message
//
// Revision 1.1.1.1 2004/12/15 06:38:54 Administrator
// no message
//
/trunk/rtl/verilog/MAC_rx.v
38,7 → 38,10
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
module MAC_rx (
input Reset ,
input Clk_user,
/trunk/rtl/verilog/Phy_int.v
38,7 → 38,13
//
// CVS Revision History
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
// Revision 1.2 2005/12/13 12:15:36 Administrator
// no message
//
// Revision 1.1.1.1 2005/12/13 01:51:44 Administrator
// no message
//
 
module Phy_int (
Reset ,
102,6 → 108,7
reg [7:0] MRxD ;
reg Rx_er_dl1 ;
reg Rx_dv_dl1 ;
reg Rx_dv_dl2 ;
reg [7:0] Rxd_dl1 ;
reg [7:0] Rxd_dl2 ;
reg Crs_dl1 ;
147,7 → 154,9
if (Reset)
Tx_en <=0;
else if(MTxEn_dl1)
Tx_en <=MTxEn_dl1;
Tx_en <=1;
else
Tx_en <=0;
 
assign Tx_er=0;
 
160,6 → 169,7
begin
Rx_er_dl1 <=0;
Rx_dv_dl1 <=0;
Rx_dv_dl2 <=0 ;
Rxd_dl1 <=0;
Rxd_dl2 <=0;
Crs_dl1 <=0;
169,6 → 179,7
begin
Rx_er_dl1 <=Rx_er ;
Rx_dv_dl1 <=Rx_dv ;
Rx_dv_dl2 <=Rx_dv_dl1 ;
Rxd_dl1 <=Rxd ;
Rxd_dl2 <=Rxd_dl1 ;
Crs_dl1 <=Crs ;
175,8 → 186,6
Col_dl1 <=Col ;
end
 
assign MRxErr =Rx_er_dl1 ;
assign MCRS =Crs_dl1 ;
 
185,7 → 194,7
MCrs_dv <=0;
else if(Line_loop_en)
MCrs_dv <=Tx_en;
else if(Rx_dv_dl1)
else if(Rx_dv_dl2)
MCrs_dv <=1;
else
MCrs_dv <=0;
203,8 → 212,8
MRxD <=0;
else if(Line_loop_en)
MRxD <=Txd;
else if(Speed[2]&&Rx_dv_dl1)
MRxD <=Rxd_dl1;
else if(Speed[2]&&Rx_dv_dl2)
MRxD <=Rxd_dl2;
else if(Rx_dv_dl1&&Rx_odd_data_ptr)
MRxD <={Rxd_dl1[3:0],Rxd_dl2[3:0]};
/trunk/sim/rtl_sim/ncsim_sim/bin/vlog.list
0,0 → 1,38
../../../../rtl/verilog/TECH/CLK_SWITCH.v
../../../../rtl/verilog/TECH/CLK_DIV2.v
../../../../rtl/verilog/TECH/duram.v
../../../../rtl/verilog/TECH/afifo.v
 
../../../../rtl/verilog/MAC_tx/MAC_tx_FF.v
../../../../rtl/verilog/MAC_tx/Ramdon_gen.v
../../../../rtl/verilog/MAC_tx/CRC_gen.v
../../../../rtl/verilog/MAC_tx/MAC_tx_addr_add.v
../../../../rtl/verilog/MAC_tx/MAC_tx_Ctrl.v
../../../../rtl/verilog/MAC_tx/flow_ctrl.v
 
../../../../rtl/verilog/MAC_rx/CRC_chk.v
../../../../rtl/verilog/MAC_rx/MAC_rx_add_chk.v
../../../../rtl/verilog/MAC_rx/MAC_rx_FF.v
../../../../rtl/verilog/MAC_rx/MAC_rx_ctrl.v
../../../../rtl/verilog/MAC_rx/Broadcast_filter.v
 
../../../../rtl/verilog/miim/eth_clockgen.v
../../../../rtl/verilog/miim/eth_outputcontrol.v
../../../../rtl/verilog/miim/eth_shiftreg.v
 
../../../../rtl/verilog/RMON/RMON_addr_gen.v
../../../../rtl/verilog/RMON/RMON_ctrl.v
../../../../rtl/verilog/RMON/RMON_dpram.v
 
../../../../rtl/verilog/RMON.v
../../../../rtl/verilog/MAC_rx.v
../../../../rtl/verilog/MAC_tx.v
../../../../rtl/verilog/eth_miim.v
../../../../rtl/verilog/MAC_top.v
../../../../rtl/verilog/Phy_int.v
../../../../rtl/verilog/Clk_ctrl.v
 
../../../../bench/verilog/Phy_sim.v
../../../../bench/verilog/User_int_sim.v
../../../../bench/verilog/reg_int_sim.v
../../../../bench/verilog/tb_top.v
/trunk/sim/rtl_sim/ncsim_sim/bin/config.ini
0,0 → 1,3
46,1500,1,0
 
#Pkt_begin_length,Pkt_end_length,Pkt_number,Random_en
/trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_gen_vpi.dll Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_gen_vpi.dll Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/sim/rtl_sim/ncsim_sim/bin/sim.nc =================================================================== --- trunk/sim/rtl_sim/ncsim_sim/bin/sim.nc (nonexistent) +++ trunk/sim/rtl_sim/ncsim_sim/bin/sim.nc (revision 6) @@ -0,0 +1,18 @@ +ncvlog -f vlog.list -logfile ../log/ncvlog.log + +if test $? -ne 0 +then +echo compiling err occured... +exit 1 +fi + +ncelab work.tb_top -loadvpi ip_32W_gen_vpi:PLI_register -loadvpi ip_32W_check_vpi:PLI_register -snapshot work:snap -timescale 1ns/1ps -message -access +rw -logfile ../log/ncelab.log + +if test $? -ne 0 +then +echo ncelab err occured... +exit 1 +fi + +ncsim work:snap $1 -UNBUFFERED -logfile ../log/ncsim.log -NOKEY + Index: trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_check_vpi.dll =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_check_vpi.dll =================================================================== --- trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_check_vpi.dll (nonexistent) +++ trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_check_vpi.dll (revision 6)
trunk/sim/rtl_sim/ncsim_sim/bin/ip_32W_check_vpi.dll Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/sim/rtl_sim/ncsim_sim/bin/cds.lib =================================================================== --- trunk/sim/rtl_sim/ncsim_sim/bin/cds.lib (nonexistent) +++ trunk/sim/rtl_sim/ncsim_sim/bin/cds.lib (revision 6) @@ -0,0 +1,2 @@ +DEFINE work ./worknc +INCLUDE /root/home/lib/cds.lib Index: trunk/sim/rtl_sim/ncsim_sim/bin/hdl.var =================================================================== --- trunk/sim/rtl_sim/ncsim_sim/bin/hdl.var (nonexistent) +++ trunk/sim/rtl_sim/ncsim_sim/bin/hdl.var (revision 6) @@ -0,0 +1 @@ +DEFINE WORK work Index: trunk/syn/syn.prj =================================================================== --- trunk/syn/syn.prj (nonexistent) +++ trunk/syn/syn.prj (revision 6) @@ -0,0 +1,88 @@ +#-- Synplicity, Inc. +#-- Version Synplify Pro 8.1 +#-- Project file D:\root\home\primitive\primitive_tri_mode_mac(NA)\syn\syn.prj +#-- Written on Mon Dec 05 14:10:50 2005 + + +#add_file options +add_file -verilog "../rtl/verilog/MAC_tx/MAC_tx_FF.v" +add_file -verilog "../rtl/verilog/MAC_tx/Ramdon_gen.v" +add_file -verilog "../rtl/verilog/MAC_tx/CRC_gen.v" +add_file -verilog "../rtl/verilog/MAC_tx/MAC_tx_addr_add.v" +add_file -verilog "../rtl/verilog/MAC_tx/MAC_tx_Ctrl.v" +add_file -verilog "../rtl/verilog/MAC_tx/flow_ctrl.v" +add_file -verilog "../rtl/verilog/MAC_rx/CRC_chk.v" +add_file -verilog "../rtl/verilog/MAC_rx/MAC_rx_add_chk.v" +add_file -verilog "../rtl/verilog/MAC_rx/MAC_rx_FF.v" +add_file -verilog "../rtl/verilog/MAC_rx/MAC_rx_ctrl.v" +add_file -verilog "../rtl/verilog/RMON/RMON_addr_gen.v" +add_file -verilog "../rtl/verilog/RMON/RMON_ctrl.v" +add_file -verilog "../rtl/verilog/RMON/RMON_dpram.v" +add_file -verilog "../rtl/verilog/MAC_rx/Broadcast_filter.v" +add_file -verilog "../cores/afifo.v" +add_file -verilog "../cores/duram.v" +add_file -verilog "../rtl/verilog/RMON.v" +add_file -verilog "../rtl/verilog/MAC_rx.v" +add_file -verilog "../rtl/verilog/MAC_tx.v" +add_file -verilog "../rtl/verilog/miim/eth_clockgen.v" +add_file -verilog "../rtl/verilog/miim/eth_outputcontrol.v" +add_file -verilog "../rtl/verilog/miim/eth_shiftreg.v" +add_file -verilog "../rtl/verilog/miim/timescale.v" +add_file -verilog "../rtl/verilog/TECH/CLK_SWITCH.v" +add_file -verilog "../rtl/verilog/TECH/CLK_DIV2.v" +add_file -verilog "../rtl/verilog/eth_miim.v" +add_file -verilog "../rtl/verilog/Clk_ctrl.v" +add_file -verilog "../rtl/verilog/Phy_int.v" +add_file -verilog "../rtl/verilog/MAC_top.v" + + +#implementation: "syn" +impl -add syn + +#device options +set_option -technology STRATIX +set_option -part EP1S10 +set_option -package FC780 +set_option -speed_grade -5 + +#compilation/mapping options +set_option -default_enum_encoding onehot +set_option -symbolic_fsm_compiler 0 +set_option -resource_sharing 1 +set_option -use_fsm_explorer 0 + +#map options +set_option -frequency auto +set_option -run_prop_extract 0 +set_option -fanout_limit 500 +set_option -disable_io_insertion 0 +set_option -pipe 1 +set_option -update_models_cp 0 +set_option -retiming 0 +set_option -verification_mode 0 +set_option -fixgatedclocks 0 +set_option -no_sequential_opt 0 + +#simulation options +set_option -write_verilog 1 +set_option -write_vhdl 0 + +#VIF options +set_option -write_vif 0 + +#automatic place and route (vendor) options +set_option -write_apr_constraint 0 + +#set result format/file last +project -result_file "./MAC_top.vqm" + +# +#implementation attributes + +set_option -vlog_std v2001 +set_option -project_relative_includes 1 + +#par_1 attributes +set_option -job par_1 -add par +set_option -job par_1 -option run_backannotation 0 +impl -active "syn"

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.