mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Reset mtimecmp in clint
This commit is contained in:
parent
4c8f5fbd89
commit
ceddc99ac9
@ -60,7 +60,7 @@ module clint (
|
|||||||
flopr #(16) entrydflop(HCLK, ~HRESETn, entry, entryd);
|
flopr #(16) entrydflop(HCLK, ~HRESETn, entry, entryd);
|
||||||
|
|
||||||
assign HRESPCLINT = 0; // OK
|
assign HRESPCLINT = 0; // OK
|
||||||
assign HREADYCLINT = 1'b1; // *** needs to depend on DONE during accesses
|
assign HREADYCLINT = 1'b1; // *** needs to depend on DONE during asynchronous MTIME accesses
|
||||||
|
|
||||||
// word aligned reads
|
// word aligned reads
|
||||||
if (`XLEN==64) assign #2 entry = {HADDR[15:3], 3'b000};
|
if (`XLEN==64) assign #2 entry = {HADDR[15:3], 3'b000};
|
||||||
@ -87,8 +87,7 @@ module clint (
|
|||||||
always_ff @(posedge HCLK or negedge HRESETn)
|
always_ff @(posedge HCLK or negedge HRESETn)
|
||||||
if (~HRESETn) begin
|
if (~HRESETn) begin
|
||||||
MSIP <= 0;
|
MSIP <= 0;
|
||||||
MTIMECMP <= 0;
|
MTIMECMP <= 0xFFFFFFFFFFFFFFFF; // Spec says MTIMECMP is not reset, but we reset to maximum value to prevent spurious timer interrupts
|
||||||
// MTIMECMP is not reset
|
|
||||||
end else if (memwrite) begin
|
end else if (memwrite) begin
|
||||||
if (entryd == 16'h0000) MSIP <= HWDATA[0];
|
if (entryd == 16'h0000) MSIP <= HWDATA[0];
|
||||||
if (entryd == 16'h4000) begin
|
if (entryd == 16'h4000) begin
|
||||||
@ -104,7 +103,6 @@ module clint (
|
|||||||
always_ff @(posedge HCLK or negedge HRESETn)
|
always_ff @(posedge HCLK or negedge HRESETn)
|
||||||
if (~HRESETn) begin
|
if (~HRESETn) begin
|
||||||
MTIME <= 0;
|
MTIME <= 0;
|
||||||
// MTIMECMP is not reset
|
|
||||||
end else if (memwrite & entryd == 16'hBFF8) begin
|
end else if (memwrite & entryd == 16'hBFF8) begin
|
||||||
// MTIME Counter. Eventually change this to run off separate clock. Synchronization then needed
|
// MTIME Counter. Eventually change this to run off separate clock. Synchronization then needed
|
||||||
for(j=0;j<`XLEN/8;j++)
|
for(j=0;j<`XLEN/8;j++)
|
||||||
|
Loading…
Reference in New Issue
Block a user