Hello community,
Our team plans to tapout a chipyard based design(with our own accelerators and some modifications for the rocketcore) in months , and we already finished all RTL design, simulated using vcs, prototyping on FPGA. I know there is a hammer flow in chipyard. But since there is another team doing the backend stuff for us(syn, par, lvs,drc, etc.), they have their typical toolchains and hesitate to take a look in hammer. This is our teams first tapout, therefore We actually feel a liitle bit anxious about what will happen along the road. I have some confusion, can anyone in the chipyard team shed some lights:
1, I know we need to substitute the cache SRAM and seperate the harness & top-level verilog files. And I am able to do this following the chipyard documentation. But what about the IOCells? There has to be technology node specific IOCells right? We are using chipyard 1.8.1, and I know there are IOBinders and HarnessBinder, most of the IOBinders in chipyard are just simple gpios. How can I substitute these with the foundry specific IOCells? Is there some examples?
The chipyard documentation says there is on-going plan to develop FIRRTL Transforms for this, are there some updates?
2, The sims has its own TestHarness, and fpga prototyping also has its own
TestHarness . In terms of a vlsi flow without harmmer, is there a specific test harness to follow? Or the generated chipyard.TestHarness.Top.v and the substituted sram verilog files are only files needed to pass to the backend? I check the vlsi folder, and there isn't any TestHarness.scala, just a bunch of makrfiles and yamls.There is a generated IOCell.v, Is this only for simulation?
3, Is there some special considerations about reset and clock when tapout a design? My thought is that I only have to insert a foundry pll into the design and Make it a diplomatic clock node and pass it to the holistic clockGroup. Is there some special considerations for Reset?
4, Our team decides to use a 28nm tecnology node, we did not decide which foundry yet because the MPW date, Is it possible that our rocket based design reach a 800MHZ clock rate in this tecnology node? Most of the modifications on rocket are on FPU(from 1bit a time to iterative method) and L2 Cache. Is the origin RocketCore able to run 800MHZ under 28nm?
5), It seems that there are VLSI related FIRRTL transforms according to the following representation:
I know how to invoke Top and Harness Spilt, and Replace Memory, they already are documented in the bartools section. But what are Module Promotion, Module Group and I/O Cell Technology Mapping? How to invoke these Transforms?
Thanks, This is actually a long post, and I really appreciated any reply, It's a little bit diffcult for me to persuade other experts in my company to use chisel and chipyard. I hope the tapout will work just ok, Thanks again.