Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Please be specific.
1. Prerequisites from your knowledge/training point of view?
2. Prerequisites from the design methodology or project mgmt point of view?
3. Prerequisites from the tools to be used point of view?
This is the ASIC(Digital) design forum so are my answers accordingly...
1. Undergrad level logic design, digital system design, RTL coding (VHDl/Verilog)
2. Bottoms up design methodology for beginners, hierarchical design.
3. Begin with design for FPGA implementation - Xilinx/Intel(Altera) provides free IDE suites. e.g- Download the Xilinx_Vivado_SDK_2016.3 IDE along with a free licence. The IDE will equip you with all necessary stuff required from RTL design to FPGA implementation.
If you are associated with an university, then you departmental serves might have the tools installed required for ASIC design. Your lab assistants should be able to help you with more on these.
In my experience top-down involves architecture of a design, which is a more advanced skill, whereas bottom-up design works form a much smaller view of things trying to design a sub-block that does a small part of something bigger. The end result will usually mean that the top-down my have optimizations that cross block boundaries that weren't apparent in the bottom-up approach or may even take completely different approach to the problem that would be very difficult to see from a bottom up approach.
This is why schools teach things like gates AND/OR/XOR/etc and then using those you make a full adder, using the full adder you make a 32-bit adder and then using the 32-bit adder make a 32x32 multiplier. Instead of starting with lets make a 32x32 multiplier, which we will try out designs for radix-2, radix-4, etc.
Personally I use a top-down approach to come up with an overall architecture of a design and for any large sub-blocks of the design, smaller blocks I create using a bottom-up approach.