A PROTOTYPING SYSTEM

Abstract: A prototyping system (100) comprises at least one main board (115) having a plurality of main sockets (210) and a plurality of point-to-point connections (335, 337) for pairs of the main sockets, at least one secondary board (405) having a plurality of contacts for corresponding functional terminals of a hardware programmable device (420), a secondary socket (415) for connecting local resource devices (470) associated with the hardware programmable device and a secondary connector (410) for one of the main sockets, and configuration means (215, 220) for selectively connecting each contact of the secondary board to at least one element selected in a group comprising corresponding leads of the secondary socket and point-to-point connections.

Description: A PROTOTYPING SYSTEM The present invention relates to a prototyping system. Prototyping systems are commonly used for validating electronic circuits. A prototyping system makes it possible to create a physical implementation of the electronic circuit under validation (a prototype) . The prototype is tested in order to determine whether the electronic circuit exhibits the desired features; for example, this is an essential step of the design process of any complex electronic circuit, such as a.digital ASIC (Application Specific Integrated Circuit) . Typically, the prototype is created scattering the electronic circuit across several FPGAs (Field- Programmable Gate Arrays) which are connected together. A known solution consists in using a field-programmable circuit board, which is provided with a grid of holes for plugging in the FPGAs. These holes are grouped into sections, with all holes in a section leading to corresponding pins of a switch matrix; the switch matrices communicate between themselves with direct hardwired connections . This architecture provides a high routing flexibility, since a complete interconnectivity of the FPGAs can be obtained by suitably configuring the switch matrices. However, in the solution described above each signal to be transmitted between two FPGAs must go through many switches. This introduces considerable delays, which reduce the operative frequency of the prototype; therefore, the prototype cannot run at the same speed as the actual electronic circuit. In many cases, a real word system in which the electronic circuit must operate has timing constraints; particularly, some components of the system cannot be slowed down too much, for example because an internal PLL does not work below a threshold frequency. As a consequence, it is not possible to connect the prototype to the target system directly; this does not allow the prototype to be operated and tested under normal working conditions . Similar drawbacks are also suffered using alternative topologies, which have been proposed for interconnecting the FPGAs. For example, known prototyping systems envisages a mesh (wherein each FPGA is connected to the nearest-neighbour FPGAs, possibly through one or more hops) , a cross-bar (wherein the FPGAs are connected to a routing-only element, possibly with a hierarchical structure) , virtual wires (wherein signals are multiplexed over a reduced number of physical wires) , and the like. A different solution for having the prototype to run at a frequency which is close to the one of the actual electronic circuit (real-time prototyping) is that of employing a breadboard. This component consists of a printed circuit board, which is custom designed in order to meet the specific routing requirements of the prototype; the FPGAs are placed onto the board and connected together through conductive tracks of the board or flexible cables. However, constructing a breadboard is an expensive process, in terms of both manpower costs and development time; moreover, it is not possible to re-use the breadboard for a different prototype. The solution described above is very inflexible, since the breadboard cannot be altered in any way. In addition, when the connection of two far-away FPGAs requires the use of a flexible cable, this introduces a significant delay in the signal transmission. It is an object of the present invention to overcome the above mentioned drawbacks. In order to achieve this object, a prototyping system as set out in the first claim is proposed. Briefly, the present invention provides a prototyping system comprising at least one main board having a plurality of main sockets and a plurality of point-to-point connections for pairs of the main sockets, at least one secondary board having a plurality of contacts for corresponding functional terminals of a hardware programmable device, a secondary socket for connecting local resource devices associated to the hardware programmable device and a secondary connector for one of the main sockets, and configuration means for selectively connecting each contact of the secondary board to at least one element selected in a group comprising corresponding leads of the secondary socket and point-to-point connections. Moreover, the present invention also provides a main board for use in this prototyping system and a corresponding prototyping method. Further features and the advantages of the solution according to the present invention will be made clear by the following description of a preferred embodiment thereof, given purely by way of a non-restrictive indication, with reference to the attached figures, in which: Fig. la is a prospective view of the prototyping system, Fig. lb depicts a back-plane of the prototyping system in a schematic view, Fig.2 shows a main board of the prototyping system, Fig.3a and 3b are a schematic block diagram of the main board and of a particular thereof, respectively, Fig.4 and 5 depict different secondary boards of the prototyping system, and Fig.6 is a frontal view of the main board with a debugging board. With reference in particular to Fig. la, there is shown a system 100 used as a physical platform for the fast prototyping of an electronic circuit . The prototyping system 100 includes a back-plane 105, which consists of a multi-layer printed circuit board including supports for communicating with a host computer (not shown in the figure) , both for downloading programming and for uploading data captured during a prototyping process. The back-plane 105 has a plurality of slots 110a, 110b, 110c and llOd arranged on a front surface thereof (four in the example shown in the figure) . A main circuit board 115a, 115b, 115c and 115d is plugged into the respective slot 110a, 110b, 110c and llOd. The back-plane 105 is also provided with several system boards, which are plugged into corresponding slots arranged on a rear surface of the back-plane 105, such as a compact PCI single board computer 120, a compact PCI carrier 125, and a clock board 130. Two cross-bar boards 135a and 135b are plugged into corresponding sockets on the rear surface of the back-plane 105; the cross-bar boards 135a, 135b are arranged along a diagonal line of the back-plane 105. Alternatively, the back-plane has a different number of slots for the main boards, the slots are arranged in a different manner (for example on both the surfaces of the back-plane) , the main boards and the system boards are all provided on the same surface of the back-plane, different system boards are used, and the like. Considering now the front surface of the back-plane 105 shown in the Fig. lb, each slot llOi (with i=a...d) consists of four slot elements llOia, llOib, llOic and llOid. The slot elements llOaa, llOba, llOca and llOda are connected to a PCI bus 140a (associated with the boards 120,125 mounted on the rear surface of the backplane 105) ; similarly, the slot elements llOad, llObd, llOcd and llOdd are connected to a further bus 140b (for example of the ISA type) . The clock board 130 generates a plurality of clock signals (for example eight) , which are distributed to all the slots HOa-llOd by means of a balanced tree of conductive tracks on the back-plane 105. Each cross-bar board 135a, 135b is plugged into a respective socket, which is square-shaped and has a bottom element 145ab,145bb, a top element 145at,145bt, a left element 145al,145bl and a right element 145ar,145br respective to an insertion key 147a, 147b (for a reference key of the cross-bar board 135a, 135b); the sockets (denoted as a whole with 145a and 145b) are turned in order to have the insertion keys facing to each other. The socket element 145at is connected to the slot element llOcb, the socket element 145al is connected to the slot element llOdb, the socket element 145ab is connected to the slot element llOab, and the socket element 145ar is connected to the slot element llObb. On the other hand, the socket element 145bt is connected to the slot element llObc, the socket element 145bl is connected to the slot element llOac, the socket element 145bb is connected to the slot element llOdc, and the socket element 145br is connected to the slot element llOcc. Likewise considerations apply if the back-plane has a different structure, if each slot consists of a different number of elements (down to a single one) , if the buses are of a different type or are shorter (for example connecting only three slot elements) , if the sockets are used for plugging different components (such as a bridge) , and so on. Considering now Fig.2, a generic main board 115 consists of a multi-layer printed circuit board (for example with 16 layers) having an edge connector formed by four elements 205a, 205b, 205c and 205d, which are plugged into the corresponding slot elements of the back- plane. The main board 115 is provided with four sockets, which are arranged at respective edges of a rectangle on a front surface of the main board 115. The i-th socket (with i=a..d) is square-shaped and has a bottom element 210ib, a top element 210it, a left element 210il and a right element 210ir respective to an insertion key 212i. A bank of electronic switches is placed around the respective socket (denoted as a whole with 210a, 210b, 210c and 210d) . The i-th bank of switches consists of a bottom set 215ib, a top set 215it, a left set 210il and a right set 210ir, which are associated with the respective socket elements 210ib, 210it, 210il and 210ir. The switches (denoted as a whole with 215a, 215b, 215c and 215d) are controlled by a flash E 2 PROM 220a, 220b, 220c and 22Od, respectively, which are mounted onto the main board 115 inside the corresponding sockets 210a, 210b, 210c and 210d. A forward socket 225a and 225d is provided on the front surface of the main board 115 (to the left of the socket 210a and 210d, respectively) ; a backward socket 230a and 230d is provided on a rear surface of the main board 115 (to the right of the forward socket 225a and 225d, respectively) , and a further forward socket 235a and 235d is placed on the front surface of the main board 115 (to the right of the socket 210a and 210d, respectively) . Moreover, a further backward socket 240b and 240c is placed on the rear surface of the main board 115 (to the left of the socket 210b and 210c, respectively) . The forward sockets 225a, 225d, 235a and 235d are used to connect the main board 115 to a next adjacent main board (facing the main board 115) ; similarly, the) backward sockets 230a, 230d, 240b and 240c are used to connect the main board 115 to a previous adjacent main board. In particular, each forward socket is connected to the corresponding backward socket of the next main board by means of a flat printed circuit 245 terminating with matching connectors (as shown in the figure for the forward socket 225d) . With reference to Fig.3a, each socket element consists for example of 228 female leads, or holes, and 6 power supply holes for providing three distinct power supply voltages; the holes are numbered (from 0 to 227) starting from the insertion key along the adjacent socket elements. The sockets 210a-210d are turned in order to have the insertion keys 212a-212d facing inward the rectangle along which the sockets 210a-210d are arranged. Each edge connector 205a-d consists of 228 male leads, or pins, and 6 power supply blades; the pins of the edge connector elements 205a, 205b are numbered from the bottom to the top, whereas the pins of the edge connector elements 205c, 205d are numbered from the top to the bottom. The edge connector elements 205a, 205d allow the main board 115 to access the respective buses provided on the back-plane, and the edge connector elements 205b, 205c allow the main board 115 to access the respective cross-bar boards plugged into the back-plane. A connection 31Oca extends between the socket element 210cb and the edge connector element 205a, and a connection 310bd extends between the socket element 210br and the edge connector element 205d; a connection 310cb extends between the socket element 210cr and the edge connector element 205b, and a connection 310bc extends between the socket element 210bb and the edge connector element 205c. The forward and backward sockets (each one consisting of 228 male leads numbered from the bottom to the top) are connected to corresponding socket elements. Particularly, a connection 315a extends between the socket element 21Oar and the forward socket 225a, and a connection 315d extend between the socket element 210db and the forward socket 225d; a connection 320a extends between the socket element 210ab and the backward socket 230a, a connection 320d extend between the socket element 210dr and the backward socket 23Od, a connection 325a extends between the socket element 210al and the forward socket 235a, and a connection 325d extend between the socket element 210dt and the forward socket 235d. Moreover, a connection 330b extends between the socket element 210bt and the backward socket 240b, and a connection 330c extend between the socket element 210cl and the backward socket 240c. The main board 115 further includes several point- to-point connections for pairs of the sockets 210a-d. Particularly, a connection 335ab-br extends between the socket elements 210ab and 210br, a connection 335bb-cr extends between the socket elements 210bb and 210cr, a connection 335cb-dr extends between the socket elements 210cb and 210dr, and a connection 335db-ar extends between the socket elements 210db and 21Oar. Moreover, a connection 335al-ct extends between the socket elements 210al and 210ct, a connection 335at-cl extends between the socket elements 210at and 210cl, a connection 335bt- dl extends between the socket elements 210bt and 210dl, and a connection 335bl-dt extends between the socket elements 210bl and 210dt. Moreover, a connection 337at-dl extends between a first half of the holes of the socket elements 210at and 210dl, and a connection 337bl-ct extends between a first half of the holes of the socket elements 210bl and 210ct. A connection 337at-bl extends between a second half of the holes of the socket elements 21Oat and 21Obi, and a connection 337ct-dl extends between a second half of the holes of the socket elements 210ct and 210dl. Preferably, the two halves of the holes of the socket elements are interleaved at blocks, each one consisting for example of 8 holes. The above described connections are implemented by means of one or more conductive tracks (each one provided on a corresponding layer of the main board 115) , which are coupled through via-holes. Likewise considerations apply if the main board has a different number of edge connector elements, if the switches and the memories are placed elsewhere, if the main board is provided with a different number of forward and backward sockets; alternatively, the sockets have a different shape, they are of the male type or they include a different number of leads, the sockets are coupled in a different manner with the edge connectors, the backward and forward sockets, or the other sockets, the main board is provided with a bus to which corresponding socket elements are connected in parallel, and the like . The holes of each socket element are selectively connected to one or more of the corresponding connections by means of the respective switches. For example, as shown in Fig.3b, each hole of the socket element 210ab is connected (by means of a conductive track) to a terminal of a first and a second of the switches 215ab; the other terminal of the first switch is connected to a line of the connection 320a, and the other terminal of the second switch is connected to a line of the connection 335ab-br. The two switches associated with each hole of the socket element 210ab (implemented for example by means of pass-transistors) are controlled by respective signals provided by the memory 220a; for example, a bit stored into the memory 220a controls the switch in an open or in a closed condition when the bit has the value 0 or 1, respectively. In this way, the combinations 01 and 10 alternatively connect the hole of the socket element 210ab to the corresponding line of the connection 320a or of the connection 335ab-br, whereas the combination 00 insulates the hole of the socket element 210ab from both the connection 320a and the connection 335ab-br (the combination 11, connecting the hole of the socket element 210ab simultaneously to the connection 320a and to the connection 335ab-br, is preferably not used) . Advantageously, the socket element 210ab is split into several sets of sequential holes (for example 28 sets each one of 8 holes, with the remaining 4 holes reserved for programming the system through a JTAG interface) . All the switches 215ab associated with the holes of each set are controlled by the same pair of bits provided by the memory 220a. Alternatively, the switches are implemented by different electronic components, the memory controls the switches in a different manner, each bit controls a different number of switches, and the like. Considering now Fig.4, the prototyping system includes one or more secondary boards 405, which are mounted onto the main board. A connector is arranged on a lower surface of the secondary board 405, and a socket is arranged on an upper surface of the secondary board 405 (inside the connector in plan view) . The connector and the socket are square-shaped, with a respective bottom element 410b, 415b, a respective top element 410t,415t, a respective left element 4101,4151 and a respective right element 410r,415r relative to a reference key 417 (for the insertion key of a corresponding socket of the main board) . Each connector element consists of 228 male leads, or pins, and 6 power blades (matching a corresponding socket element of the main board) , and each socket element consists of 228 holes and 6 power holes; the pins and the power blades of the connector (denoted as a whole with 410) are coupled with corresponding holes of the socket (denoted as a whole with 415) through conductive tracks and via-holes. An FPGA 420 and an E 2 PROM 425 are mounted on the upper surface of the secondary board 405, inside the socket 415. Particularly, the secondary board 405 is provided with a plurality of conductive pads (or other equivalent contacts) for surface mounting of corresponding terminals of the FPGA 420 and the memory 425 (for example of the ball grid array type) . The memory 425 is used to configure the FPGA 420, to which it is connected through conductive tracks (and via-holes) . The FPGA 420 has a reference edge (identified by a chamfer) , which faces the insertion key 417. Two power converters 440a and 440b are also mounted on the lower surface of the secondary board 405 (at opposed edges thereof) . The converters 440a,b are connected to the power blades of the connector 410 (for receiving the power supply voltages provided by the backplane through the main board) ; the converter 440a and the converter 440b supplies the FPGA 420 and the memory 425, respectively (for example with a voltage of lower value) . The pads of the secondary board 405 (on which the FPGA 420 is mounted) are connected to corresponding pins of the connector 410 and to corresponding holes of the socket 415. In this way, functional terminals of the FPGA 420 (distinct from power supply terminals connected to the converter 440a and configuration terminals connected to the memory 425) are connected to both the connector 410 and the socket 415. One to four auxiliary boards 450 (only one shown in the figure) are mounted onto the secondary board 405. A connector element 455 and an opposed socket element 460 are arranged on a lower surface and on an upper surface, respectively, of the auxiliary board 450. The connector element 455 consists of 228 male pins and 6 power blades matching a corresponding element of the socket 415, and the socket element 460 consists of 228 holes (without any power hole) . The pins of the connector element 455 are coupled with corresponding holes of the socket element 460 through via-holes. The auxiliary board 450 carries local resource devices (such as memory modules) used by the FPGA 420. Particularly, both the lower surface and the upper surface of the auxiliary board 405 is provided with a plurality of conductive pads for surface mounting of corresponding terminals of local memory modules 470 (four on both surfaces in the example shown in the figure) . The pads of the auxiliary board 450 are connected to corresponding pins of the connector element 455 and to corresponding holes of the socket element 460; in this way, -functional terminals of local memories 470 (distinct from power supply terminals connected to the power blades of the connector 455) are connected to corresponding functional terminals of the FPGA 420. Likewise considerations apply if the secondary board has a different structure, if the socket has a different number of elements (down to a single element) , if the FPGA is of a different type, if it is replaced by an MPGA (or one or more equivalent hardware programmable devices, wherein it is possible to configure the internal physical connections) , if a different number of power converters are provided (down to a single one) , if the auxiliary board has a different structure, if it carries a different number of memory modules (down to a single one) or any other device which is locally used by the FPGA, and the like. A different type of secondary board 505 to be mounted onto the main board is depicted in Fig.5. A connector similar to the one described above, which is square-shaped and with a bottom element 510b, a top element 510t, a left element 5101 and a right element 510r relative to a reference key 517 (for the insertion key of a corresponding socket of the main board) , is arranged on a lower surface of the secondary board 505; a socket consisting of two parallel elements 515a and 515b is arranged on an upper surface of the secondary board 505. Each connector element consists of 228 pins and 6 power blades (matching a corresponding socket of the main board) , and each socket element consists of 228 holes and 6 power holes. The power blades of the connector 510 are coupled with the corresponding power holes of the socket 515 (through conductive tracks and via-holes) . A microprocessor 520, an E 2 PR0M 525 and a SRAM 540 are mounted on the upper surface of the secondary board 505, inside the connector 510 in plan view. Particularly, the secondary board 505 is provided with a plurality of conductive pads (or other equivalent contacts) for surface mounting of corresponding terminals of the microprocessor 520, the E 2 PROM 525 and the SRAM 540. The memory 525 stores a program controlling the microprocessor 520, and the memory 540 is used by the microprocessor 520 as a working memory. The microprocessor 520 has a reference edge (identified by a chamfer), which faces the reference key 517. A memory module 550a and 550b (such as of the DIMM type) , is plugged into the respective socket element 515a and 515b; each memory module 550a, b consists of a board with and edge connector (matching the socket element 515a, 515b) which carries several DRAMs. Some pads of the secondary board 505 (on which the microprocessor 520 is mounted) are connected to corresponding pins of the connector 510, whereas some other pads are connected to corresponding holes of the socket 515. In this way, a first sub-set of functional terminals of the microprocessor 520 is coupled with the memory modules 550a,b and a second sub-set of functional terminals of the microprocessor 520 is coupled with the connector 510. Likewise considerations apply if the secondary board has a different structure, if the socket has a different number of elements or if the secondary board has no socket, if the microprocessor is replaced by an I/O device (or one or more equivalent not-hardware programmable devices) , if the memory modules are of a different type (such as SIMMs) , and the like. With reference now to Fig.6, the secondary boards 405 and 505 are mounted onto the main board 115; particularly, the connector 410 is plugged into the socket 210a and the connector 510 is plugged into the socket 210b. The auxiliary board 450 in mounted onto the secondary board 405; particularly, the connector element 455 is plugged into the socket element 415t. No auxiliary board is plugged into the other socket elements (such as the socket element 415b shown in the figure) . In this case, an extender board 605 is provided; the extender board has a connector element 610 (arranged on a lower surface thereof) and an opposed socket element 615 (arranged on an upper surface thereof) . The connector element 610 consists of 228 male pins (without any power blade) and the socket element 615 consists of 228 holes (without any power hole) . The pins of the connector element 610 are coupled with the corresponding holes of the socket element 615 through conductive via-holes. The system further includes a debugging board 620, which is mounted on top of the above described stack. Multiple connectors 625 are arranged on a lower surface of the debugging board 620, and multiple sockets 630 are arranged on an upper surface thereof. Each connector 625 is square-shaped, with four elements (each one consisting of 228 pins) matching corresponding socket elements 455 or 610. Each socket 630 includes several holes for plugging corresponding probe terminals connected to the host computer (not shown in the figure) . The connectors 625 and the sockets 630 are coupled (though conductive tracks and via-holes) with a switch matrix 635 (mounted onto the upper surface of the debugging board 620) , which selectively connects each pin of the connectors 625 to a corresponding hole of the sockets 630. Similar considerations apply if the extender board and the debugging board have a different structure, if the socket of the debugging board has a different number of holes (for the probe terminals) , if the holes of the socket and the pins of the connector on the debugging board are connected in a different manner, and the like. Each time the design of an electronic circuit under validation has been scattered across several FPGAs, these FPGAs are mounted onto corresponding secondary boards. The local resource devices for each FPGA are mounted onto auxiliary boards, which are plugged into the secondary board carrying the FPGA. The other devices (such as microprocessors and I/O units) defining the real word system in which the electronic circuit must operate are mounted onto different secondary boards. All the secondary boards (carrying the FPGAs or the other devices) are plugged into corresponding sockets of the main boards. The main boards are then mounted onto the back-plane (together with the other system boards) . The system is connected to the host computer controlling the prototyping process. Particularly, configuration data for the FPGAs and the programs controlling the microprocessors are downloaded into the corresponding memories through the JTAG interface . In a similar manner, the memories associated with each socket of the main boards are loaded with configuration data for the respective switches, in order to define the required connectivity of the system. More specifically, when an auxiliary board is plugged into a socket element of the secondary board, the corresponding switches on the main board are both open, so that the holes of the socket on the main bard, and then also the terminals of the FPGA, are only connected to the terminals of the local resource devices mounted onto the auxiliary board (being insulated from the connections of the main board) . Conversely,- when a socket element of the secondary board is free, one or more of the corresponding switches on the main board are closed, so that the holes of the socket on the main board, and then also the terminals of the FPGA, are coupled with the selected connections on the main board; as a consequence, the FPGA is connected to another FPGA or to a different device either on the same main board (through a point-to- point connection) or on a different main board (through a bus of the back-plane, a cross-bar board of the back- plane, or a flexible printed circuit) . More generally, the prototyping system of the present invention comprises one or more main boards having a plurality of main sockets and a plurality of point-to-point connections for pairs of the main sockets; the system further includes one or more secondary boards having a plurality of contacts for corresponding functional terminals of a hardware programmable device, a secondary socket for connecting local resource devices associated with the hardware programmable device and a secondary connector for one of the main sockets; configuration means are used to selectively connect each contact of the secondary board to one or more elements selected in a group comprising corresponding leads of the secondary socket and point-to-point connections. The solution of the present invention provides a prototyping system wherein the local resource devices are directly placed where they are used (by the FPGAs) . Moreover, the signal transmission delay is substantial isotropic and is very low (for example of a few ns) . This allows the prototyping system to run at the same speed as the actual electronic circuit (for example in the order of 100 MHz) , so that the prototype can be operated and tested under normal working conditions. The time required for setting up a new prototype is substantially reduced (when compared with the one required by a breadboard) . Moreover, the system can be re-used for different prototypes, so that the investment required can be recovered in a short time. The solution of the invention is very flexible, since the connectivity scheme can be readily altered. This result is obtained with a structure on which not any prototype can be fitted, since a complete interconnectivity is not provided. However, the inventors have devised a structure which accommodates the commonalties that have been identified among several design categories, so that most of the electronic circuits can be tested with the prototyping system of the present invention. The preferred embodiment of the invention described above offers further advantages. Particularly, the provision of the switches on the main boards (with the terminals of the FPGAs always connected to the socket of the corresponding secondary board) is particularly efficient. Moreover, the connection of each hole of the sockets on the main board to two switches is a good compromise between flexibility and simplicity. The memory controlling the switches of each set with the same bits reduces the control signals required, however maintaining a good flexibility. In any case, the prototyping system of the present invention leads itself to be implemented even placing the switches on each secondary board (for selectively connecting the terminals of the FPGA either to the socket or to the connector and then to a point-to- point connection on the main board, hardwired coupled thereto) , connecting each hole of the sockets on the main board to three or more switches, with a distinct control signal (provided by the respective memory) for each switch, with the same control signal which controls the corresponding switches at both ends of each point-to- point connection (with memories of lower capacity, but with a more complex routing of the control signals) , and the like. The provision of four sockets arranged at corresponding edges of a rectangle on the same surface of each main board has been found to be the preferred topology; moreover, experimental results have shown that by placing the insertion keys facing inward the rectangle it is possible to optimise the routing on the main board (reducing the number of layers required) . Alternatively, each main board has a different number of sockets (down to a single socket) or the sockets are turned differently. The provision of several adjacent main boards connected together (by means of the backward and forward sockets) further increases the connectivity capability of the prototyping system. Moreover, the use of flexible printed circuits (with a transmission time of a few ns) does not introduce any slow down of the system. The arrangement of the main boards (extending perpendicularly to the back-plane and facing the adjacent main boards) facilitates their interconnection. Moreover, the cross-bar boards and the buses on the back-plane still further increase the connectivity capability of the prototyping system. However, the prototyping system of the present invention leads itself to be implemented even connecting the main boards together in a different way, arranging the main boards elsewhere (for example extending from both the surfaces of the back-plane) , with a different number of cross-bar boards and buses on the back-plane (down to a single cross-bar board and/or a single bus) , and the like. Alternatively, no backward and forward socket are provided on the main boards (being connected together only via the back-plane) , or the prototyping system consists of a single main board (without any backplane) . The power leads (holes and blades) with the associated power converters make it possible to use devices which require a supply voltage of any value. Moreover, the particular secondary boards (for the microprocessors) allow pre-made devices to be readily inserted into the prototyping system. The arrangement of the socket and the connector on opposed surfaces of the secondary boards provides a very compact structure. Alternatively, the power supply is distributed to the secondary boards in a different way, no power converter is provided, the prototyping system includes only a single type of secondary boards (for all the devices) , the secondary boards have a different structure (for example with edge connectors) , and the like. The particular structure of the auxiliary boards facilitates the use of the debugging board. Moreover, the extender boards allow the debugging board to be readily connected to the system even when one or more socket elements of the secondary board are free. However, the solution of the present invention leads itself to be implemented even with a different structure of the auxiliary boards (for example of the SIMM or DIMM type) , with a different connection of the debugging board (even without any extender board) , with probing-plug directly on the main board and secondary boards, and the like. Naturally, in order to satisfy local and specific requirements, a person skilled in the art may apply to the solution described above many modifications and alterations, all of which, however, are included within the scope of protection of the invention as defined by the following claims.

Claims: CLAIMS 1. A prototyping system (100) comprising at least one main board (115) having a plurality of main sockets (210) and a plurality of point-to-point connections (335,337) for pairs of the main sockets, characterised in that the prototyping system includes at least one secondary board (405) having a plurality of contacts for corresponding functional terminals of a hardware programmable device (420) , a secondary socket (415) for connecting local resource devices (470) associated with the hardware programmable device and a secondary connector (410) for one of the main sockets, and configuration means (215,220) for selectively connecting each contact of the secondary board to at least one element selected in a group comprising corresponding leads of the secondary socket and point-to-point connections . 2. The prototyping system (100) according to claim 1, wherein each contact of the secondary board is connected to a corresponding lead of the secondary socket (415) and to a corresponding lead of the secondary connector (410) , and wherein the main board (115) includes a plurality of electronic switches (215) for connecting each lead of the main socket (210) to the selected at least one element on the main board. 3. The prototyping system (100) according to claim 2, wherein each electronic switch (215) has a first and a second terminal, the first terminal being connected to a corresponding point-to-point connection (335,337) and each lead of the main socket (210) being connected to the second terminal of two switches. 4. The prototyping system (100) according to claim 2 or 3, wherein the main board (115) includes, for each main socket (210) , a memory (220) providing a plurality of control signals each one controlling a plurality of the switches (215) . 5. The prototyping system (100) according to any claim from 1 to 4, wherein the plurality of main sockets consists of four main sockets (210) arranged at corresponding edges of a rectangle on a surface of the main board (115) , each main socket (210) having an insertion key facing inward said rectangular. 6. The prototyping system (100) according to any claim from 1 to 5, wherein the at least one main board consists of a plurality of main boards (115) each one having at least one forward socket (225,235) and at least one backward socket (230,240), said group further comprising corresponding leads of the at least one forward socket and corresponding leads of the at least one backward socket, and wherein the prototyping system further includes means (245) for connecting each forward socket to the corresponding backward socket of an adjacent main board. 7. The prototyping system (100) according to claim 6, wherein the connecting means consists of a flat printed circuit (245) . 8. The prototyping system (100) according to claim 6 or 7, further comprising a back-plane (105) for supporting the main boards (115) , each main board extending perpendicularly to the back-plane and facing the corresponding adjacent main board. 9. The prototyping system (100) according to claim 8, wherein each main board (115) includes an edge connector (205) with a plurality of elements, said group further comprising corresponding leads of the edge connector elements, and wherein the back-plane (105) has a slot (110) with a plurality of elements for the edge connector of each main board, at least one cross-bar board (135a, 135b) and at least one back bus (140a, 140b), the at least one cross-bar board and the at least one back bus being connected to corresponding elements of the slot. 10. The prototyping system (100) according to any claim from 1 to 9, wherein each secondary connector (410) includes a plurality of power supply leads, the secondary board (405) further including at least one power converter (440a, 440b) connected between corresponding supply leads and contacts of the secondary board. 11. The prototyping system (100) according to any claim from 1 to 10, further comprising at least one further secondary board (505) having a plurality of contacts for corresponding functional terminals of a not- hardware programmable device (520) , a further secondary socket (515) for connecting local resource devices (550) associated with the not-hardware programmable device and a further secondary connector (510) for one of the main sockets, the contacts of the further secondary board including a first and a second sub-set, each contact of the first sub-set being connected to a corresponding lead of the further secondary socket (515) and each contact of the second sub-set being connected to a corresponding lead of the further secondary connector (510) . 12. The prototyping system (100) according to claim 11, wherein each secondary board (405) and each further secondary board (505) has a first and a second opposed main surface, the first surface facing the main board (115) and carrying the secondary connector (410) or the further secondary connector (510) , respectively, and the second surface carrying the secondary socket (415) or the further secondary socket (515) , respectively. 13. The prototyping system (100) according to any claim from 1 to 12, wherein each secondary socket (415) includes at least one element (415t,b,l,r) , the system (100) further comprising at least one auxiliary board (450) , the auxiliary board having a plurality of contacts for corresponding functional terminals of the local resource devices (470) , an auxiliary connector element (455) for one of the secondary socket elements and an auxiliary socket element (460) , each lead of the auxiliary connector element being connected to a corresponding contact of the auxiliary board and to a corresponding lead of the auxiliary socket element, and at least one debugging board (620) having a plurality of debugging connector elements (625) for corresponding auxiliary socket elements (460) , a plurality of debugging sockets (630) and means (635) for selectively connecting each lead of the debugging sockets to a corresponding lead of the debugging connector elements. 14. The prototyping system (100) according to claim 13, further comprising at least one extender board (605) having an extender connector element (610) for one of the secondary socket elements (415) and an extender socket element (615) for one of the debugging connector elements (625) , each lead of the extender connector element being connected to a corresponding lead of the extender socket element. 15. A main board (115) for use in the prototyping system (100) according to any claim from 1 to 14, the main board including said plurality of main sockets (210) , said plurality of point-to-point connections (335,337), and said configuration means (215,220). 16. A prototyping method comprising the steps of: providing at least one main board (115) having a plurality of main sockets (210) and a plurality of point- to-point connections (335,337) for pairs of the main sockets, providing at least one secondary board (405) , mounting a hardware programmable device (420) onto the secondary board by connecting a plurality of functional terminals of the hardware programmable device to corresponding contacts of the secondary board, mounting local resource devices (47,0) associated with the hardware programmable device into a secondary socket (415) of the secondary board, mounting the secondary board onto the main board by connecting a secondary connector (410) of the secondary board to one of the main sockets, and selectively connecting each contact of the secondary board to at least one element selected in a group comprising corresponding leads of the secondary socket and corresponding point-to-point connections.

Inventors: FERLONI MAURO, GEMELLI RICCARDO, PAVESI MARCO, FERLONI, MAURO, GEMELLI, RICCARDO, PAVESI, MARCO
Applicants: FERLONI MAURO, GEMELLI RICCARDO, ITALTEL SPA, PAVESI MARCO, FERLONI, MAURO, GEMELLI, RICCARDO, ITALTEL S.P.A., PAVESI, MARCO
Application year: 2000
Main classification: G06F17
IPC codes: G06F17, H05K1