Safety and performance for logic design in autonomous vehicles
The present disclosure provides a system and method that retrieves a plurality of logic blocks and a plurality of safety levels corresponding to the plurality of logic blocks. The system and method determines, by a processor, which of the plurality of logic blocks require one or more redundant logic blocks based on their corresponding safety level. The system and method produces a logic design based on the plurality of logic blocks and the one or more redundant logic blocks.
1 . A method comprising:
retrieving a plurality of logic blocks and a plurality of safety levels corresponding to the plurality of logic blocks;
determining, by a processor, which of the plurality of logic blocks require one or more fully redundant logic blocks, and which of the plurality of logic blocks require one or more partially redundant logic blocks based on their corresponding safety level; and
producing a logic design based on the plurality of logic blocks, the one or more fully redundant logic blocks, and the one or more partially redundant logic blocks.
2 . The method of claim 1 , wherein the determining further comprises:
identifying a first logic block from the plurality of logic blocks having a corresponding first safety level;
producing the one or more fully redundant logic blocks that duplicate the first logic block;
identifying a second logic block from the plurality of logic blocks having a corresponding second safety level;
producing the one or more partially redundant logic blocks that are a partial duplication of the second logic block; and
adding, to the logic design, the first logic block, the one or more fully redundant logic blocks, the second logic block, and the one or more partially redundant logic blocks.
3 . The method of claim 2 , further comprising:
identifying one or more third logic blocks having a corresponding third safety level;
determining one or more sizes of the one or more third logic blocks;
determining a reconfigurable logic block size based on the one or more sizes of the one or more third logic blocks; and
adding a reconfigurable logic block to the logic design based on the reconfigurable logic block size.
4 . The method of claim 3 , further comprising:
adding a functional control block into the logic design, wherein the functional control block directs which one of the one or more third logic blocks to load into the reconfigurable logic block.
5 . The method of claim 4 , wherein the functional control block comprises voting logic that produces a final value based on values from the first logic block and the one or more fully redundant logic blocks, and wherein the functional control block comprises selection logic that selects the second logic block or the one or more partially redundant logic blocks for one or more computations.
6 . The method of claim 3 , further comprising:
adding a host interface into the logic design, wherein the host interface loads the one or more third logic blocks to the reconfigurable logic block.
7 . The method of claim 1 , further comprising:
accessing a configuration table that comprises a list of logic block identifiers and the corresponding plurality of safety levels; and
retrieving the plurality of logic blocks from a repository that match the list of logic block identifiers, wherein the repository comprises one or more verified logic blocks.
8 . A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations, the operations comprising:
retrieving a plurality of logic blocks and a plurality of safety levels corresponding to the plurality of logic blocks;
determining, by the processor, which of the plurality of logic blocks require one or more fully redundant logic block, and which of the plurality of logic blocks require one or more partially redundant logic blocks based on their corresponding safety level; and
producing a logic design based on the plurality of logic blocks, the one or more fully redundant logic blocks, and the one or more partially redundant logic blocks.
9 . The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:
identifying a first logic block from the plurality of logic blocks having a corresponding first safety level;
producing the one or more fully redundant logic blocks that duplicate the first logic block;
identifying a second logic block from the plurality of logic blocks having a corresponding second safety level;
producing the one or more partially redundant logic blocks that are a partial duplication of the second logic block; and
adding, to the logic design, the first logic block, the one or more fully redundant logic blocks, the second logic block, and the one or more partially redundant logic blocks.
10 . The non-transitory machine-readable medium of claim 9 , wherein the operations further comprise:
identifying one or more third logic blocks having a corresponding third safety level;
determining one or more sizes of the one or more third logic blocks;
determining a reconfigurable logic block size based on the one or more sizes of the one or more third logic blocks; and
adding a reconfigurable logic block to the logic design based on the reconfigurable logic block size.
11 . The non-transitory machine-readable medium of claim 10 , wherein the operations further comprise:
adding a functional control block into the logic design, wherein the functional control block directs which one of the one or more third logic blocks to load into the reconfigurable logic block.
12 . The non-transitory machine-readable medium of claim 11 , wherein the functional control block comprises voting logic that produces a final value based on values from the first logic block and the one or more fully redundant logic blocks, and wherein the functional control block comprises selection logic that selects the second logic block or the one or more partially redundant logic blocks for one or more computations.
13 . The non-transitory machine-readable medium of claim 10 , wherein the operations further comprise
adding a host interface into the logic design, wherein the host interface loads the one or more third logic blocks to the reconfigurable logic block.
14 . The non-transitory machine-readable medium of claim 8 , wherein the operations further comprise:
accessing a configuration table that comprises a list of logic block identifiers and the corresponding plurality of safety levels; and
retrieving the plurality of logic blocks from a repository that match the list of logic block identifiers, wherein the repository comprises one or more verified logic blocks.
15 . A system comprising:
a processing device; and
a memory to store instructions that, when executed by the processing device cause the processing device to:
retrieve a plurality of logic blocks and a plurality of safety levels corresponding to the plurality of logic blocks;
determine, by a processor, which of the plurality of logic blocks require one or more fully redundant logic blocks, and which of the plurality of logic blocks require one or more partially redundant logic blocks based on their corresponding safety level; and
produce a logic design based on the plurality of logic blocks, the one or more fully redundant logic blocks, and the one or more partially redundant logic blocks.
16 . The system of claim 15 , wherein the processing device further to:
identify a first logic block from the plurality of logic blocks having a corresponding first safety level;
produce the one or more fully redundant logic blocks that duplicate the first logic block;
identify a second logic block from the plurality of logic blocks having a corresponding second safety level;
produce the one or more partially redundant logic blocks that are a partial duplication of the second logic block; and
add, to the logic design, the first logic block, the one or more fully redundant logic blocks, the second logic block, and the one or more partially redundant logic blocks.
17 . The system of claim 16 , wherein the processing device further to:
identify one or more third logic blocks having a corresponding third safety level;
determine one or more sizes of the one or more third logic blocks;
determine a reconfigurable logic block size based on the one or more sizes of the one or more third logic blocks; and
add a reconfigurable logic block to the logic design based on the reconfigurable logic block size.
18 . The system of claim 17 , wherein the processing device further to:
add a functional control block into the logic design, wherein the functional control block directs which one of the one or more third logic blocks to load into the reconfigurable logic block, and wherein the functional control block comprises voting logic that produces a final value based on values from the first logic block and the one or more fully redundant logic blocks, and wherein the functional control block comprises selection logic that selects the second logic block or the one or more partially redundant logic blocks for one or more computations.
19 . The system of claim 17 , wherein the processing device further to:
adding a host interface into the logic design, wherein the host interface loads the one or more third logic blocks to the reconfigurable logic block.
20 . The system of claim 15 , wherein the processing device further to:
access a configuration table that comprises a list of logic block identifiers and the corresponding plurality of safety levels; and
retrieve the plurality of logic blocks from a repository that match the list of logic block identifiers, wherein the repository comprises one or more verified logic blocks.