28 lines
374 B
Coq
28 lines
374 B
Coq
|
module register(
|
||
|
input clk,
|
||
|
input load,
|
||
|
input en,
|
||
|
input inc,
|
||
|
input dec,
|
||
|
inout[15:0] bus,
|
||
|
output[7:0] out
|
||
|
);
|
||
|
|
||
|
reg[7:0] data = 0;
|
||
|
|
||
|
always @(posedge clk) begin
|
||
|
if (load) begin
|
||
|
data <= bus[7:0];
|
||
|
end else if (inc) begin
|
||
|
data <= data + 1;
|
||
|
end else if (dec) begin
|
||
|
data <= data - 1;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
assign bus = (en) ? {8'b0, data} : 16'bz;
|
||
|
assign out = data;
|
||
|
|
||
|
endmodule
|
||
|
|