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

Subversion Repositories ha1588

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /ha1588
    from Rev 23 to Rev 24
    Reverse comparison

Rev 23 → Rev 24

/trunk/rtl/reg/reg.v
150,8 → 150,8
reg [31:0] data_out_reg;
always @(posedge clk) begin
if (rd_in && cs_00) data_out_reg <= {reg_00[31:1], time_ok};
if (rd_in && cs_04) data_out_reg <= {8'd0, rx_q_stat_int[ 7: 0], 8'd0, tx_q_stat_int[ 7: 0]};
if (rd_in && cs_08) data_out_reg <= reg_08;
if (rd_in && cs_04) data_out_reg <= {24'd0, rx_q_stat_int[ 7: 0]};
if (rd_in && cs_08) data_out_reg <= {24'd0, tx_q_stat_int[ 7: 0]};
if (rd_in && cs_0c) data_out_reg <= reg_0c;
if (rd_in && cs_10) data_out_reg <= reg_10;
if (rd_in && cs_14) data_out_reg <= reg_14;
/trunk/sim/top/sim.sh
1,8 → 1,15
quit -sim
 
vlib altera
vdel -lib altera -all
vlib work
vdel -lib work -all
 
vlib altera
# compile vendor dependent files
vlog -work altera altera_mf.v
 
vlib work
 
# compile vendor independent files
vlog -work work ../../rtl/top/ha1588.v +initreg+0
vlog -work work ../../rtl/reg/reg.v +initreg+0
11,13 → 18,14
vlog -work work ../../rtl/tsu/ptp_queue.v +initreg+0
vlog -work work ../../rtl/tsu/ptp_parser.v +initreg+0
 
# compile vendor dependent files
vlog -work work altera_mf.v
 
# compile testbench files
vlog -work work -sv ha1588_tb.v
 
# compile driver bfm files
# compile nic driver bfm files
vlog -work work -sv nic_drv_bfm/gmii_rx_bfm.v
vlog -work work -sv nic_drv_bfm/gmii_tx_bfm.v
 
# compile ptp driver bfm files
vlog -work work -sv ptp_drv_bfm/ptp_drv_bfm.v
 
# compile driver bfm files
32,6 → 40,7
gcc -shared -Bsymbolic -o ptp_drv_bfm_c.so ptp_drv_bfm.o
 
vsim -novopt \
-L altera \
-sv_lib ptp_drv_bfm_c \
-t ps \
ha1588_tb
40,4 → 49,4
radix -hexadecimal
do wave.do
 
run 10000ns
run 50000ns
/trunk/sim/top/ptp_drv_bfm/ptp_drv_bfm.c
32,7 → 32,7
cpu_data_i = 0x0;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_addr_i = 0x00000000;
cpu_data_i = 0x10;
cpu_data_i = 0xA10;
cpu_wr(cpu_addr_i, cpu_data_i);
// LOAD RTC SEC AND NS
cpu_addr_i = 0x00000010;
76,7 → 76,11
cpu_addr_i = 0x00000000;
cpu_data_i = 0x1;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_rd(cpu_addr_i, &cpu_data_o);
do {
cpu_addr_i = 0x00000000;
cpu_rd(cpu_addr_i, &cpu_data_o);
//printf("%08x\n", (cpu_data_o & 0x1));
} while ((cpu_data_o & 0x1) == 0x0);
cpu_addr_i = 0X00000040;
cpu_rd(cpu_addr_i, &cpu_data_o);
cpu_addr_i = 0X00000044;
92,7 → 96,11
cpu_addr_i = 0x00000000;
cpu_data_i = 0x1;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_rd(cpu_addr_i, &cpu_data_o);
do {
cpu_addr_i = 0x00000000;
cpu_rd(cpu_addr_i, &cpu_data_o);
//printf("%08x\n", (cpu_data_o & 0x1));
} while ((cpu_data_o & 0x1) == 0x0);
cpu_addr_i = 0X00000040;
cpu_rd(cpu_addr_i, &cpu_data_o);
cpu_addr_i = 0X00000044;
102,6 → 110,50
cpu_addr_i = 0X0000004C;
cpu_rd(cpu_addr_i, &cpu_data_o);
 
int i;
// POLL TSU RX STATUS
int rx_queue_num;
do {
cpu_addr_i = 0x00000004;
cpu_rd(cpu_addr_i, &cpu_data_o);
rx_queue_num = cpu_data_o;
//printf("%08x\n", rx_queue_num);
} while (!(rx_queue_num > 0x2));
// READ TSU RX FIFO
for (i=rx_queue_num; i>=0; i--) {
cpu_addr_i = 0x00000000;
cpu_data_i = 0x0;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_addr_i = 0x00000000;
cpu_data_i = 0x400;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_addr_i = 0x00000050;
cpu_rd(cpu_addr_i, &cpu_data_o);
cpu_addr_i = 0x00000054;
cpu_rd(cpu_addr_i, &cpu_data_o);
}
// POLL TSU TX STATUS
int tx_queue_num;
do {
cpu_addr_i = 0x00000008;
cpu_rd(cpu_addr_i, &cpu_data_o);
tx_queue_num = cpu_data_o;
//printf("%08x\n", tx_queue_num);
} while (!(tx_queue_num > 0x2));
// READ TSU TX FIFO
for (i=tx_queue_num; i>=0; i--) {
cpu_addr_i = 0x00000000;
cpu_data_i = 0x0;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_addr_i = 0x00000000;
cpu_data_i = 0x100;
cpu_wr(cpu_addr_i, cpu_data_i);
cpu_addr_i = 0x00000058;
cpu_rd(cpu_addr_i, &cpu_data_o);
cpu_addr_i = 0x0000005C;
cpu_rd(cpu_addr_i, &cpu_data_o);
}
 
// READ BACK ALL REGISTERS
for (;;)
{
108,10 → 160,10
int t;
for (t=0; t<=0x5c; t=t+4)
{
cpu_hd(10);
 
cpu_addr_i = t;
cpu_rd(cpu_addr_i, &cpu_data_o);
 
cpu_hd(10);
}
}
 
/trunk/sim/top/ptp_drv_bfm/ptp_drv_bfm.v
46,6 → 46,7
up_addr_o = addr;
up_rd_o = 1'b0;
for (i=0; i<2; i=i+1) @(posedge up_clk);
data = up_data_rd;
//$display("rd %08x %08x", addr, data);
endtask
 
/trunk/sim/top/wave.do
1,52 → 1,67
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/up_clk
add wave -noupdate -format Logic /ha1588_tb/up_wr
add wave -noupdate -format Logic /ha1588_tb/up_rd
add wave -noupdate -format Literal /ha1588_tb/up_addr
add wave -noupdate -format Literal /ha1588_tb/up_data_wr
add wave -noupdate -format Literal /ha1588_tb/up_data_rd
add wave -noupdate -format Logic /ha1588_tb/rtc_clk
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/addr_in
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/wr_in
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/rd_in
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/data_in
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/cs_00
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/reg_00
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/data_out_reg
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/period_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/rtc_rst_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/adj_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_rd_req
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_rd_ack
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_ok
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_reg_ns
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rtc/time_acc_48s_inc
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_reg_sec
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rtc/adj_ld
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/adj_cnt
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_adj
add wave -noupdate -divider {New Divider}
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {1082162 ps} 0}
configure wave -namecolwidth 333
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {0 ps} {10500 ns}
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/up_clk
add wave -noupdate -format Logic /ha1588_tb/up_wr
add wave -noupdate -format Logic /ha1588_tb/up_rd
add wave -noupdate -format Literal /ha1588_tb/up_addr
add wave -noupdate -format Literal /ha1588_tb/up_data_wr
add wave -noupdate -format Literal /ha1588_tb/up_data_rd
add wave -noupdate -format Logic /ha1588_tb/rtc_clk
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/addr_in
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/wr_in
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/rd_in
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/data_in
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/cs_00
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/reg_00
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rgs/data_out_reg
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/period_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/rtc_rst_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/adj_ld_out
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_rd_req
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_rd_ack
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rgs/time_ok
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_reg_ns
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rtc/time_acc_48s_inc
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_reg_sec
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rtc/rst
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rtc/adj_ld
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/adj_cnt
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rtc/time_adj
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rx_tsu/rst
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rx_tsu/q_rst
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_rx_tsu/ptp_found
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rx_tsu/ptp_infor
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_rx_tsu/q_rdusedw
add wave -noupdate -format Literal -radix unsigned /ha1588_tb/NIC_DRV_RX_BFM/num_rx
add wave -noupdate -divider {New Divider}
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_tx_tsu/rst
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_tx_tsu/q_rst
add wave -noupdate -format Logic /ha1588_tb/PTP_HA_DUT/u_tx_tsu/ptp_found
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_tx_tsu/ptp_infor
add wave -noupdate -format Literal /ha1588_tb/PTP_HA_DUT/u_tx_tsu/q_rdusedw
add wave -noupdate -format Literal -radix unsigned /ha1588_tb/NIC_DRV_TX_BFM/num_tx
add wave -noupdate -divider {New Divider}
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {3718000 ps} 0}
configure wave -namecolwidth 333
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {0 ps} {2026775 ps}
/trunk/sim/top/ha1588_tb.v
23,6 → 23,25
#10 rst = 1'b0;
end
 
wire rx_gmii_clk;
wire rx_gmii_ctrl;
wire [ 7:0] rx_gmii_data;
wire tx_gmii_clk;
wire tx_gmii_ctrl;
wire [ 7:0] tx_gmii_data;
 
gmii_rx_bfm NIC_DRV_RX_BFM (
.gmii_rxclk(rx_gmii_clk),
.gmii_rxctrl(rx_gmii_ctrl),
.gmii_rxdata(rx_gmii_data)
);
 
gmii_tx_bfm NIC_DRV_TX_BFM (
.gmii_txclk(tx_gmii_clk),
.gmii_txctrl(tx_gmii_ctrl),
.gmii_txdata(tx_gmii_data)
);
 
ptp_drv_bfm_sv PTP_DRV_BFM (
.up_clk(up_clk),
.up_wr(up_wr),
32,7 → 51,7
.up_data_rd(up_data_rd)
);
 
ha1588 PTP_HA_DUT(
ha1588 PTP_HA_DUT (
.rst(rst),
.clk(up_clk),
.wr_in(up_wr),
43,12 → 62,12
 
.rtc_clk(rtc_clk),
 
.rx_gmii_clk(),
.rx_gmii_ctrl(),
.rx_gmii_data(),
.tx_gmii_clk(),
.tx_gmii_ctrl(),
.tx_gmii_data()
.rx_gmii_clk(rx_gmii_clk),
.rx_gmii_ctrl(rx_gmii_ctrl),
.rx_gmii_data(rx_gmii_data),
.tx_gmii_clk(tx_gmii_clk),
.tx_gmii_ctrl(tx_gmii_ctrl),
.tx_gmii_data(tx_gmii_data)
);
 
initial begin
/trunk/sim/top/nic_drv_bfm/gmii_rx_bfm.v
0,0 → 1,110
`timescale 1ns/1ns
 
module gmii_rx_bfm
(
output gmii_rxclk,
output reg gmii_rxctrl,
output reg [7:0] gmii_rxdata
);
 
reg gmii_rxclk_offset;
initial begin
gmii_rxclk_offset = 1'b0;
forever #4 gmii_rxclk_offset = !gmii_rxclk_offset;
end
assign #2 gmii_rxclk = gmii_rxclk_offset;
 
integer feeder_file_rx, r_rx;
integer start_addr_rx, end_addr_rx;
integer index_rx, num_rx;
reg eof_rx;
reg pcap_endian_rx;
reg [31:0] pcap_4bytes_rx;
reg [31:0] packet_leng_rx;
reg [ 7:0] packet_byte_rx;
initial
begin : feeder_rx
gmii_rxctrl = 1'b0;
gmii_rxdata = 4'd0;
#100;
feeder_file_rx = $fopen("nic_drv_bfm/ptpdv2_rx.pcap","rb");
if (feeder_file_rx == 0)
begin
$display("Failed to open ptpdv2_rx.pcap!");
disable feeder_rx;
end
else
begin
// test pcap file endian
r_rx = $fread(pcap_4bytes_rx, feeder_file_rx);
pcap_endian_rx = (pcap_4bytes_rx == 32'ha1b2c3d4)? 1:0;
$fseek(feeder_file_rx, -4, 1);
// skip pcap file header 24*8
$fseek(feeder_file_rx, 24, 1);
// read packet content
eof_rx = 0;
num_rx = 0;
while (!eof_rx & !$feof(feeder_file_rx))
begin : fileread_loop
// skip frame header (8+4)*8
start_addr_rx = $ftell(feeder_file_rx);
$fseek(feeder_file_rx, 8+4, 1);
// get frame length big endian 4*8
r_rx = $fread(packet_leng_rx, feeder_file_rx);
packet_leng_rx = pcap_endian_rx?
{packet_leng_rx[31:24], packet_leng_rx[23:16], packet_leng_rx[15: 8], packet_leng_rx[ 7: 0]}:
{packet_leng_rx[ 7: 0], packet_leng_rx[15: 8], packet_leng_rx[23:16], packet_leng_rx[31:24]};
// check whether end of file
if (r_rx == 0)
begin
eof_rx = 1;
@(posedge gmii_rxclk_offset);
gmii_rxctrl = 1'b0;
gmii_rxdata = 8'h00;
disable fileread_loop;
end
// send ifg 96bit=12*8
repeat (12)
begin
@(posedge gmii_rxclk_offset)
gmii_rxctrl = 1'b0;
gmii_rxdata = 8'h00;
end
// send frame preamble and sfd 5555555d=4*8
repeat (3)
begin
@(posedge gmii_rxclk_offset);
gmii_rxctrl = 1'b1;
gmii_rxdata = 8'h55;
end
@(posedge gmii_rxclk_offset)
gmii_rxctrl = 1'b1;
gmii_rxdata = 8'h5d;
// send frame content
for (index_rx=0; index_rx<packet_leng_rx; index_rx=index_rx+1)
begin
r_rx = $fread(packet_byte_rx, feeder_file_rx);
@(posedge gmii_rxclk_offset);
gmii_rxctrl = 1'b1;
gmii_rxdata = packet_byte_rx;
// check whether end of file
if (r_rx == 0)
begin
eof_rx = 1;
@(posedge gmii_rxclk_offset);
gmii_rxctrl = 1'b0;
gmii_rxdata = 8'h00;
disable fileread_loop;
end
end
end_addr_rx = $ftell(feeder_file_rx);
num_rx = num_rx + 1;
end
$fclose(feeder_file_rx);
gmii_rxctrl = 1'b0;
gmii_rxdata = 8'h00;
end
end
 
 
endmodule
/trunk/sim/top/nic_drv_bfm/gmii_tx_bfm.v
0,0 → 1,110
`timescale 1ns/1ns
 
module gmii_tx_bfm
(
output gmii_txclk,
output reg gmii_txctrl,
output reg [7:0] gmii_txdata
);
 
reg gmii_txclk_offset;
initial begin
gmii_txclk_offset = 1'b0;
forever #4 gmii_txclk_offset = !gmii_txclk_offset;
end
assign #2 gmii_txclk = gmii_txclk_offset;
 
integer feeder_file_tx, r_tx;
integer start_addr_tx, end_addr_tx;
integer index_tx, num_tx;
reg eof_tx;
reg pcap_endian_tx;
reg [31:0] pcap_4bytes_tx;
reg [31:0] packet_leng_tx;
reg [ 7:0] packet_byte_tx;
initial
begin : feeder_tx
gmii_txctrl = 1'b0;
gmii_txdata = 4'd0;
#100;
feeder_file_tx = $fopen("nic_drv_bfm/ptpdv2_tx.pcap","rb");
if (feeder_file_tx == 0)
begin
$display("Failed to open ptpdv2_tx.pcap!");
disable feeder_tx;
end
else
begin
// test pcap file endian
r_tx = $fread(pcap_4bytes_tx, feeder_file_tx);
pcap_endian_tx = (pcap_4bytes_tx == 32'ha1b2c3d4)? 1:0;
$fseek(feeder_file_tx, -4, 1);
// skip pcap file header 24*8
$fseek(feeder_file_tx, 24, 1);
// read packet content
eof_tx = 0;
num_tx = 0;
while (!eof_tx & !$feof(feeder_file_tx))
begin : fileread_loop
// skip frame header (8+4)*8
start_addr_tx = $ftell(feeder_file_tx);
$fseek(feeder_file_tx, 8+4, 1);
// get frame length big endian 4*8
r_tx = $fread(packet_leng_tx, feeder_file_tx);
packet_leng_tx = pcap_endian_tx?
{packet_leng_tx[31:24], packet_leng_tx[23:16], packet_leng_tx[15: 8], packet_leng_tx[ 7: 0]}:
{packet_leng_tx[ 7: 0], packet_leng_tx[15: 8], packet_leng_tx[23:16], packet_leng_tx[31:24]};
// check whether end of file
if (r_tx == 0)
begin
eof_tx = 1;
@(posedge gmii_txclk_offset);
gmii_txctrl = 1'b0;
gmii_txdata = 8'h00;
disable fileread_loop;
end
// send ifg 96bit=12*8
repeat (12)
begin
@(posedge gmii_txclk_offset)
gmii_txctrl = 1'b0;
gmii_txdata = 8'h00;
end
// send frame preamble and sfd 5555555d=4*8
repeat (3)
begin
@(posedge gmii_txclk_offset);
gmii_txctrl = 1'b1;
gmii_txdata = 8'h55;
end
@(posedge gmii_txclk_offset)
gmii_txctrl = 1'b1;
gmii_txdata = 8'h5d;
// send frame content
for (index_tx=0; index_tx<packet_leng_tx; index_tx=index_tx+1)
begin
r_tx = $fread(packet_byte_tx, feeder_file_tx);
@(posedge gmii_txclk_offset);
gmii_txctrl = 1'b1;
gmii_txdata = packet_byte_tx;
// check whether end of file
if (r_tx == 0)
begin
eof_tx = 1;
@(posedge gmii_txclk_offset);
gmii_txctrl = 1'b0;
gmii_txdata = 8'h00;
disable fileread_loop;
end
end
end_addr_tx = $ftell(feeder_file_tx);
num_tx = num_tx + 1;
end
$fclose(feeder_file_tx);
gmii_txctrl = 1'b0;
gmii_txdata = 8'h00;
end
end
 
 
endmodule
/trunk/sim/top/nic_drv_bfm/ptpdv2_rx.pcap Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
trunk/sim/top/nic_drv_bfm/ptpdv2_rx.pcap Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/sim/top/nic_drv_bfm/ptpdv2_tx.pcap =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/sim/top/nic_drv_bfm/ptpdv2_tx.pcap =================================================================== --- trunk/sim/top/nic_drv_bfm/ptpdv2_tx.pcap (nonexistent) +++ trunk/sim/top/nic_drv_bfm/ptpdv2_tx.pcap (revision 24)
trunk/sim/top/nic_drv_bfm/ptpdv2_tx.pcap Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/sim/top/sim.do =================================================================== --- trunk/sim/top/sim.do (revision 23) +++ trunk/sim/top/sim.do (revision 24) @@ -1,8 +1,15 @@ quit -sim + +vlib altera +vdel -lib altera -all vlib work vdel -lib work -all + +vlib altera +# compile vendor dependent files +vlog -work altera altera_mf.v + vlib work - # compile vendor independent files vlog -work work ../../rtl/top/ha1588.v +initreg+0 vlog -work work ../../rtl/reg/reg.v +initreg+0 @@ -11,13 +18,14 @@ vlog -work work ../../rtl/tsu/ptp_queue.v +initreg+0 vlog -work work ../../rtl/tsu/ptp_parser.v +initreg+0 -# compile vendor dependent files -vlog -work work altera_mf.v - # compile testbench files vlog -work work -sv ha1588_tb.v -# compile driver bfm files +# compile nic driver bfm files +vlog -work work -sv nic_drv_bfm/gmii_rx_bfm.v +vlog -work work -sv nic_drv_bfm/gmii_tx_bfm.v + +# compile ptp driver bfm files vlog -work work -sv ptp_drv_bfm/ptp_drv_bfm.v # compile driver bfm files @@ -33,6 +41,7 @@ ptp_drv_bfm_sv.obj -L $::env(MODEL_TECH) -lmtipli vsim -novopt \ + -L altera \ -sv_lib ptp_drv_bfm_c \ -t ps \ ha1588_tb @@ -41,4 +50,4 @@ radix -hexadecimal do wave.do -run 10000ns +run 50000ns

powered by: WebSVN 2.1.0

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