vGoodtimes
Advanced Member level 4
This thread is intended as a discussion, not as a specific question with a specific answer. Ideally, it will branch out and others will post discussion-oriented threads. Part of this stems from a question of "What is good VHDL/Verilog?"
In this case, it is more for interesting design methods. Times where a simple assumption/concept can be rigorously used to generate a good design.
For me the "big three" are pipelining, block-processing, and channelizing. Pipelining being the realization that an operation can be completed as a series of independent steps and that throughput can be increased at the cost of latency. Block processing is related as is the idea that some operation occur once per "block" of input while others occur once per input. This allows per-block operations to use smaller circuits even when the logic is more complex. Channelizing is the idea that, when feedback is needed, and a pipeline has N stages, N (or more) independent data streams can time share the pipelined logic without modification -- data hazards can't exist because data for the same channel only comes in a 1:N samples at most.
But there are surely several other simple ideas out there. Times when you've had a realization about how a design works and then applied the logic to other problems.
In this case, it is more for interesting design methods. Times where a simple assumption/concept can be rigorously used to generate a good design.
For me the "big three" are pipelining, block-processing, and channelizing. Pipelining being the realization that an operation can be completed as a series of independent steps and that throughput can be increased at the cost of latency. Block processing is related as is the idea that some operation occur once per "block" of input while others occur once per input. This allows per-block operations to use smaller circuits even when the logic is more complex. Channelizing is the idea that, when feedback is needed, and a pipeline has N stages, N (or more) independent data streams can time share the pipelined logic without modification -- data hazards can't exist because data for the same channel only comes in a 1:N samples at most.
But there are surely several other simple ideas out there. Times when you've had a realization about how a design works and then applied the logic to other problems.