Skip to content

Blunk-electronic/agile_HW

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demo Project to Demonstrate Agile Hardware Development

This demo project has been made with the CAE tool EAGLE. However the general principle should become clear and can be ported to other design tools. After cloning the repository you have the demo design ready for use. So far no installation is required.

Installation of the Module Instantiator

If you need the software to instantiate EAGLE modules, read the following. By default the "installer" just copies the script "instantiate" to $HOME/bin. This way the user is free to modifiy "instantiate" as she whishes. The bin directory must be created manually if not existing already. Make sure the $PATH environment variable is set properly.

sh install.sh

A target directory may be specified by the user like:

sh install.sh /home/ecad/bin

In order to have "instantiate" available for all users run the following command. This requires root privileges of course:

sh install.sh /usr/local/bin

Module Instantiation

The script script instantiate renames nets of a module so that the user is not required to edit them manually via the grapical user interface. It creates a new schematic and board file with a desired index. It requires arguemts in a fixed order. The explanation comes via an example:

instantiate led_driver_1.sch LED_DRV 1 3

The first argument is the name of the schematic file name. In our case it is led_driver_1.sch. This file and the associated board file led_driver_1.brd must exist already. It can be regarded as the generic module. The second argument LED_DRV is a general prefix that have some net names inside the module. There is for example a net LED_DRV_1_IN. 3rd argument is the input index. Prefix and input index compose a string like LED_DRV_1. The script searches nets that start with the prefix LED_DRV_1 and renames them using the output index, given by the 4th argument, to LED_DRV_3. Other net names like GND or P3V3 are left as they are. So the net LED_DRV_1_IN will be renamed to LED_DRV_3_IN. The script does NOT modify the generic module. It creates a new schematic and a new board file named led_driver_3.sch and led_driver_3.brd.

The console output is show below:

$ instantiate led_driver_1.sch LED_DRV 1 3
input module   : led_driver_1.sch
net prefix     : LED_DRV
index in       : 1
index out      : 3
prefix in full : LED_DRV_1
prefix out full: LED_DRV_3
processing schematic ...
- renaming net LED_DRV_1_IN to LED_DRV_3_IN
- renaming net LED_DRV_1_B to LED_DRV_3_B
- renaming net LED_DRV_1_C to LED_DRV_3_C
- renaming net LED_DRV_1_OUT to LED_DRV_3_OUT
- renaming net LED_DRV_1_IN to LED_DRV_3_IN
processing board ...
- renaming net LED_DRV_1_IN to LED_DRV_3_IN
- renaming net LED_DRV_1_B to LED_DRV_3_B
- renaming net LED_DRV_1_C to LED_DRV_3_C
- renaming net LED_DRV_1_OUT to LED_DRV_3_OUT
generated files:
schematic: led_driver_3.sch
board    : led_driver_3.brd

About

demo project for agile hardware development

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%