forked from Github_Repos/cvw
		
	Changed loop variable in CLINT because of error only seen on VLSI
This commit is contained in:
		
							parent
							
								
									64ba550493
								
							
						
					
					
						commit
						9e47fca2b7
					
				@ -52,7 +52,7 @@ module clint (
 | 
			
		||||
  logic initTrans;
 | 
			
		||||
  (* mark_debug = "true" *)    logic [63:0] MTIMECMP;
 | 
			
		||||
  logic [`XLEN/8-1:0] ByteMaskM;
 | 
			
		||||
  integer             i;
 | 
			
		||||
  integer             i, j;
 | 
			
		||||
 | 
			
		||||
  assign initTrans = HREADY & HSELCLINT & (HTRANS != 2'b00);
 | 
			
		||||
  // entryd and memwrite are delayed by a cycle because AHB controller waits a cycle before outputting write data
 | 
			
		||||
@ -94,7 +94,7 @@ module clint (
 | 
			
		||||
        if (entryd == 16'h4000) begin
 | 
			
		||||
          for(i=0;i<`XLEN/8;i++)
 | 
			
		||||
            if(ByteMaskM[i])
 | 
			
		||||
              MTIMECMP[i*8 +: 8] <= HWDATA[i*8 +: 8];
 | 
			
		||||
              MTIMECMP[i*8 +: 8] <= HWDATA[i*8 +: 8]; // ***dh: this notation isn't in book yet - maybe from Ross
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@ -107,9 +107,9 @@ module clint (
 | 
			
		||||
        // MTIMECMP is not reset
 | 
			
		||||
      end else if (memwrite & entryd == 16'hBFF8) begin
 | 
			
		||||
        // MTIME Counter.  Eventually change this to run off separate clock.  Synchronization then needed
 | 
			
		||||
        for(i=0;i<`XLEN/8;i++)
 | 
			
		||||
          if(ByteMaskM[i])
 | 
			
		||||
            MTIME[i*8 +: 8] <= HWDATA[i*8 +: 8];
 | 
			
		||||
        for(j=0;j<`XLEN/8;j++)
 | 
			
		||||
          if(ByteMaskM[j])
 | 
			
		||||
            MTIME[j*8 +: 8] <= HWDATA[j*8 +: 8];
 | 
			
		||||
      end else MTIME <= MTIME + 1; 
 | 
			
		||||
  end else begin:clint // 32-bit
 | 
			
		||||
    always @(posedge HCLK) begin
 | 
			
		||||
@ -130,13 +130,13 @@ module clint (
 | 
			
		||||
      end else if (memwrite) begin
 | 
			
		||||
        if (entryd == 16'h0000) MSIP <= HWDATA[0];
 | 
			
		||||
        if (entryd == 16'h4000) 
 | 
			
		||||
          for(i=0;i<`XLEN/8;i++)
 | 
			
		||||
            if(ByteMaskM[i])
 | 
			
		||||
              MTIMECMP[i*8 +: 8] <= HWDATA[i*8 +: 8];
 | 
			
		||||
          for(j=0;j<`XLEN/8;j++)
 | 
			
		||||
            if(ByteMaskM[j])
 | 
			
		||||
              MTIMECMP[j*8 +: 8] <= HWDATA[j*8 +: 8];
 | 
			
		||||
        if (entryd == 16'h4004) 
 | 
			
		||||
          for(i=0;i<`XLEN/8;i++)
 | 
			
		||||
            if(ByteMaskM[i])
 | 
			
		||||
              MTIMECMP[32 + i*8 +: 8] <= HWDATA[i*8 +: 8];
 | 
			
		||||
          for(j=0;j<`XLEN/8;j++)
 | 
			
		||||
            if(ByteMaskM[j])
 | 
			
		||||
              MTIMECMP[32 + j*8 +: 8] <= HWDATA[j*8 +: 8];
 | 
			
		||||
        // MTIME Counter.  Eventually change this to run off separate clock.  Synchronization then needed
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user