URL
https://opencores.org/ocsvn/eco32/eco32/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 27 |
Rev 67 |
Line 1... |
Line 1... |
module tmr(clk, reset,
|
module tmr(clk, reset,
|
en, wr, addr2,
|
en, wr, addr,
|
data_in, data_out,
|
data_in, data_out,
|
wt, irq);
|
wt, irq);
|
input clk;
|
input clk;
|
input reset;
|
input reset;
|
input en;
|
input en;
|
input wr;
|
input wr;
|
input addr2;
|
input addr;
|
input [31:0] data_in;
|
input [31:0] data_in;
|
output [31:0] data_out;
|
output [31:0] data_out;
|
output wt;
|
output wt;
|
output irq;
|
output irq;
|
|
|
Line 63... |
Line 63... |
ien <= 0;
|
ien <= 0;
|
end else begin
|
end else begin
|
if (expired == 1) begin
|
if (expired == 1) begin
|
alarm <= 1;
|
alarm <= 1;
|
end else begin
|
end else begin
|
if (en == 1 && wr == 1 && addr2 == 0) begin
|
if (en == 1 && wr == 1 && addr == 0) begin
|
alarm <= data_in[0];
|
alarm <= data_in[0];
|
ien <= data_in[1];
|
ien <= data_in[1];
|
end
|
end
|
if (en == 1 && wr == 1 && addr2 == 1) begin
|
if (en == 1 && wr == 1 && addr == 1) begin
|
divisor <= data_in;
|
divisor <= data_in;
|
divisor_loaded <= 1;
|
divisor_loaded <= 1;
|
end else begin
|
end else begin
|
divisor_loaded <= 0;
|
divisor_loaded <= 0;
|
end
|
end
|
end
|
end
|
end
|
end
|
end
|
end
|
|
|
assign data_out =
|
assign data_out =
|
(addr2 == 0) ? { 28'h0000000, 2'b00, ien, alarm } :
|
(addr == 0) ? { 28'h0000000, 2'b00, ien, alarm } :
|
divisor;
|
divisor;
|
assign wt = 0;
|
assign wt = 0;
|
assign irq = ien & alarm;
|
assign irq = ien & alarm;
|
|
|
endmodule
|
endmodule
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.