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

Subversion Repositories nysa_sata

[/] [nysa_sata/] [trunk/] [sim/] [tb_cocotb.v] - Diff between revs 2 and 3

Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 9... Line 9...
input               rst,              //reset
input               rst,              //reset
input               clk,
input               clk,
 
 
output              linkup,           //link is finished
output              linkup,           //link is finished
output              sata_ready,
output              sata_ready,
output              busy,
output              sata_busy,
 
 
input               write_data_en,
//input               write_data_stb,
input               read_data_en,
//input               read_data_stb,
 
input       [7:0]   hard_drive_command,
 
input               execute_command_stb,
 
 
input               soft_reset_en,
input               command_layer_reset,
input       [15:0]  sector_count,
input       [15:0]  sector_count,
input       [47:0]  sector_address,
input       [47:0]  sector_address,
 
 
output              d2h_interrupt,
output              d2h_interrupt,
output              d2h_notification,
output              d2h_notification,
Line 59... Line 61...
input               single_rdwr
input               single_rdwr
);
);
reg     [31:0]      test_id = 0;
reg     [31:0]      test_id = 0;
 
 
wire    [31:0]      tx_dout;
wire    [31:0]      tx_dout;
wire                tx_isk;
wire                tx_is_k;
wire                tx_comm_reset;
wire                tx_comm_reset;
wire                tx_comm_wake;
wire                tx_comm_wake;
wire                tx_elec_idle;
wire                tx_elec_idle;
 
 
wire    [31:0]      rx_din;
wire    [31:0]      rx_din;
wire    [3:0]       rx_isk;
wire    [3:0]       rx_is_k;
wire                rx_elec_idle;
wire                rx_elec_idle;
wire                comm_init_detect;
wire                comm_init_detect;
wire                comm_wake_detect;
wire                comm_wake_detect;
 
 
wire                rx_byte_is_aligned;
 
 
 
reg                 r_rst;
reg                 r_rst;
reg                 r_write_data_en;
reg                 r_write_data_stb;
reg                 r_read_data_en;
reg                 r_read_data_stb;
reg                 r_soft_reset_en;
reg                 r_command_layer_reset;
reg     [15:0]      r_sector_count;
reg     [15:0]      r_sector_count;
reg     [47:0]      r_sector_address;
reg     [47:0]      r_sector_address;
reg                 r_prim_scrambler_en;
reg                 r_prim_scrambler_en;
reg                 r_data_scrambler_en;
reg                 r_data_scrambler_en;
reg                 r_platform_ready;
reg                 r_platform_ready;
reg                 r_dout_count;
reg                 r_dout_count;
reg                 r_hold;
reg                 r_hold;
reg                 r_single_rdwr;
 
 
 
reg                 r_u2h_write_enable;
reg                 r_u2h_write_enable;
reg         [23:0]  r_u2h_write_count;
reg         [23:0]  r_u2h_write_count;
reg                 r_h2u_read_enable;
reg                 r_h2u_read_enable;
 
 
 
reg   [7:0]         r_hard_drive_command;
 
reg                 r_execute_command_stb;
 
 
wire                hd_read_from_host;
wire                hd_read_from_host;
wire        [31:0]  hd_data_from_host;
wire        [31:0]  hd_data_from_host;
 
 
 
 
wire                hd_write_to_host;
wire                hd_write_to_host;
Line 109... Line 111...
wire                user_din_stb;
wire                user_din_stb;
wire  [1:0]         user_din_ready;
wire  [1:0]         user_din_ready;
wire  [1:0]         user_din_activate;
wire  [1:0]         user_din_activate;
wire  [23:0]        user_din_size;
wire  [23:0]        user_din_size;
 
 
 
wire                dma_activate_stb;
 
wire                d2h_reg_stb;
 
wire                pio_setup_stb;
 
wire                d2h_data_stb;
 
wire                dma_setup_stb;
 
wire                set_device_bits_stb;
 
wire  [7:0]         d2h_fis;
 
wire                i_rx_byte_is_aligned;
 
 
 
 
 
 
 
 
 
 
//There is a bug in COCOTB when stiumlating a signal, sometimes it can be corrupted if not registered
//There is a bug in COCOTB when stiumlating a signal, sometimes it can be corrupted if not registered
always @ (*) r_rst                = rst;
always @ (*) r_rst                = rst;
always @ (*) r_write_data_en      = write_data_en;
//always @ (*) r_write_data_stb     = write_data_stb;
always @ (*) r_read_data_en       = read_data_en;
//always @ (*) r_read_data_stb      = read_data_stb;
always @ (*) r_soft_reset_en      = soft_reset_en;
always @ (*) r_command_layer_reset= command_layer_reset;
always @ (*) r_sector_count       = sector_count;
always @ (*) r_sector_count       = sector_count;
always @ (*) r_sector_address     = sector_address;
always @ (*) r_sector_address     = sector_address;
always @ (*) r_prim_scrambler_en  = prim_scrambler_en;
always @ (*) r_prim_scrambler_en  = prim_scrambler_en;
always @ (*) r_data_scrambler_en  = data_scrambler_en;
always @ (*) r_data_scrambler_en  = data_scrambler_en;
always @ (*) r_platform_ready     = platform_ready;
always @ (*) r_platform_ready     = platform_ready;
always @ (*) r_hold               = hold;
always @ (*) r_hold               = hold;
always @ (*) r_single_rdwr        = single_rdwr;
 
 
 
always @ (*) r_u2h_write_enable   = u2h_write_enable;
always @ (*) r_u2h_write_enable   = u2h_write_enable;
always @ (*) r_u2h_write_count    = u2h_write_count;
always @ (*) r_u2h_write_count    = u2h_write_count;
 
 
always @ (*) r_h2u_read_enable    = h2u_read_enable;
always @ (*) r_h2u_read_enable    = h2u_read_enable;
 
 
 
always @ (*) r_hard_drive_command = hard_drive_command;
 
always @ (*) r_execute_command_stb= execute_command_stb;
 
 
//Submodules
//Submodules
 
 
//User Generated Test Data
//User Generated Test Data
test_in user_2_hd_generator(
test_in user_2_hd_generator(
  .clk                   (clk                  ),
  .clk                   (clk                  ),
Line 185... Line 202...
);
);
 
 
sata_stack ss (
sata_stack ss (
  .rst                   (r_rst                ),  //reset
  .rst                   (r_rst                ),  //reset
  .clk                   (clk                  ),  //clock used to run the stack
  .clk                   (clk                  ),  //clock used to run the stack
  .data_in_clk           (clk                  ),
  .command_layer_reset   (r_command_layer_reset),
  .data_in_clk_valid     (1'b1                 ),
 
  .data_out_clk          (clk                  ),
 
  .data_out_clk_valid    (1'b1                 ),
 
 
 
  .platform_ready        (platform_ready       ),  //the underlying physical platform is
  .platform_ready        (platform_ready       ),  //the underlying physical platform is
 
  .platform_error        (                     ),
  .linkup                (linkup               ),  //link is finished
  .linkup                (linkup               ),  //link is finished
 
 
  .sata_ready            (sata_ready           ),
  .sata_ready            (sata_ready           ),
 
  .sata_busy             (sata_busy            ),
 
 
  .busy                  (busy                 ),
  .send_sync_escape      (1'b0                 ),
 
  .hard_drive_error      (                     ),
 
 
  .write_data_en         (r_write_data_en      ),
  .pio_data_ready        (                     ),
  .single_rdwr           (r_single_rdwr        ),
 
  .read_data_en          (r_read_data_en       ),
 
 
 
  .send_user_command_stb (1'b0                 ),
 
  .soft_reset_en         (r_soft_reset_en      ),
 
  .command               (1'b0                 ),
 
 
 
 
  //Host to Device Control
 
//  .write_data_stb        (r_write_data_stb     ),
 
//  .read_data_stb         (r_read_data_stb      ),
 
  .hard_drive_command    (r_hard_drive_command ),
 
  .execute_command_stb   (r_execute_command_stb),
 
  .user_features         (16'h0000             ),
  .sector_count          (r_sector_count       ),
  .sector_count          (r_sector_count       ),
  .sector_address        (r_sector_address     ),
  .sector_address        (r_sector_address     ),
 
 
 
  .dma_activate_stb      (dma_activate_stb     ),
 
  .d2h_reg_stb           (d2h_reg_stb          ),
 
  .pio_setup_stb         (pio_setup_stb        ),
 
  .d2h_data_stb          (d2h_data_stb         ),
 
  .dma_setup_stb         (dma_setup_stb        ),
 
  .set_device_bits_stb   (set_device_bits_stb  ),
 
 
 
  .d2h_fis                (d2h_fis             ),
  .d2h_interrupt         (d2h_interrupt        ),
  .d2h_interrupt         (d2h_interrupt        ),
  .d2h_notification      (d2h_notification     ),
  .d2h_notification      (d2h_notification     ),
  .d2h_port_mult         (d2h_port_mult        ),
  .d2h_port_mult         (d2h_port_mult        ),
  .d2h_device            (d2h_device           ),
  .d2h_device            (d2h_device           ),
  .d2h_lba               (d2h_lba              ),
  .d2h_lba               (d2h_lba              ),
  .d2h_sector_count      (d2h_sector_count     ),
  .d2h_sector_count      (d2h_sector_count     ),
  .d2h_status            (d2h_status           ),
  .d2h_status            (d2h_status           ),
  .d2h_error             (d2h_error            ),
  .d2h_error             (d2h_error            ),
 
 
 
  //Data from host to the hard drive path
 
  .data_in_clk           (clk                  ),
 
  .data_in_clk_valid     (1'b1                 ),
  .user_din              (user_din             ),   //User Data Here
  .user_din              (user_din             ),   //User Data Here
  .user_din_stb          (user_din_stb         ),   //Strobe Each Data word in here
  .user_din_stb          (user_din_stb         ),   //Strobe Each Data word in here
  .user_din_ready        (user_din_ready       ),   //Using PPFIFO Ready Signal
  .user_din_ready        (user_din_ready       ),   //Using PPFIFO Ready Signal
  .user_din_activate     (user_din_activate    ),   //Activate PPFIFO Channel
  .user_din_activate     (user_din_activate    ),   //Activate PPFIFO Channel
  .user_din_size         (user_din_size        ),   //Find the size of the data to write to the device
  .user_din_size         (user_din_size        ),   //Find the size of the data to write to the device
 
 
 
  //Data from hard drive to host path
 
  .data_out_clk          (clk                  ),
 
  .data_out_clk_valid    (1'b1                 ),
  .user_dout             (user_dout            ),
  .user_dout             (user_dout            ),
  .user_dout_ready       (user_dout_ready      ),
  .user_dout_ready       (user_dout_ready      ),
  .user_dout_activate    (user_dout_activate   ),
  .user_dout_activate    (user_dout_activate   ),
  .user_dout_stb         (user_dout_stb        ),
  .user_dout_stb         (user_dout_stb        ),
  .user_dout_size        (user_dout_size       ),
  .user_dout_size        (user_dout_size       ),
 
 
  .transport_layer_ready (transport_layer_ready),
  .transport_layer_ready (transport_layer_ready),
  .link_layer_ready      (link_layer_ready     ),
  .link_layer_ready      (link_layer_ready     ),
  .phy_ready             (phy_ready            ),
  .phy_ready             (phy_ready            ),
 
  .phy_error             (1'b0                 ),
 
 
  .tx_dout               (tx_dout              ),
  .tx_dout               (tx_dout              ),
  .tx_isk                (tx_isk               ),
  .tx_is_k               (tx_is_k              ),
  .tx_comm_reset         (tx_comm_reset        ),
  .tx_comm_reset         (tx_comm_reset        ),
  .tx_comm_wake          (tx_comm_wake         ),
  .tx_comm_wake          (tx_comm_wake         ),
  .tx_elec_idle          (tx_elec_idle         ),
  .tx_elec_idle          (tx_elec_idle         ),
 
  .tx_oob_complete       (1'b1                 ),
 
 
  .rx_din                (rx_din               ),
  .rx_din                (rx_din               ),
  .rx_isk                (rx_isk               ),
  .rx_is_k               (rx_is_k              ),
  .rx_elec_idle          (rx_elec_idle         ),
  .rx_elec_idle          (rx_elec_idle         ),
 
  .rx_byte_is_aligned    (i_rx_byte_is_aligned ),
  .comm_init_detect      (comm_init_detect     ),
  .comm_init_detect      (comm_init_detect     ),
  .comm_wake_detect      (comm_wake_detect     ),
  .comm_wake_detect      (comm_wake_detect     ),
  .rx_byte_is_aligned    (rx_byte_is_aligned   ),
 
 
 
 
 
  .prim_scrambler_en     (r_prim_scrambler_en  ),
  //.prim_scrambler_en     (r_prim_scrambler_en  ),
  .data_scrambler_en     (r_data_scrambler_en  )
  .prim_scrambler_en     (1'b1                 ),
 
  //.data_scrambler_en     (r_data_scrambler_en  )
 
  .data_scrambler_en     (1'b1                 )
);
);
 
 
faux_sata_hd  fshd   (
faux_sata_hd  fshd   (
  .rst                   (r_rst                ),
  .rst                   (r_rst                ),
  .clk                   (clk                  ),
  .clk                   (clk                  ),
  .tx_dout               (rx_din               ),
  .tx_dout               (rx_din               ),
  .tx_isk                (rx_isk               ),
  .tx_is_k               (rx_is_k              ),
 
 
  .rx_din                (tx_dout              ),
  .rx_din                (tx_dout              ),
  .rx_isk                ({3'b000, tx_isk}     ),
  .rx_is_k               ({3'b000, tx_is_k}    ),
  .rx_is_elec_idle       (tx_elec_idle         ),
  .rx_is_elec_idle       (tx_elec_idle         ),
  .rx_byte_is_aligned    (rx_byte_is_aligned   ),
  .rx_byte_is_aligned    (i_rx_byte_is_aligned ),
 
 
  .comm_reset_detect     (tx_comm_reset        ),
  .comm_reset_detect     (tx_comm_reset        ),
  .comm_wake_detect      (tx_comm_wake         ),
  .comm_wake_detect      (tx_comm_wake         ),
 
 
  .tx_comm_reset         (comm_init_detect     ),
  .tx_comm_reset         (comm_init_detect     ),
Line 271... Line 307...
 
 
  .hd_ready              (hd_ready             ),
  .hd_ready              (hd_ready             ),
//  .phy_ready             (phy_ready            ),
//  .phy_ready             (phy_ready            ),
 
 
 
 
  .dbg_data_scrambler_en (r_data_scrambler_en  ),
  //.dbg_data_scrambler_en (r_data_scrambler_en  ),
 
  .dbg_data_scrambler_en (1'b1                  ),
 
 
  .dbg_hold              (r_hold               ),
  .dbg_hold              (r_hold               ),
 
 
  .dbg_ll_write_start    (0                    ),
  .dbg_ll_write_start    (1'b0                 ),
  .dbg_ll_write_data     (0                    ),
  .dbg_ll_write_data     (32'h0                ),
  .dbg_ll_write_size     (0                    ),
  .dbg_ll_write_size     (0                    ),
  .dbg_ll_write_hold     (0                    ),
  .dbg_ll_write_hold     (1'b0                 ),
  .dbg_ll_write_abort    (0                    ),
  .dbg_ll_write_abort    (1'b0                 ),
 
 
 
  .dbg_ll_read_ready     (1'b0                 ),
 
  .dbg_t_en              (1'b0                 ),
 
 
  .dbg_ll_read_ready     (0                    ),
  .dbg_send_reg_stb      (1'b0                 ),
  .dbg_t_en              (0                    ),
  .dbg_send_dma_act_stb  (1'b0                 ),
 
  .dbg_send_data_stb     (1'b0                 ),
 
  .dbg_send_pio_stb      (1'b0                 ),
 
  .dbg_send_dev_bits_stb (1'b0                 ),
 
 
 
  .dbg_pio_transfer_count(16'h0000             ),
 
  .dbg_pio_direction     (1'b0                 ),
 
  .dbg_pio_e_status      (8'h00                ),
 
 
 
  .dbg_d2h_interrupt     (1'b0                 ),
 
  .dbg_d2h_notification  (1'b0                 ),
 
  .dbg_d2h_status        (8'b0                 ),
 
  .dbg_d2h_error         (8'b0                 ),
 
  .dbg_d2h_port_mult     (4'b0000              ),
 
  .dbg_d2h_device        (8'h00                ),
 
  .dbg_d2h_lba           (48'h000000000000     ),
 
  .dbg_d2h_sector_count  (16'h0000             ),
 
 
 
  .dbg_cl_if_data        (32'b0                ),
 
  .dbg_cl_if_ready       (1'b0                 ),
 
  .dbg_cl_if_size        (24'h0                ),
 
 
  .dbg_send_reg_stb      (0                    ),
  .dbg_cl_of_ready       (2'b0                 ),
  .dbg_send_dma_act_stb  (0                    ),
  .dbg_cl_of_size        (24'h0                ),
  .dbg_send_data_stb     (0                    ),
 
  .dbg_send_pio_stb      (0                    ),
 
  .dbg_send_dev_bits_stb (0                    ),
 
 
 
  .dbg_pio_transfer_count(0                    ),
 
  .dbg_pio_direction     (0                    ),
 
  .dbg_pio_e_status      (0                    ),
 
 
 
  .dbg_d2h_interrupt     (0                    ),
 
  .dbg_d2h_notification  (0                    ),
 
  .dbg_d2h_status        (0                    ),
 
  .dbg_d2h_error         (0                    ),
 
  .dbg_d2h_port_mult     (0                    ),
 
  .dbg_d2h_device        (0                    ),
 
  .dbg_d2h_lba           (0                    ),
 
  .dbg_d2h_sector_count  (0                    ),
 
 
 
  .dbg_cl_if_data        (0                    ),
 
  .dbg_cl_if_ready       (0                    ),
 
  .dbg_cl_if_size        (0                    ),
 
  .dbg_cl_of_ready       (0                    ),
 
  .dbg_cl_of_size        (0                    ),
 
  .hd_read_from_host     (hd_read_from_host    ),
  .hd_read_from_host     (hd_read_from_host    ),
  .hd_data_from_host     (hd_data_from_host    ),
  .hd_data_from_host     (hd_data_from_host    ),
 
 
 
 
  .hd_write_to_host      (hd_write_to_host     ),
  .hd_write_to_host      (hd_write_to_host     ),

powered by: WebSVN 2.1.0

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