A computer implemented method for designing an application specific integrated circuit, ASIC, which controls an electronic device when the integrated circuit is integrated into the electronic device comprising: receiving values of a selection of categorized control, display, input, and output parameters (57, 59, 61, 63) of an electronic device into a memory of a processor (67, 501) programmed by software commands to design a hardware integrated circuit and associated operating software for controlling the integrated circuit to control the electronic device, the categorized control, display and output parameters derived from a hierarchical data storage defining behavior, operation and communication characteristics of the device in which the integrated circuit is to be embedded; processing by the processor the selected values of the categorized control, display, input, and output parameters (57, 59, 61, 63) of the electronic device received in the memory of the processor in accordance with the software commands to select at least one standardized circuit from a library of standardized circuits, each of the standardized circuits configured to perform a function associated with at least one of the selected values of the categorized control, display, input and output parameters; outputting by the processor (67, 501) an application specific integrated circuit design based on the selected standardized circuits associated with the selected values of the control, display, input, and output parameters (57, 59, 61, 63) of the electronic device, the integrated circuit design including an internal bus for communicating with the electronic device; sending the integrated circuit design for manufacturing; and outputting by the processor (67, 501) software programming commands to be executed by the integrated circuit design for controlling the electronic device in accordance with the selected values of the categorized control, display, input, and output parameters (57, 59, 61, 63) of the electronic device. receiving values of a selection of categorized control, display, input, and output parameters (57, 59, 61, 63) of an electronic device into a memory of a processor (67, 501) programmed by software commands to design a hardware integrated circuit and associated operating software for controlling the integrated circuit to control the electronic device, the categorized control, display and output parameters derived from a hierarchical data storage defining behavior, operation and communication characteristics of the device in which the integrated circuit is to be embedded; processing by the processor the selected values of the categorized control, display, input, and output parameters (57, 59, 61, 63) of the electronic device received in the memory of the processor in accordance with the software commands to select at least one standardized circuit from a library of standardized circuits, each of the standardized circuits configured to perform a function associated with at least one of the selected values of the categorized control, display, input and output parameters; outputting by the processor (67, 501) an application specific integrated circuit design based on the selected standardized circuits associated with the selected values of the control, display, input, and output parameters (57, 59, 61, 63) of the electronic device, the integrated circuit design including an internal bus for communicating with the electronic device; sending the integrated circuit design for manufacturing; and outputting by the processor (67, 501) software programming commands to be executed by the integrated circuit design for controlling the electronic device in accordance with the selected values of the categorized control, display, input, and output parameters (57, 59, 61, 63) of the electronic device.