Guest
I've been wondering about module interfaces recently...
I'm a total newbie at this ASIC stuff, learning as I go, so I figured I'd ask what the collective wisdom is on wide busses in the real world. the module interface to a crypto core looks like:
module bmw512
(
input clk,
input rst,
input [511:0] partialMsg,
input msgReady,
output [511:0] hash,
output reg hashReady
);
In general, is a 512-bit bus a good idea ? Or would I be better off clocking it in 64-bits at a time and paying the clock-cycle cost, in terms of routing the design. The internal state of the module is in fact 1024 bits wide, so the number of D flip-flops isn't going to change much, just the expense of having a large bus running around the chip.
The reason for asking is that the design turned out to be significantly larger than I'd expected (about 5mm^2 on a 180um process), and even with all the internal register state (~1600 bits overall), that was a bit of a surprise.
I'm a total newbie at this ASIC stuff, learning as I go, so I figured I'd ask what the collective wisdom is on wide busses in the real world. the module interface to a crypto core looks like:
module bmw512
(
input clk,
input rst,
input [511:0] partialMsg,
input msgReady,
output [511:0] hash,
output reg hashReady
);
In general, is a 512-bit bus a good idea ? Or would I be better off clocking it in 64-bits at a time and paying the clock-cycle cost, in terms of routing the design. The internal state of the module is in fact 1024 bits wide, so the number of D flip-flops isn't going to change much, just the expense of having a large bus running around the chip.
The reason for asking is that the design turned out to be significantly larger than I'd expected (about 5mm^2 on a 180um process), and even with all the internal register state (~1600 bits overall), that was a bit of a surprise.