Jump to content

u24c02

Members
  • Content count

    5
  • Joined

  • Last visited

  1. Dear All, Currently, I'm trying to make multiple burst on systemverilog especially the code with cadence's VIPCAT tool. The below code which is I've got at all `timescale 1ps/1ps import DenaliSvMem::*; import DenaliSvCdn_ahb::*; class myAhbInstance extends denaliCdn_ahbInstance; denaliMemInstance regInst ; // Handle to the register-space function new(string instName); super.new(instName); regInst = new( { instName, "(registers)" } ); endfunction endclass // Test module module pstest; // Import the DDVAPI ACE SV interface and the generic Mem inetrface import DenaliSvCdn_ahb::*; import DenaliSvMem::*; ahb_top ahb_top(); test2 M0( .HCLK(ahb_top.hclk), .HRESET(ahb_top.hresetn), .HADDR(ahb_top.haddr0), .HTRANS(ahb_top.htrans0), .HWRITE(ahb_top.hwrite0), .HSIZE(ahb_top.hsize0), .HBURST(ahb_top.hburst0), .HPROT(ahb_top.hprot0), .HWDATA(ahb_top.hwdata0), .HRDATA(ahb_top.hrdata), .HREADY(ahb_top.hready), .HRESP(ahb_top.hresp), .HLOCK(ahb_top.hlock0), .HBUSREQ(ahb_top.hbusreq0), .HGRANT(ahb_top.hgrant0) ); myAhbInstance activeMaster1; denaliCdn_ahbTransaction burst1; task sendTransfers; burst1= new; burst1.pInst = activeMaster1; burst1.FirstAddress = 32'h0 burst1.Direction = DENALI_CDN_AHB_DIRECTION_WRITE; burst1.Kind = DENALI_CDN_AHB_BURSTKIND_INCR4; burst1.Size = DENALI_CDN_AHB_TRANSFERSIZE_HALFWORD; burst1.Data = new [8]; foreach (burst1.Data[ii]) burst1.Data[ii] = ii; void'(activeMaster1.transAdd(burst1,0)); endtask // sendTransfer initial begin activeMaster1 = new ("pstest.M0"); //the default master activeMaster1.regWrite(DENALI_CDN_AHB_REG_Verbosity, DENALI_CDN_AHB_MESSAGEVERBOSITY_MEDIUM); $display("Going to create new wires "); activeMaster1.regWrite(DENALI_CDN_AHB_REG_ContinueOnError, 1); sendTransfers; //sendTransfers; //sendTransfers; //sendTransfers; #10000000; $finish; end But I came across above code just make a one burst transaction. I want to make multiple burst transaction. Especially, Start address which is from 0x00000000 to 0x10000000 with random data. I can make that way by just use multiple 'sendTransfers' . but I think this is not a good way. I think there is more efficient way. How do I make multiple burst transaction.?
  2. Dear all. Now I'm trying to digging the systemverilog as the below denaliCdn_ahbTransaction burst1; task sendTransfers; burst1= new; burst1.Direction = DENALI_CDN_AHB_DIRECTION_WRITE; burst1.FirstAddress = 32'h4020;//16416 M3 and M0 to S1 burst1.Kind = DENALI_CDN_AHB_BURSTKIND_INCR4; burst1.Size = DENALI_CDN_AHB_TRANSFERSIZE_HALFWORD; burst1.Data = new [8]; foreach (burst1.Data[ii]) burst1.Data[ii] = ii; void'(activeMaster1.transAdd(burst1,0)); .... endtask From here , how does ii be decided it's value without initialized ? how does a variable to be decided it's value without it's initialize in systemverilog?
  3. Thanks for replay. I've update the test1.v and executing script. Would you please help me how to resolve this? tar.zip
  4. Hi, I'm trying to verify the simple AHB block by using VIPCAT, so I made simple test.v as the below `timescale 1ps/1ps module test2( HCLK, HRESET, HADDR, HTRANS, ... HLOCK, HGRANT ); parameter interface_soma = "test2.soma"; parameter init_file = ""; parameter sim_control = ""; input HCLK; input HRESET; output [31:0] HADDR; ... assign HBUSREQ = den_HBUSREQ; output HLOCK; reg den_HLOCK; assign HLOCK = den_HLOCK; input HGRANT; initial $cdn_ahb_access(HCLK,HRESET,den_HADDR,den_HTRANS,den_HWRITE,den_HSIZE,den_HBURST,den_HPROT,den_HWDATA,HRDATA,HREADY,HRESP,den_HBUSREQ,den_HLOCK,HGRANT); endmodule I want to use the VIPCAT to generate a BFM file for the AHB interfacing test. But I'm stuck in the below process. How do I resolve this problem? $ncverilog +access+wrc test2.v $cdn_ahb_access(HCLK,HRESET,den_HADDR,den_HTRANS,den_HWRITE,den_HSIZE,den_HBURST,den_HPROT,den_HWDATA,HRDATA,HREADY,HRESP,den_HBUSREQ,den_HLOCK,HGRANT); | ncelab: *W,MISSYST (./test1.v,70|18): Unrecognized system task or function: $cdn_ahb_access (did not match built-in or user-defined names) [2.7.4(IEEE Std 1364-2001)] Could you please help me how can I resolve this problem?.
×