Network interface unit including a microcontroller having multiple configurable logic blocks, with a test/program bus for performing a plurality of selected functions
First Claim
1. A microcontroller formed upon a single monolithic semiconductor substrate, comprising:
- an execution unit, comprising;
a processor core configured to execute instructions and to produce output signals during instruction execution;
a plurality of configurable logic blocks coupled to receive the output signals;
wherein during a programming operation the output signals comprise programming signals, and wherein the programming signals configure each of the configurable logic blocks to perform a selected function; and
wherein following the programming operation each of the configurable logic blocks performs the selected function in response to the output signals;
an operand bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the operand bus, and wherein the operand bus conveys output signals from the processor core to each of the plurality of configurable logic blocks;
a result bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the result bus, and wherein the result bus conveys signals from each of the plurality of configurable logic blocks to the processor core;
a control bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the control bus, and wherein the control bus conveys control signals between the processor core and each of the plurality of configurable logic blocks; and
a test/program bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the test/program bus, and wherein the test/program bus conveys testing signals used to assess proper operation of the plurality of configurable logic blocks, and wherein the test/program bus also conveys the programming signals from the processor core to each of the plurality of configurable logic blocks.
3 Assignments
0 Petitions
Accused Products
Abstract
A network interface unit is presented including a microcontroller having multiple blocks of programmable logic that are variably configurable to perform selected functions. The network interface unit may be configured to assemble, transmit, and receive data units (i.e., frames) of one communication protocol, then later reconfigured to assemble, transmit, and receive frames of another protocol. The microcontroller includes several components formed upon a single monolithic semiconductor substrate, among them an execution unit. The execution unit includes a processor core and multiple configurable logic blocks (CLBs) coupled to the processor core. The processor core is configured to execute instructions, for example x86 instructions. Each of the multiple CLBs includes programmable logic which may be, for example, PLA circuitry, PAL circuitry, or FPGA circuitry. The programmable logic includes programmable switching elements such as, for example, EPROM elements, EEPROM elements, or SRAM elements. During instruction execution, the processor core produces output signals. During a programming operation, the output signals include programming signals which configure the programmable logic within one or more of the multiple CLBs to perform selected functions. Once programmed, each CLB performs the selected function in response to output signals produced by the processor core. The network interface unit also includes one or more memory devices and an electrical interface unit. The one or more memory devices store instructions and data used by the processor core. The electrical interface unit is adapted for coupling to the network transmission medium and performs as an interface between the microcontroller and the network transmission medium.
114 Citations
18 Claims
-
1. A microcontroller formed upon a single monolithic semiconductor substrate, comprising:
-
an execution unit, comprising;
a processor core configured to execute instructions and to produce output signals during instruction execution;
a plurality of configurable logic blocks coupled to receive the output signals;
wherein during a programming operation the output signals comprise programming signals, and wherein the programming signals configure each of the configurable logic blocks to perform a selected function; and
wherein following the programming operation each of the configurable logic blocks performs the selected function in response to the output signals;
an operand bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the operand bus, and wherein the operand bus conveys output signals from the processor core to each of the plurality of configurable logic blocks;
a result bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the result bus, and wherein the result bus conveys signals from each of the plurality of configurable logic blocks to the processor core;
a control bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the control bus, and wherein the control bus conveys control signals between the processor core and each of the plurality of configurable logic blocks; and
a test/program bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the test/program bus, and wherein the test/program bus conveys testing signals used to assess proper operation of the plurality of configurable logic blocks, and wherein the test/program bus also conveys the programming signals from the processor core to each of the plurality of configurable logic blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7)
a configurable logic block (CLB) interconnect bus having a plurality of signal lines used to convey signals; and
a plurality of configurable switch blocks, wherein each of the plurality of configurable switch blocks corresponds to one of the plurality of configurable logic blocks, and wherein each of the plurality of configurable switch blocks selectively couples the corresponding configurable logic block to the CLB interconnect bus.
-
-
6. The microcontroller as recited in claim 5, wherein each of the configurable switch blocks includes a plurality of programmable switching elements, and wherein each of the plurality of configurable switch blocks is coupled to the test/program bus, and wherein the test/program bus conveys the programming signals from the processor core to each of the plurality of configurable switch blocks, and wherein the programming signals configure each of the plurality of configurable switch blocks.
-
7. The microcontroller as recited in claim 1, further comprising:
-
a bus interface unit coupled to the execution unit and configured to produce an address signal in response to output signals produced by the processor core of the execution unit; and
a chip select unit coupled to receive the address signal and configured to produce a chip select signal in response to the address signal.
-
-
8. A microcontroller formed upon a single monolithic semiconductor substrate, comprising:
-
a core bus having a plurality of signal lines for conveying signals;
an execution unit coupled to the core bus, comprising;
a processor core configured to execute instructions and to produce output signals during instruction execution;
a plurality of configurable logic blocks coupled to receive the output signals;
wherein during a programming operation the output signals comprise programming signals, and wherein the programming signals configure each of the configurable logic blocks to perform a selected function; and
wherein following the programming operation each of the configurable logic blocks performs the selected function in response to the output signals;
a bus interface unit coupled to the core bus and configured to produce an address signal in response to output signals produced by the processor core of the execution unit; and
a chip select unit coupled to the core bus and configured to produce a chip select signal in response to the address signal;
an operand bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the operand bus, and wherein the operand bus conveys output signals from the processor core to each of the plurality of configurable logic blocks;
a result bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the result bus, and wherein the result bus conveys signals from each of the plurality of configurable logic blocks to the processor core;
a control bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the control bus, and wherein the control bus conveys control signals between the processor core and each of the plurality of configurable logic blocks;
a CLB interconnect bus having a plurality of signal lines used to convey signals;
a plurality of configurable switch blocks, wherein each of the plurality of configurable switch blocks corresponds to one of the plurality of configurable logic blocks, and wherein each of the plurality of configurable switch blocks selectively couples the corresponding configurable logic block to the CLB interconnect bus;
a test/program bus having a plurality of signal lines, wherein the processor core, each of the plurality of configurable logic blocks, and each of the plurality of configurable switch blocks are coupled to the test/program bus, and wherein the test/program bus conveys testing signals used to assess proper operation of the plurality of configurable logic blocks, and wherein the test/program bus also conveys the programming signals from the processor core to each of the plurality of configurable logic blocks and to each of the plurality of configurable switch blocks. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A network interface unit for coupling a communication device to a network transmission medium, comprising:
-
a microcontroller having an execution unit comprising;
a processor core configured to execute instructions and to produce output signals during instruction execution; and
a plurality of configurable logic blocks coupled receive the output signals;
wherein during a programming operation the output signals comprise programming signals, and wherein the programming signals configure each of the configurable logic blocks to perform a selected function;
anwherein following the programming operation each of the configurable logic blocks performs the selected function in response to the output signals;
a memory device configured to store data and coupled to the microcontroller; and
an electrical interface unit adapted for coupling to the network transmission medium, wherein the electrical interface unit is coupled to receive signals from the microcontroller and to drive the signals upon the network transmission medium;
an operand bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the operand bus, and wherein the operand bus conveys output signals from the processor core to each of the plurality of configurable logic blocks;
a result bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the result bus, and wherein the result bus conveys output signals from each of the plurality of configurable logic blocks to the processor core;
a control bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the control bus, and wherein the control bus conveys control signals between the processor core and each of the plurality of configurable logic blocks; and
a test/program bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the test/program bus, and wherein the testprogram bus conveys testing signals used to assess proper operation of the plurality of configurable logic blocks, and wherein the test/program bus also conveys the programming signals from the processor core to each of the plurality of configurable logic blocks. - View Dependent Claims (14, 15, 16, 17)
a configurable logic block (CLB) interconnect bus having a plurality of signal lines used to convey signals; and
a plurality of configurable switch blocks, wherein each of the plurality of configurable switch blocks corresponds to one of the plurality of configurable logic blocks, and wherein each of the plurality of configurable switch blocks selectively couples the corresponding configurable logic block to the CLB interconnect bus.
-
-
18. A microcontroller formed upon a single monolithic semiconductor substrate, comprising:
-
an execution unit, comprising;
a processor core configured to execute instructions and to produce output signals during instruction execution;
a plurality of configurable logic blocks coupled to receive the output signals;
an interconnect bus having a plurality of signal lines used to convey signals;
a plurality of configurable switch blocks, wherein each of the configurable switch blocks is coupled between a corresponding one of the configurable logic blocks and the interconnect bus, and wherein each of the configurable switch blocks is coupled to receive the output signals;
wherein during a programming operation the output signals comprise programming signals, and wherein the programming signals;
(I) configure each of the configurable logic blocks to perform a selected function, and (ii) configure each of the configurable switch blocks to couple the corresponding configurable logic block to at least one of the signal lines of the interconnect bus; and
wherein following the programming operation each of the configurable logic blocks performs the selected function in response to the output signals;
an operand bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the operand bus, and wherein the operand bus conveys output signals from the processor core to each of the plurality of configurable logic blocks;
a result bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the result bus, and wherein the result bus conveys signals from each of the plurality of configurable logic blocks to the processor core;
a control bus having a plurality of signal lines, wherein the processor core and each of the plurality of configurable logic blocks are coupled to the control bus, and wherein the control bus conveys control signals between the processor core and each of the plurality of configurable logic blocks;
a test/program bus having a plurality of signal lines, wherein the processor core, each of the plurality of configurable logic blocks, and each of the plurality of configurable switch blocks are coupled to the test/program bus, and wherein the test/program bus conveys testing signals used to assess proper operation of the plurality of configurable logic blocks, and wherein the test/program bus also conveys the programming signals from the processor core to each of the plurality of configurable logic blocks and to each of the plurality of configurable switch blocks.
-
Specification