Simple design: top.v: module top ( input registerLocalClock, input

advertisement
Simple design:
top.v:
module top
(
input registerLocalClock,
input registerLocalReset,
input control_RESETWrite,
output control_RESET_ext_fpga,
output control_RESET_si5347,
output control_RESET_spi,
output control_RESET_i2c,
output control_RESET_apb,
input [4:0] registerLocalWriteData
);
ConfigurationRMRegister #(5) RESET_ConfigurationRM (
.clock(registerLocalClock),
.reset(registerLocalReset),
.load(control_RESETWrite),
.out({
control_RESET_ext_fpga,
control_RESET_si5347,
control_RESET_spi,
control_RESET_i2c,
control_RESET_apb
}),
.data({
registerLocalWriteData[4],
registerLocalWriteData[3],
registerLocalWriteData[2],
registerLocalWriteData[1],
registerLocalWriteData[0]
}),
.defaultValue(5'h1e),
.writeMask(5'h00)
);
endmodule
ConfigurationRMRegister.v:
module ConfigurationRMRegister #(
parameter BITS = 1
)(
input
clock,
input
reset,
input
load,
input [BITS-1:0] defaultValue,
input [BITS-1:0] writeMask,
input [BITS-1:0] data,
output reg [BITS-1:0] out
);
always @(posedge clock or posedge reset)
if (reset)
out <= defaultValue;
else if(load)
out <= (writeMask & out ) | (~writeMask & data);
endmodule
Synthesis snapshot of simple design:
Synthesis snapshot of same module instance in original design:
Download