OpenCores
URL https://opencores.org/ocsvn/bustap-jtag/bustap-jtag/trunk

Subversion Repositories bustap-jtag

[/] [bustap-jtag/] [trunk/] [rtl/] [up_monitor.v] - Diff between revs 11 and 12

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 11 Rev 12
Line 50... Line 50...
wire        trig_set  = trig_cond[48];
wire        trig_set  = trig_cond[48];
wire [15:0] trig_addr = trig_cond[47:32];
wire [15:0] trig_addr = trig_cond[47:32];
wire [31:0] trig_data = trig_cond[31:0];
wire [31:0] trig_data = trig_cond[31:0];
reg         trig_cond_ok,trig_cond_ok_d1;
reg         trig_cond_ok,trig_cond_ok_d1;
// for capture storage
// for capture storage
wire [49:0] capture_in;
wire [81:0] capture_in;
wire        capture_wr;
wire        capture_wr;
// for pretrigger capture
// for pretrigger capture
wire [9:0] pretrig_num;
wire [9:0] pretrig_num;
reg  [9:0] pretrig_cnt;
reg  [9:0] pretrig_cnt;
wire pretrig_full;
wire pretrig_full;
wire pretrig_wr;
wire pretrig_wr;
reg  pretrig_wr_d1,pretrig_rd;
reg  pretrig_wr_d1,pretrig_rd;
 
// for inter capture timer
 
reg [31:0] inter_cap_cnt;
 
 
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// Capture logic main
// Capture logic main
/////////////////////////////////////////////////
/////////////////////////////////////////////////
 
 
Line 123... Line 125...
                                              // trigger gate kept open until trigger stoped
                                              // trigger gate kept open until trigger stoped
end
end
wire trig_cond_ok_pulse = trig_cond_ok & !trig_cond_ok_d1;
wire trig_cond_ok_pulse = trig_cond_ok & !trig_cond_ok_d1;
 
 
// generate capture wr_in
// generate capture wr_in
assign capture_in = {trig_cond_ok_pulse,wr_en_d1,addr_in_d1[15:2],2'b00,data_in_d1[31:0]};
assign capture_in = {trig_cond_ok_pulse,wr_en_d1,inter_cap_cnt,addr_in_d1[15:2],2'b00,data_in_d1[31:0]};
assign capture_wr =  trig_cond_ok_pulse | (addr_mask_ok & trig_cond_ok);
assign capture_wr =  trig_cond_ok_pulse | (addr_mask_ok & trig_cond_ok);
 
 
// generate pre-trigger wr_in
// generate pre-trigger wr_in
assign pretrig_full = (pretrig_cnt >= pretrig_num) || trig_cond_ok;
assign pretrig_full = (pretrig_cnt >= pretrig_num) || trig_cond_ok;
assign pretrig_wr = (!trig_en || (trig_en && !trig_set))? 1'b0 : (trig_cond_ok? 1'b0 : addr_mask_ok);
assign pretrig_wr = (!trig_en || (trig_en && !trig_set))? 1'b0 : (trig_cond_ok? 1'b0 : addr_mask_ok);
Line 148... Line 150...
                pretrig_wr_d1<= pretrig_wr;
                pretrig_wr_d1<= pretrig_wr;
                pretrig_rd   <= pretrig_wr_d1;
                pretrig_rd   <= pretrig_wr_d1;
        end
        end
end
end
 
 
 
// generate interval counter
 
always @(posedge clk)
 
begin
 
        if      (capture_wr || pretrig_wr)
 
                inter_cap_cnt <= 32'd0;
 
        else if (inter_cap_cnt[31])
 
                inter_cap_cnt <= 32'd3000000000;
 
        else
 
                inter_cap_cnt <= inter_cap_cnt + 32'd1;
 
end
 
 
/////////////////////////////////////////////////
/////////////////////////////////////////////////
// Instantiate vendor specific JTAG functions
// Instantiate vendor specific JTAG functions
/////////////////////////////////////////////////
/////////////////////////////////////////////////
 
 
// index 0, instantiate capture fifo, as output
// index 0, instantiate capture fifo, as output
Line 160... Line 173...
        .wr_in(capture_wr || pretrig_wr),
        .wr_in(capture_wr || pretrig_wr),
        .data_in(capture_in),
        .data_in(capture_in),
        .rd_in(pretrig_rd)
        .rd_in(pretrig_rd)
        );
        );
defparam
defparam
        u_virtual_jtag_adda_fifo.data_width     = 50,
        u_virtual_jtag_adda_fifo.data_width     = 82,
        u_virtual_jtag_adda_fifo.fifo_depth     = 512,
        u_virtual_jtag_adda_fifo.fifo_depth     = 512,
        u_virtual_jtag_adda_fifo.addr_width     = 9,
        u_virtual_jtag_adda_fifo.addr_width     = 9,
        u_virtual_jtag_adda_fifo.al_full_val    = 511,
        u_virtual_jtag_adda_fifo.al_full_val    = 511,
        u_virtual_jtag_adda_fifo.al_empt_val    = 0;
        u_virtual_jtag_adda_fifo.al_empt_val    = 0;
 
 

powered by: WebSVN 2.1.0

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