This the preliminary version 1.0, so may be it's not perfect


Preliminary:
============
1- unzip,
2- copy the script files to the default script directory
      (normally "c:\\Program Files\\eagle-5.X.0\\scr\\")
3- copy the ulp files to the ulp default directory 
      ( normally "c:\\Program Files\\eagle-5.X.0\\ulp\\")

If your personnal library is not named "mylib": 
  - open "create_symbol.ulp", go to line8 and edit lib_name
  - open "create_package.ulp", go to line8 and edit lib_name
  - open "create_device.ulp", go to line8 and edit lib_name

4- Launch Eagle
5- open your personal library, ex: "open mylib"
6- inside, run the script: "script ports_lbr.scr"
   This will add the hierarchical connectors PORT_IN, PORT_OUT,
   PORT_INOUT, PORT_PAS (passive), PORT_PWRHI (positive power),
   PORT_PWRLO(ground & negative power) to your personal library
7- Save your library "write", close it


How to create hierarchical designs:
===================================
1- Open your design (schematic and board both opened)
2- In SCHEMATIC:
  - place PORT_IN symbol to every input to your expected block (add PORT_IN@mylib)
  - place PORT_OUT symbol to every output to your expected block (add PORT_OUT@mylib)
  - place PORT_INOUT symbol to every input/output to your expected block (add PORT_INOUT@mylib)
  - place PORT_PWRHI symbol to positive supply(ies) to your expected block (add PORT_PWRHI@mylib)
  - place PORT_PWRLO symbol to ground and negative supply(ies) to your expected block (add PORT_PWRLO@mylib)
  - place PORT_PAS symbol to every passive pins to your expected block (add PORT_OUT@mylib)
3- Connect previous ports to corresponding nets using "net"
4- Give values to all previous ports (it's mandatory), these values will be the names of pins later.
    (don't leave any port without a value).
5- Switch to BOARD, and locate the square vias associated with ports just added.
6- move vias as convenient, route the unrouted signals coming to these vias.
7- Save (CTRL+S or write)
8- Switch to SCHEMATIC: type "script make_device", reply always "yes" or "OK"
    watch, at the end, close your opened library, that's all.

conventions:
============
- Let's suppose that our design is test.sch+test.brd
- Typing "script make_device" will create a symbol named "BLOC_TEST.sym",
 a package named "BLOC_TEST.pac" and a device named "BLOC_TEST.dev"
- the prefix of the device is "BLOC"
- In the symbol:
    PORT_IN inputs are placed to the left side of symbol
    PORT_OUT outputs are placed to the right side of symbol
    PORT_INOUT inputs/outputs are placed to the right side of symbol
    PORT_PAS pins are placed to the right side of symbol
    PORT_PWRHI outputs are placed to the upper side of symbol
    PORT_PWRLO outputs are placed to the lower side of symbol
 (we can change these convention later)
    
- In SCHEMATIC, if you want to create just the symbol, you can type "run create_symbol"
- In BOARD, if you want to create just the package, you can type "run create_package"


hierarchical designs:
=====================
- let's suppose that you have successfully created your device "BLOC_TEST"
- open a new schematic, add as many "BLOC_TEST" as you want, they will be
  numbered BLOC1, BLOC2, BLOC3, etc....
- you can add PORT_IN, PORT_OUT, etc....and repeat the above process to create
 a new device "BLOC_TEST2.dev" (if you saved your design as test2.sch+test2.brd)
- open a new schematic, add as many "BLOC_TEST2" as you want, they will be
  numbered BLOC1, BLOC2, BLOC3, etc....
- To go inside a block, just type "run goin bloc2", you will get test2.sch+test2.brd 
  opened
  Again type "run goin bloc1", you will get test.sch+test.brd 
  opened
- To go upwards, just type "run goup"

Any comments are welcomed, and sorry for my poor english.

