NERO(1)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… NERO(1) β€” the nero manual, bestie edition πŸŽ€

okay so welcome to nero(1) from the Alliance β€” nero User's Manual fam ✨ this is the Negotiating Router and she is lowkey iconic. let's get into it 🫢


🌸 NAME 🌸

nero β€” Negotiating Router. that's it, that's the name, she routes and she negotiates πŸ’…


✨ SYNOPSIS ✨

nero [ -h ]  [ -v ]  [ -V ]  [ -c ]  [ -2 ]  [ -3 ]  [ -4 ]  [ -5 ]  [
-6 ]  [ -L ]  [ -G ]
 [ --help ]  [ --verbose ]  [ --very-verbose ]  [ --core-dump ]  [
--local ]  [ --global ]
 [ -p placement ]  netlist layout

like literally just nero plus your flags plus netlist plus layout, no big deal 😌


πŸ’– DESCRIPTION πŸ’–

nero is a simple router β€” and yes she said simple β€” suited for small academic designs. currently she can process designs of size up to 4K gates. tiny but mighty fr fr 🧚


🌈 GLOBAL ROUTING 🌈

so here's the vibe check: a design is considered big if it contains nets whose half perimeter is greater than 800 lambdas. global routing is used on big designs. periodt.

in nero, "global routing" means the longest nets are completely routed in a first step using only routing layers numbers 3 & 4. then the smaller nets are routed with all available layers. this implies that when global routing is used, the number of routing layers is forced to at least 4 β€” no cap, that's just how it is πŸ’€

in each step, the nets are routed from the shortest to the longest with the same routing algorithm. consistent queen πŸ‘‘


πŸ¦‹ INVOCATION πŸ¦‹

mandatory arguments (you literally have to give these) πŸ’…

  • netlist : the name of the design, without any extension. please note that unless a -p placement option is given, the file holding the placement is expected to have the same name as the netlist file (short of the extension). iykyk πŸŽ€
  • layout : the name of the resulting routed layout. ⚠️ be careful of not giving the same name as the netlist β€” in that case the initial placement will be silently overwritten. not her gaslighting you, just facts 😭

optional arguments (the fun part) ✨

  • -h, --help β€” print help. a little "here's how this works" moment 🫢
  • -v, --verbose β€” be verbose. she talks πŸ’¬
  • -V, --very-verbose β€” be unbearably verbose. she will NOT stop talking 😭 iconic
  • -c, --core-dump β€” do not prevent the generation of core dumps in case of a crash. mostly used during the development stage πŸ’€
  • -2, -3, -4, -5, -6 β€” set the number of layers used for routing. the default for small designs is 2, and 4 for big ones. when global routing took place, the router will use at least 4 routing layers. slay 🌈
  • -L, --local β€” turn off the global routing stage, whatever the size of the design. > be warned that this will enormously slow down the routing process. like, dramatically. consider yourself warned πŸ™ˆ
  • -G, --global β€” turn on the global routing regardless of the size of the design πŸ”₯
  • -p placement, --place placement β€” specify a name for the placement file different from the netlist name. main character energy, giving your placement its own name πŸ’œ

πŸ“ EXAMPLE πŸ“

route the netlist amd2901_core.vst, using the placement file amd2901_core_p.ap, and store the result in amd2901_core_r. let's gooo ⭐

$ export MBK_IN_LO=vst
$ export MBK_IN_PH=ap
$ export MBK_OUT_PH=ap
$ nero -V --place amd2901_core_p amd2901_core amd2901_core_r

πŸ‘‘ SEE ALSO πŸ‘‘

MBK_IN_LO(1), MBK_OUT_LO(1), MBK_IN_PH(1), MBK_OUT_PH(1), ocp(1), ocr(1), druc(1), cougar(1) β€” go read those too bestie, they're the supporting cast πŸ’–


and that's the whole page!! brought to you by ASIM/LIP6, dated 13 October 2002 β€” vintage but still serving looks 🌸 mwah, go route something cute πŸ’…βœ¨

πŸ“¦ where this page comes from