Reconfigurable system-on-chip and related methods
09634669 ยท 2017-04-25
Assignee
Inventors
- Salvatore Marco ROSSELLI (Catania, IT)
- Daniele Mangano (San Gregorio di Catania, IT)
- Riccardo Condorelli (Tremestieri Etneo/Catania, IT)
Cpc classification
International classification
Abstract
A circuit includes combinational circuit and sequential circuit elements coupled thereto. The circuit includes a multiplexor coupled to the combinational and sequential circuit elements, and a system register is coupled to the multiplexor. At least one portion of the combinational and sequential circuit elements is configured to selectively switch to operate as a random access memory.
Claims
1. A method of operating a reconfigurable digital circuit comprising combinational and sequential circuit elements, the method comprising: selectively switching at least one portion of the sequential circuit elements to operate as random access memory within an address space; remapping the address space to receive a virtual random access memory (VRAM) input when the at least one portion of the sequential circuit elements is switched to operate as the random access memory; receiving the VRAM input at a VRAM combinational logic circuit; and transmitting the VRAM input from the VRAM combinational logic circuit to the sequential circuit elements.
2. The method of claim 1, wherein the digital circuit further comprises an interconnect element, and further comprising making the at least one portion of the sequential circuit elements accessible using the interconnect element.
3. The method of claim 1, further comprising configuring the at least one portion of the sequential circuit elements as word-based logic elements.
4. The method of claim 1, wherein selectively switching the at least one portion of the sequential circuit elements comprises configuring the circuit elements to operate in at least one operational state comprising: operating as sequential circuit elements; recirculating data stored therein; and writing new data therein.
5. The method of claim 4, wherein recirculating comprises using a clock gating cell, and wherein the recirculating and the writing are alternatives to operating as sequential circuit elements.
6. The method of claim 5, wherein the digital circuit comprises a main random access memory, and the at least one portion of the sequential circuit elements are added to the main random access memory using address remapping.
7. A circuit comprising: a plurality of combinational circuit elements; a plurality of sequential circuit elements coupled to the plurality of combinational circuit elements; a multiplexer coupled to the pluralities of combinational and sequential circuit elements; a system register coupled to the multiplexer and configured to remap an address space to receive a virtual random access memory (VRAM) input when at least one portion of the sequential circuit elements is switched to operate as random access memory within the address space; and a VRAM combinational logic circuit coupled to the multiplexer and configured to transmit the VRAM input to the sequential circuit elements.
8. The circuit of claim 7, comprising an interconnect element configured to access the at least one portion of the sequential circuit elements switched to operate as random access memory.
9. The circuit of claim 7, wherein the at least one portion of the sequential circuit elements switched to operate as random access memory is configured as word-based logic elements.
10. The circuit of claim 7, further comprising a clock gating cell coupled to the multiplexer and configured to manage a write operation of data to the at least one portion of the sequential circuit elements switched to operate as random access memory.
11. The circuit of claim 7, wherein the digital circuit comprises a main random access memory, and the at least one portion of the sequential circuit elements switched to operate as random access memory is configured to be added to the main random access memory using address remapping.
12. An apparatus comprising: a digital circuit comprising a plurality of combinational circuit elements, a plurality of sequential circuit elements coupled to the plurality of combinational circuit elements, a multiplexer coupled to the pluralities of combinational and sequential circuit elements, a system register coupled to the multiplexer and configured to remap address space to receive a virtual random access memory (VRAM) input when at least one portion of the plurality of sequential circuit elements is switched to operate as random access memory within the address space, and a VRAM combinational logic circuit coupled to the multiplexer and configured to transmit the VRAM input to the sequential circuit elements.
13. The apparatus of claim 12, wherein the apparatus comprises a microcontroller.
14. The apparatus of claim 12, wherein the apparatus comprises a System-on-Chip.
15. The apparatus of claim 12, comprising an interconnect element configured to access the at least one portion of the sequential circuit elements switched to operate as random access memory.
16. The apparatus of claim 12, wherein the at least one portion of the sequential circuit elements switched to operate as random access memory being configured as word-based logic elements.
17. The apparatus of claim 12, further comprising a clock gating cell coupled to the multiplexer and configured to manage a write operation of data to the at least one portion of the sequential circuit elements switched to operate as random access memory.
18. A non-transitory computer-readable medium storing instructions that, when executed, cause a computing device to: selectively switch at least one portion of sequential circuit elements to operate as random access memory within an address space; remapping the address space to receive a virtual random access memory (VRAM) input when the at least one portion of the sequential circuit elements is switched to operate as the random access memory; receiving the VRAM input at a VRAM combinational logic circuit; and transmitting the VRAM input from the VRAM combinational logic circuit to the sequential circuit elements.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) One or more embodiments will now be described, by way of non-limiting example only, with reference to the annexed figures, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION
(14) In the ensuing description one or more specific details are illustrated, aimed at providing an in-depth understanding of examples of embodiments. The embodiments may be obtained without one or more of the specific details, or with other methods, components, materials, etc. In other cases, known structures, materials, or operations are not illustrated or described in detail so that certain aspects of embodiments will not be obscured.
(15) Reference to an embodiment or one embodiment in the framework of the present description is intended to indicate that a particular configuration, structure, or characteristic described in relation to the embodiment is comprised in at least one embodiment. Hence, phrases such as in an embodiment or in one embodiment that may be present in one or more points of the present description do not necessarily refer to one and the same embodiment. Moreover, particular conformations, structures, or characteristics may be combined in any adequate way in one or more embodiments.
(16) The references used herein are provided merely for convenience and hence do not define the scope of protection or the scope of the embodiments.
(17) The block diagram of
(18) The sequential elements 12 (e.g., edge-triggered D flip-flops) may store states of the digital circuit and may be reset before the system or a certain functionality thereof is started.
(19) When a certain component in the circuit is not used, the values stored by the sequential logic 12 become irrelevant and may be assumed to correspond to the reset states.
(20)
(21) Those of skill in the art will appreciate that the representation of
(22) At the system level, the digital blocks exemplified in
(23) In one or more embodiments as schematically represented in
(24) In one or more embodiments, a system may thus include an IP block where a set of IP registers (e.g., the sequential logic 12) may include, possibly together with other partitions: a first partition 12a including registers which may be configured in a VRAM mode; and a second partition 12b including other registers that, for any reason, may not be held to be suitable for being configured in a VRAM mode.
(25) A purpose of the VRAM mode may be to reconfigure the IP internal registers in a way that they become accessible at a system level essentially as a RAM (as shown in
(26) In one or more embodiments such an approach may involve creating (possibly by re-using a portion of the logic 10see
(27) The system (IP block) may thus operate in two (e.g. mutually exclusive) modes: a conventional IP mode, and a VRAM mode.
(28) At a system level, the configuration register 14 may be added (which may be both external to the IP block or included among the IP block registers) in order to enable/disable the VRAM mode, e.g., via software.
(29) When in such a VRAM mode, the sequential elements in the digital IPs 12a may then act as a memory accessible, e.g., via the interconnect 106 within a certain address space (e.g., the same address as the original peripheral, possibly by remapping/expanding the address space as detailed in the following) with the capability of receiving VRAM inputs, e.g., input data
(30) VRAM DI and issuing corresponding VRAM outputs, e.g., output data VRAM DO.
(31) Reference number 16 in
(32) In one or more embodiments, these two modes may be mutually exclusive and the MUX module 16 (including e.g., a MUX for each register) may keep the two modes (standard IP and VRAM) separate so that the sequential block 12 may receive: the value produced by the logic 10 in a conventional functional mode, or, alternatively, the value from the logic 120.
(33) As schematically represented in
(34) In fact, the logic 10 may be unmodified, while however, with the functional conventional IP mode and the VRAM mode being mutually exclusive, the functional output provided when in the VRAM mode may be meaningless (e.g. ignored, blocked or kept at a known value) since the registers are captured by the other combinational logic.
(35) In one or more embodiments may thus involve providing one or more of: some combinational logic 120, e.g., in order to access and re-organize the sequential elements as words; read/write pointers RD PTR/WR PTR; and decoding logic for the virtual RAM.
(36) In that way, respective input data VRAM DI may be received and respective output data VRAM DO issued by the combinational logic elements 120 when switched to the VRAM mode.
(37) Reference number 1200 in
(38)
(39) For instance, the block diagram of
(40) In one or more embodiments, the values of these two selection signals may produce any of the three following modes of operation:
(41) i) standard functional input data funs_data are taken when in the standard IP mode;
(42) ii) the data stored in the DFF 1200 are recirculated as recirculation_data, when in the VRAM mode with the DFF 1200 not selected for write operation; and
(43) iii) new memory data are selected when, in the VRAM mode, the DFF 1200 is selected for a write operation wr_data.
(44) The logic involved in the VRAM mode may be described at a RTL-level (together with the digital IP) or can be added at a netlist level. For instance, a basic netlist implementation flow may collect topologically-close word-sized groups of DFFs and replace a standard cell with a custom element including the 31 multiplexer, essentially as a scan insertion mechanism.
(45) The block diagram of
(46) For instance, the diagram of
(47) It will be appreciated that, in one or more embodiments, the MUX 1206, which makes it possible to implement recirculation of e.g., a 32-bit word, may not be completely alternative to the MUX 1202 associated with each DFF, but rather adds thereto. The presence of the MUX 1206 and the clock gating mechanism makes it otherwise possible for each 31 MUX 1202 in
(48) In that way, both recirculation and writing of data are manageable (word_enable) as an alternative to IP operation as sequential elements (func_enable).
(49) An implementation relying on such an approach may take advantage of the possibility of sharing similar functional logic (IP mode), which may already be present. In one or more embodiments, clock gating cells may be common, especially in low power designs. The digital unit may then be likely to have several of these already present in its functional (IP mode) implementation which may be used in the VRAM mode with low extra logic requirements.
(50) In one or more embodiments, common digital structures such as register banks, FIFOs and soft memories may be exploited by, turning them into virtual RAMS with a reduced silicon area overhead. In one or more embodiments, the VRAM mode may extensively re-use configuration registers which are addressable by construction.
(51) The diagram of
(52) The block diagram of
(53) While the map of
(54) With the VRAM mode activated, the address map may be reconfigured (in a more common case, it will have to) to receive the new RAM seen by the software as a substitute, extension or (full) repositioning.
(55) One may consider
(56) Stated otherwise, 121 and 122 are (in the IP mode) at the addresses shown in the upper part of the map. When the VRAM mode is activated, the spaces denoted IP1 and IP2 may no longer be accessible by software, while the portions VRAM1 and VRAM2 (which are prohibited in the IP mode) now become accessible. In the example given, the portions VRAM1 and VRAM2 are contiguous to the Main RAM, and the new address map gives to software a single large RAM.
(57) From a system perspective, the software SW can either see a certain RAM at the same address of the original peripheral or at an extension to one of the system RAMs (e.g., through address remapping).
(58) In one or more embodiments, when in the virtual RAM mode a (significant) part of the original interface can be re-used e.g., protocol state machines to communicate over the interconnect 106.
(59) In that respect,
(60)
(61) Efficiency in implementation will aim at increasing the intersection of the logics 10 and 120 (increasing as much as possible the portion of the logic 10 which is re-used to create the logic 120) and reducing the partition 12b to the benefit of the partition 12a (by exploiting as many registers as possible in a VRAM mode).
(62) In one or more embodiments some logic may be devoted to extend the allowed address space. For example, in the IP mode, configuration registers may only be accessed via software SW, while additional flip-flops may be included in the addressable region in the VRAM mode. Address decoders throughout the interconnect 106 may support a remapping function, if present.
(63) Without prejudice to the underlying principles, the details and embodiments may vary, even significantly, with respect to what has been described by way of example only, without departing from the extent of protection. The extent of protection is defined by the annexed claims.