diff --git a/lib/emac/sim/tb_emac_jb.wdo b/lib/emac/sim/tb_emac_jb.wdo index 3fbf4f3..c921768 100644 --- a/lib/emac/sim/tb_emac_jb.wdo +++ b/lib/emac/sim/tb_emac_jb.wdo @@ -16,18 +16,143 @@ add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/dat_o add wave -noupdate -format Logic /tb_emac_jb/mii_rx_clk add wave -noupdate -format Logic /tb_emac_jb/mii_tx_clk add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/mii_rx -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/mii_tx add wave -noupdate -format Logic /tb_emac_jb/mii_rx_dv add wave -noupdate -format Logic /tb_emac_jb/mii_rx_er +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/mii_tx add wave -noupdate -format Logic /tb_emac_jb/mii_tx_en add wave -noupdate -format Logic /tb_emac_jb/mii_tx_er add wave -noupdate -format Logic /tb_emac_jb/mii_crs add wave -noupdate -format Logic /tb_emac_jb/mii_col add wave -noupdate -format Logic /tb_emac_jb/mii_gtx_clk +add wave -noupdate -divider {Ethernet MAC} +add wave -noupdate -format Logic /tb_emac_jb/clk +add wave -noupdate -format Literal /tb_emac_jb/emac_action +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_err +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_flush_en +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_flush_rdy +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_free_en +add wave -noupdate -format Literal -radix unsigned /tb_emac_jb/inst_emac_jb/tx_nwords_free +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_flush_ptr +add wave -noupdate -format Logic /tb_emac_jb/clk +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_fill_size +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fill_cnt_set +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fill_cnt_adv +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_fill_cnt +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fill_ptr_set +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fill_ptr_adv +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_fill_ptr +add wave -noupdate -format Logic /tb_emac_jb/clk +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_alloc_base +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_alloc_size +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_alloc_ok +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_alloc_req_en +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_commit_en +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_alloc_req +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_alloc_ack +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_ram_en_a +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_ram_en_b +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/host_tx_s +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_tag_out_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_data_out_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_tag_in_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_data_in_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_addr_b +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_ram_we_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_tag_out_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_data_out_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_tag_in_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_data_in_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_ram_addr_a +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_ram_we_a +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_free_en +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_ptr_set +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_ptr_adv +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_xfer_ptr +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_cnt_set +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_cnt_adv +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_xfer_cnt +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_rdy +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_xfer_en +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_data_vld +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/xfer_tag +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/xfer_remain +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/xfer_odd +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/xfer_remain_en +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/xfer_tx_s +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/piso_din_be +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/piso_din_rdy +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_xfer_size +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fifo_we +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fifo_full +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_fifo_din +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fifo_empty add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/tx_fifo_re add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/tx_fifo_dout +add wave -noupdate -format Logic /tb_emac_jb/mii_tx_clk +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/host_tx_size +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/host_data_we +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_emac_jb/host_data_reg +add wave -noupdate -format Literal /tb_emac_jb/inst_emac_jb/inter_frame_gap_cnt +add wave -noupdate -format Logic /tb_emac_jb/inst_emac_jb/inter_frame_gap_rdy +add wave -noupdate -divider Shifter +add wave -noupdate -format Logic /tb_emac_jb/clk +add wave -noupdate -format Literal /tb_emac_jb/shift_sa +add wave -noupdate -format Logic /tb_emac_jb/shift_din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/shift_din +add wave -noupdate -format Logic /tb_emac_jb/shift_dout_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/shift_dout +add wave -noupdate -divider PiSo +add wave -noupdate -format Logic /tb_emac_jb/clk +add wave -noupdate -format Logic /tb_emac_jb/piso_din_vld +add wave -noupdate -format Logic /tb_emac_jb/piso_din_rdy +add wave -noupdate -format Literal /tb_emac_jb/piso_din_be +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/piso_din +add wave -noupdate -format Logic /tb_emac_jb/piso_dout_en +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/piso_dout +add wave -noupdate -format Logic /tb_emac_jb/inst_piso/pre_fin +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_piso/din_reg +add wave -noupdate -format Literal /tb_emac_jb/inst_piso/din_be_reg +add wave -noupdate -format Logic /tb_emac_jb/inst_piso/din_vld_reg +add wave -noupdate -format Literal /tb_emac_jb/inst_piso/shift_cnt_pipe +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_piso/shift_pipe +add wave -noupdate -format Literal /tb_emac_jb/inst_piso/vld_pipe +add wave -noupdate -format Logic /tb_emac_jb/piso2_din_vld +add wave -noupdate -format Logic /tb_emac_jb/piso2_din_rdy +add wave -noupdate -format Literal /tb_emac_jb/piso2_din_be +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/piso2_din +add wave -noupdate -format Logic /tb_emac_jb/piso2_dout_en +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/piso2_dout +add wave -noupdate -format Logic /tb_emac_jb/piso2_enable +add wave -noupdate -format Logic /tb_emac_jb/inst_piso2/pre_fin +add wave -noupdate -format Logic /tb_emac_jb/inst_piso2/rdy +add wave -noupdate -format Literal /tb_emac_jb/inst_piso2/shift_cnt_pipe +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_piso2/shift_pipe +add wave -noupdate -format Literal /tb_emac_jb/inst_piso2/vld_pipe +add wave -noupdate -divider SiPo +add wave -noupdate -format Logic /tb_emac_jb/inst_sipo/clk +add wave -noupdate -format Logic /tb_emac_jb/sipo_enable +add wave -noupdate -format Logic /tb_emac_jb/sipo_din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/sipo_din +add wave -noupdate -format Logic /tb_emac_jb/sipo_dout_en +add wave -noupdate -format Logic /tb_emac_jb/sipo_dout_vld +add wave -noupdate -format Literal /tb_emac_jb/sipo_dout_be +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/sipo_dout +add wave -noupdate -format Logic /tb_emac_jb/inst_sipo/pre_fin +add wave -noupdate -format Logic /tb_emac_jb/inst_sipo/abort +add wave -noupdate -format Literal /tb_emac_jb/inst_sipo/shift_cnt_pipe +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_sipo/shift_pipe +add wave -noupdate -format Logic /tb_emac_jb/sipo2_enable +add wave -noupdate -format Logic /tb_emac_jb/sipo2_rst +add wave -noupdate -format Logic /tb_emac_jb/sipo2_din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/sipo2_din +add wave -noupdate -format Logic /tb_emac_jb/sipo2_dout_en +add wave -noupdate -format Logic /tb_emac_jb/sipo2_dout_vld +add wave -noupdate -format Literal /tb_emac_jb/sipo2_dout_be +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/sipo2_dout +add wave -noupdate -format Literal /tb_emac_jb/inst_sipo2/shift_cnt_pipe +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_jb/inst_sipo2/shift_pipe TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {12999093 ps} 0} +WaveRestoreCursors {{Cursor 1} {19622640 ps} 0} {{Cursor 2} {121551751 ps} 0} configure wave -namecolwidth 150 configure wave -valuecolwidth 100 configure wave -justifyvalue left diff --git a/lib/emac/sim/tb_emac_top_jb.wdo b/lib/emac/sim/tb_emac_top_jb.wdo index d8385f8..182d5b0 100644 --- a/lib/emac/sim/tb_emac_top_jb.wdo +++ b/lib/emac/sim/tb_emac_top_jb.wdo @@ -27,125 +27,170 @@ add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/mii_crs add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/mii_col add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/dat_o_reg add wave -noupdate -format Literal /tb_emac_top_jb/emac_action +add wave -noupdate -format Logic /tb_emac_top_jb/dat_o_cnt_rst +add wave -noupdate -format Literal /tb_emac_top_jb/dat_o_cnt +add wave -noupdate -format Literal /tb_emac_top_jb/pkt_count +add wave -noupdate -divider {Packet generator} +add wave -noupdate -format Literal /tb_emac_top_jb/inst_pkt_gen/tx_packets +add wave -noupdate -format Literal /tb_emac_top_jb/inst_pkt_gen/tx_bytes +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_pkt_gen/pkt_data +add wave -noupdate -format Literal -radix unsigned /tb_emac_top_jb/inst_pkt_gen/pkt_nbytes +add wave -noupdate -format Literal -radix unsigned /tb_emac_top_jb/inst_pkt_gen/pkt_nwords +add wave -noupdate -format Literal /tb_emac_top_jb/inst_pkt_gen/pkt_delay add wave -noupdate -divider RX add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/clk add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/rst -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_s -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/host_s +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/dout_vld add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/dout -add wave -noupdate -format Literal -radix hexadecimal -expand /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ctrl_in +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ctrl_in add wave -noupdate -format Literal -radix hexadecimal -expand /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ctrl_out -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/mii_rx_clk -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_full -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_we +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_rx_clk +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_rx_dv +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_rx_er +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_rx +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_crs +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_col add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_din -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/clk -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_empty -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_re add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_dout +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_we +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_re +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_empty +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mii_fifo_full add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_din add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_dout add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_we add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_re add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_empty add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/cmd_fifo_full -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/flush_en add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/fill_ptr -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/fill_ptr_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/fill_ptr_adv +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/commit_en +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_ram_limit add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_ram_full add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_base add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_size add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_ptr -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_cnt add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_ptr_set add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_ptr_adv add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_cnt_set add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_cnt_adv add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_rdy -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_tag -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_remain -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_odd -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_remain_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_en_a +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_we_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_addr_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_din_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_dout_a +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_en_b +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_we_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_addr_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_din_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_dout +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_dout_be +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_dout_vld +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_dout_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_32bit_rst +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_dout +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_rst +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_dout_vld +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_dout_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/byte_count_en add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/byte_count add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/byte_count_reg add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_reg -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_clr -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_ack -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_vld -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/uncommit_en -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_dout -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_dout_be -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_dout_vld -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/mii_rx_dv -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_we_b -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_addr_b -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_we_a -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/ram_addr_a +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/word_count_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_full +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_empty +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_we +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_re +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_din +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/size_fifo_dout +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/host_s +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/xfer_s +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/stream_s +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/preamble_rst +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/preamble_bsy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/preamble_ok +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/preamble_rdy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_rdy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_ok +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_rst +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_num_ok +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_addr +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_dout_vld +add wave -noupdate -format Literal -radix unsigned /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/mac_chk_cnt +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_rx/sipo_8bit_dout add wave -noupdate -divider TX add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/clk add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/rst +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/din add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ctrl_in add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ctrl_out -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_din -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_dout -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_we -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_re -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_empty -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_full +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_tx_clk +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_tx_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_tx_er +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_tx add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_din add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_dout add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_we add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_re add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_empty add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/cmd_fifo_full -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/flush_en -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/commit_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_pre_rdy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_bsy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_set +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_cnt_en +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_base add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_size add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_cnt add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_ptr -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_we_a -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_addr_a -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_rdy -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_cnt_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_cnt_adv -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_ptr_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_ptr_adv +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_remain add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/alloc_ok add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/alloc_req add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/alloc_ack add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/nwords_free -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_base add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/alloc_size -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/alloc_en -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/free_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mem_alloc_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mem_free_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/commit_en add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/uncommit_en -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/fill_remain +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_bsy add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_size add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_ptr add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_cnt -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_ptr_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_ptr_adv -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_cnt_set -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_cnt_adv -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_rdy -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_tag -add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_remain -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_odd -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_remain_en -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_we_b +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_cnt_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_en +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_set +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_en_a +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_we_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_addr_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_din_a +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_dout_a +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_en_b add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_addr_b -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso_din_be -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso_din_rdy -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/data_vld -add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/inter_frame_gap_cnt -add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/inter_frame_gap_rdy +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_din_b +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ram_dout_b +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ifg_cnt +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/ifg_idle +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_din_be +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_din_rdy +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_dout +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_dout_vld +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/piso8_dout_en +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_din +add wave -noupdate -format Literal -radix hexadecimal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_dout +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_we +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_re +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_empty +add wave -noupdate -format Logic /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/mii_fifo_full +add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/stream_s add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/host_s add wave -noupdate -format Literal /tb_emac_top_jb/inst_emac_top_jb/inst_emac_tx/xfer_s TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {65284974 ps} 0} +WaveRestoreCursors {{Cursor 1} {18401055846 ps} 0} {{Cursor 2} {49999375873 ps} 0} configure wave -namecolwidth 150 configure wave -valuecolwidth 100 configure wave -justifyvalue left @@ -159,4 +204,4 @@ configure wave -gridperiod 100 configure wave -griddelta 40 configure wave -timeline 1 update -WaveRestoreZoom {0 ps} {262500 ns} +WaveRestoreZoom {3250153138 ps} {28560670888 ps} diff --git a/lib/emac/src/tb_emac_top_jb.vhd b/lib/emac/src/tb_emac_top_jb.vhd index 2dd10a9..c535166 100644 --- a/lib/emac/src/tb_emac_top_jb.vhd +++ b/lib/emac/src/tb_emac_top_jb.vhd @@ -415,11 +415,11 @@ STIMULUS: process emac_alloc (1004); for i in 1 to 10 loop - for j in 1 to 500 loop + for j in 1 to 100 loop emac_alloc (72); emac_write (72); end loop; - wait for 2 ms; + wait for 1 ms; end loop; wait until rising_edge(mii_tx_clk) and mii_tx_en = '0'; @@ -427,11 +427,11 @@ STIMULUS: process loop_back_en <= '1'; - emac_alloc (72); - emac_write (72); + emac_alloc (74); + emac_write (74); - emac_alloc (104); - emac_write (104); + emac_alloc (105); + emac_write (105); emac_read (0); emac_free; @@ -439,14 +439,14 @@ STIMULUS: process emac_read (0); emac_free; - emac_alloc (104); - emac_write (104); + emac_alloc (103); + emac_write (103); emac_read (0); emac_free; - emac_alloc (72); - emac_write (72); + emac_alloc (71); + emac_write (71); emac_read (0); emac_free; @@ -454,8 +454,8 @@ STIMULUS: process emac_alloc (82); emac_write (82); - emac_alloc (82); - emac_write (82); + emac_alloc (86); + emac_write (86); emac_read (0); emac_free; @@ -463,44 +463,44 @@ STIMULUS: process emac_read (0); emac_free; + emac_alloc (77); + emac_write (77); + + emac_alloc (99); + emac_write (99); + + emac_alloc (65); + emac_write (65); + + emac_alloc (321); + emac_write (321); + + emac_read (0); + emac_free; + + emac_alloc (1111); + emac_write (1111); + + emac_read (0); + emac_free; + + emac_alloc (73); + emac_write (73); + + emac_alloc (107); + emac_write (107); + + emac_alloc (83); + emac_write (83); + + emac_read (0); + emac_free; + emac_alloc (72); emac_write (72); - emac_alloc (104); - emac_write (104); - - emac_alloc (82); - emac_write (82); - - emac_alloc (72); - emac_write (72); - - emac_read (0); - emac_free; - - emac_alloc (104); - emac_write (104); - - emac_read (0); - emac_free; - - emac_alloc (72); - emac_write (72); - - emac_alloc (104); - emac_write (104); - - emac_alloc (82); - emac_write (82); - - emac_read (0); - emac_free; - - emac_alloc (72); - emac_write (72); - - emac_alloc (104); - emac_write (104); + emac_alloc (1003); + emac_write (1003); emac_read (0); emac_free; @@ -529,7 +529,7 @@ STIMULUS: process pktgen_rst <= '0'; pkt_count <= 0; for i in 1 to 500 loop - wait for 7 us; + wait for 10 us; emac_read (0); emac_free; pkt_count <= pkt_count + 1;