CN112866307A - Method and system for providing FPGA wireless programming download through wireless communication block - Google Patents

Method and system for providing FPGA wireless programming download through wireless communication block Download PDF

Info

Publication number
CN112866307A
CN112866307A CN201911101449.6A CN201911101449A CN112866307A CN 112866307 A CN112866307 A CN 112866307A CN 201911101449 A CN201911101449 A CN 201911101449A CN 112866307 A CN112866307 A CN 112866307A
Authority
CN
China
Prior art keywords
wcb
fpga
wireless
configuration
lbs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911101449.6A
Other languages
Chinese (zh)
Other versions
CN112866307B (en
Inventor
朱璟辉
张继勇
刘建华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gowin Semiconductor Corp
Original Assignee
Gowin Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gowin Semiconductor Corp filed Critical Gowin Semiconductor Corp
Priority to CN201911101449.6A priority Critical patent/CN112866307B/en
Publication of CN112866307A publication Critical patent/CN112866307A/en
Application granted granted Critical
Publication of CN112866307B publication Critical patent/CN112866307B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The programmable semiconductor device includes a wireless communications block ("WCB") capable of facilitating field programmable gate array ("FPGA") wireless programming downloads and functional logic implementations. In one aspect, the WCB detects an FPGA access request initiated from a remote system via a wireless communication network to initiate an FPGA reconfiguration. When a configuration bitstream for programming an FPGA is received over a wireless communication network, the configuration bitstream is forwarded from the WCB to a configuration download block ("CDB") to initiate a configuration flow. The CDB then programs at least a portion of the configurable logic blocks ("LBs") in the FPGA in response to the configuration bitstream.

Description

Method and system for providing FPGA wireless programming download through wireless communication block
Technical Field
Exemplary embodiments of the invention relate to the field of programmable semiconductor devices for computer hardware and software. More particularly, exemplary embodiments of the present invention relate to wireless communication capabilities in field programmable gate arrays ("FPGAs") or programmable logic devices ("PLDs").
Background
With the increasing popularity of digital communication, Artificial Intelligence (AI), internet of things (IOT), and/or robotic control, there is an increasing demand for fast and efficient hardware and semiconductors with processing capabilities. To meet such demands, higher speed and more flexible semiconductor chips are generally required. A conventional approach once to meeting this need is to use application specific custom integrated circuits and/or Application Specific Integrated Circuits (ASICs) to meet this need. The disadvantage of the ASIC approach is its lack of flexibility while consuming a large amount of resources.
Another increasingly popular conventional approach is to utilize Programmable Semiconductor Devices (PSDs), such as Programmable Logic Devices (PLDs) or Field Programmable Gate Arrays (FPGAs). One feature of the PSD is that it allows the end-user to program one or more desired functions to suit their application. To use a PSD, the FPGA or PLD must be configured or programmed before use. A conventional method of configuring an FPGA uses an FPGA programming download circuit which communicates with a personal computer or host via a USB interface to send the required configuration file (e.g. a bit stream or bit stream file) from the host to the FPGA for configuration. For example, a bitstream can be downloaded over the jtAg interface, which is used to program an FPGA to perform a user-specified function.
However, a drawback associated with conventional methods of configuring an FPGA or PLD is that such configuring/programming an FPGA or PLD typically relies on a host system connected to the FPGA or PLD to program and/or reprogram the configurable logic in the PSD.
Disclosure of Invention
The present invention provides a pld (WAP) that includes wireless access, the WAP being wirelessly programmable to perform logic functions via one or more remote systems. In one embodiment, the WAP contains a wireless communications block ("WCB") and an FPGA. In one aspect, the WCB is used to facilitate wireless download of FPGA configuration files or bit streams for configuring FPGAs. The WCB is also used to facilitate wireless access to the functional logic of the FPGA. In one aspect, the WCB is capable of detecting an FPGA access request initiated from a remote system via a wireless communication network to initiate an FPGA reconfiguration. After receiving the configuration bitstream via the wireless communication network, the configuration bitstream is forwarded from the WCB to a configuration download block ("CDB") for initiating a configuration flow. The CDB then programs at least a portion of the configurable logic blocks ("LBs") in the FPGA in response to the configuration bitstream.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the embodiments or the prior art descriptions will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without inventive exercise.
1A-1B are block diagrams illustrating a wirelessly accessible PLD ("WAP") capable of providing FPGA wireless programming download and debugging using one or more WCBs, according to one embodiment of the invention;
FIGS. 2A-2B are block diagrams illustrating a wirelessly accessible PLD ("WAP") capable of facilitating wireless FPGA programming and debugging according to one embodiment of the invention;
3A-3C are block diagrams illustrating wireless FPGA download and logic function wireless access using logic functions of one or more WCBs, according to one embodiment of the present invention;
4A-4B are block diagrams illustrating a wirelessly accessible PLD ("WAP") capable of providing network communications using one or more WCBs, according to one embodiment of the invention;
5A-5B are block diagrams illustrating an integrated circuit ("IC") including a programmable logic circuit ("PLC") and a programmable WCB according to one embodiment of the invention;
6A-6B are block diagrams illustrating a device containing an FPGA and a WCB according to one embodiment of the present invention;
figures 7A-7B are flow diagrams illustrating an implementation of WAP for wireless download of configuration bitstreams in accordance with one embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
Embodiments of the present invention disclose a PSD with configurable LBs for WCBs and FPGAs that can facilitate wireless bitstream downloading for configuring and debugging LBs. The PSD containing the WCBs and LBs is also referred to as a wirelessly accessible PLD ("WAP") capable of operating in a programming mode or a logic access mode. In the programming mode, the WAP wirelessly downloads the netlist or the updated configuration bitstream from a remote system over a wireless communication network for FPGA configuration. For example, the WAP detects an FPGA access request through the WCB to initiate an FPGA reconfiguration over the wireless communications network. After receiving the configuration bit stream for programming the FPGA, the WCB transmits the configuration bit stream to the CDB to start a configuration process. The CDB then reprograms or reconfigures at least a portion of the configurable LBs in the FPGA according to a configuration bitstream. It should be noted that the configuration bitstream contains the logical functions desired by the user.
For the logic access mode, WAP allows a user or user system to wirelessly access programmed FPGA logic functions. For example, a user may remotely provide input to the logic functions of the FPGA over a wireless communication network. The logic function of the FPGA generates results from the inputs and previously stored data and then transmits the results to the user through the WCB over the wireless communications network.
Fig. 1A is a block diagram illustrating a WAP 1102 in accordance with one embodiment of the present invention, the WAP 1102 capable of facilitating wireless downloads for programming FPGAs or debugging. It should be noted that "FPGA" and "PLD" refer to the same or similar configurable logic devices that can be programmed to perform the functions desired by a user. The WAP 1102 includes a WCB1110 and an FPGA 1112. FPGA1112, also known as an FPGA core, PLD core, FPGA chip, or PLD chip. The WAP 1102 also includes a CDB 1116 and a configurable LBs 1118, where the configurable LBs 1118 may be programmed or configured by a bit stream, bit stream file, or configuration bit stream to perform a particular logic function. It should be noted that if one or more blocks (circuits or elements) are added or removed in fig. 1A, the basic concept of the exemplary embodiments of the present invention does not change.
The WCB1110 in one aspect is a circuit or component configured to provide or facilitate wireless communications. For example, the function of the WCB is to provide wireless communication capability capable of sending or receiving information between the WAP 1102 and an external remote system via a wireless communication network. Wireless communication networks include, but are not limited to, Wi-Fi, bluetooth, cellular, satellite, and/or wireless networks. The WCB1110 can be circuitry fabricated in an FPGA. Alternatively, the WCB1110 may be placed in a semiconductor chip or chip that may be packaged together with the FPGA on a module or package.
FPGA1112 is a semiconductor integrated circuit ("IC") or chip that contains various configurable LBs and memory cells that can be programmed by a user after the IC is manufactured. To program or configure an FPGA to perform a user-defined logic function, the FPGA may be programmed to perform a desired function using a set of bit streams. In one example, the FPGA includes configurable LBs arrays and routing structures. In one example, the routing fabric as shown by number 1130 includes various reconfigurable interconnects for connecting various LBs.
In one example, the WAP 1102 is a module that includes an FPGA1112 and a WCB1110 to facilitate wireless bitstream download for programming and debugging the FPGA. In one example, the WCB1110 is coupled to the CDB 1116 via connection 1132 to facilitate a programming mode of operation. Similarly, WCB1110 is connected to LBs by connection 1136 to facilitate logical access mode operation. Depending on the application, the connections 1132 and 1136 may be combined into one connection. In another example, the WAP 1102 includes a wireless module, such as the WCB1110, and an FPGA chip, such as the FPGA1112, wherein the WCB1110 and the FPGA1112 are packaged on a single package.
In an alternative embodiment, the IC is fabricated to include a PSD, such as WAP 1102, that is configured with a wireless block and an FPGA block. The WAP 1102 includes a set of configurable LBs 1118, routing structures 1130, CDBs 1116 and WCBs 1110, where the configurable LBs 1118 can be selectively programmed to perform one or more logical functions. The routing fabric 1130 is configured to selectively route information between the configurable LBs 1118 and the input/output ports based on a routing configuration bitstream or configuration signal. The CDB 1116 includes memory for storing configuration data, such as bit streams for programming configurable LBs 1118 and routing structures 1130.
The WCB1110 may be used to facilitate wireless programming or wireless debugging of the configurable LBs 1118 through a wireless communication network 1118. In one example, the WCB1110 includes a Wi-Fi transmitter and a Wi-Fi receiver. Alternatively, the WCB1110 includes a cellular transmitter and a cellular receiver. The WCB1110 may also include a bluetooth transmitter and a bluetooth receiver. The WCB1110 can be configured to select a built-in optional Wi-Fi transceiver or a built-in optional Bluetooth transceiver, depending on the application.
It should be noted that the WAP 1102 provides an FPGA wireless programming download/debug circuitry that includes a wireless module (e.g., WCB 1110) and an FPGA module (e.g., LBs 1118). The wireless module is connected with the configuration downloading module of the field programmable gate array to realize a configuration mode. In one aspect, the user mode is implemented using a wireless module connected to FPGA logic resources. It is noted that the two modes can be dynamically switched based on the control signal.
One advantage of using a PSD with a wireless block (e.g., WAP 1102) is that it can provide a wireless program download/debug PSD (e.g., FPGA) without a physically connected host system.
FIG. 1B is a block diagram illustrating an IC or semiconductor chip incorporating a WAP1106, the WAP1106 capable of facilitating FPGA wireless programming download and/or debugging in accordance with one embodiment of the present invention. WAP1106 includes WCB1120, CDB 1126, and configurable LBs 1128, where configurable LBs 1128 is programmed or configured by a configuration bitstream to perform configured logical functions. In one aspect, the WAP1106 is similar to the WAP 1102 shown in FIG. 1A, except that the WCBs 1120, CDBs 1126 and LBs 1128 are fabricated on a single IC or chip. It should be noted that if one or more blocks (circuits or elements) are added or removed in fig. 1B, the basic concept of the exemplary embodiments of the present invention does not change.
In one embodiment, the WAPs 1106 are FPGA wireless programming download/debug circuitry capable of wirelessly communicating with the device using wireless transmissions through the WCBs 1120 or wireless modules. Since WCB1120, CDBs 1126 and LBs 1128 are placed or fabricated on a single IC, chip and/or chip, WAP1106 improves circuit integration by reducing resource allocation and increasing efficiency. In one embodiment, the WAP1106 is configured to have a programming (or configuration) mode and a user mode.
In one embodiment, WCB1120 facilitates wireless data transfer between WAP1106 and external remote systems, as shown in figure 1B. The data transfer includes a configuration bitstream for programming/reprogramming the FPGA. The data transmission also includes input data from the remote system to the WAP1106 or output data from the WAP1106 to the remote system.
When the programming mode is activated, WCB1120 downloads a netlist or an updated configuration bitstream from a remote system over a wireless communication network. The bitstream, also referred to as a bitstream file, is forwarded from WCB1120 to CDB 1126 via connection 1152. At least a portion of LBs 1128 is then programmed or reconfigured by CDB 1126 based on the bitstream. When the logic access mode is active, the WAP allows the user or user system to wirelessly access programmed FPGA logic functions. For example, a user may provide input to logic functions of the FPGA remotely via WCB1120 using connection 1156 and/or routing fabric 1150. The results generated by the logic functions of the FPGA or LBs 1128 are then communicated to the user via the WCB 1120. Connections 1152 and 1156 may be incorporated into a configurable structure depending on the application.
One advantage of using WAP1106 is increased integration and design cost savings while increasing resource utilization.
Fig. 2A is a block diagram 1202 illustrating an exemplary illustration of wirelessly downloading a bitstream via a bluetooth wireless network to facilitate configuring and/or debugging an FPGA, according to one embodiment of the present invention. In one embodiment, block diagram 1202 includes a portable device 1206, a WAP1210, and a wireless network, wherein the wireless network is a Bluetooth communication network. It should be noted that the basic concepts of the exemplary embodiments of this invention do not change if one or more blocks (circuits or elements) are added or removed from block diagram 1202.
The WAP1210 is similar to the WAP 1102 in that it includes a WCB 1212, a CDB 1216, and a configurable LBs1218 as shown in FIG. 1A. The configurable LBS1218 may be programmed or configured by a bitstream to perform specific configuration logic functions. The WAP1210 may be configured to operate in two modes, a programming mode and a logical access mode.
In one example, portable device 1206 may be a smart phone, tablet computer, laptop computer, desktop computer, server, workstation, base station, and the like. In one aspect, the portable device 1206 is a remote system coupled to the WAP1210 via a wireless network 1219. In one aspect, the wireless network 1219 is a bluetooth communication network.
In one aspect, the WAP1210, which contains FPGA programming download circuitry, is capable of communicating with a device capable of sending and/or receiving bitstream files (e.g., a workstation, personal computer, or portable device 1206). For example, after the bitstream file is downloaded from the portable device 1206 to the WCB 1212 via the bluetooth communication network 1219, at least a portion of the LBs1218 is programmed or configured by the CDB 1216 based on the bitstream or bitstream file.
The WAP1210 may also facilitate sending requests or input data from the portable device 1206 via the bluetooth communication network 1219 to programmed logic functions operated by the LBs 1218. When a result is generated by the programmed logic function based on the request or input data, the result may be sent from the WAP1210 to the portable device 1206 via the bluetooth communication network 1219. It is noted that the WCB 1212 may also be used to provide power management for the WAP 1210.
The advantage of using WAP1210 is to provide flexibility to access the FPGA rather than using a host system over a wired connection. It should be noted that simplifying the design and reducing the printed circuit board ("PCB") area may improve the overall efficiency of the system.
Figure 2B is a block diagram 1204 that illustrates a remote wireless system for facilitating wireless download of a configuration bitstream between a remote location WAP and a user, according to one embodiment of the present invention. Block 1204 includes WAP 2110, remote system 1226, and user equipment 1220 and 1224. It should be noted that the basic concept of the exemplary embodiments of this invention does not change if one or more blocks (circuits or elements) are added or removed in block 1204.
When user equipment 1220-1224 is coupled to remote system 1226 via wired connection 1250 and wireless connection 1252, remote system 1226 is coupled to WAP1210 via wireless network 1256. In one aspect, the remote system 1226 is a private system operated by a special company, such as a gossin secicontucttm, for facilitating wireless access between the subscriber system 1220 and 1224 and the WAP 1210. In one example, the remote system 1226 can be coupled to a base station or tower 1228 through its built-in wireless capability or connection 1251. It should be noted that the remote system 1226 may implement an authentication process to determine whether to allow a user system, such as the user device 1220, to access or reprogram LBs 1218.
Fig. 3A is a block diagram 1302 illustrating an exemplary illustration of a wireless download bitstream via a Wi-Fi wireless network for facilitating configuration and/or debugging of an FPGA according to one embodiment of the present invention. Block 1302 includes a portable device 1206, a WAP1210, and a wireless network, wherein the wireless network is a Wi-Fi communications network. It should be noted that the basic concepts of the exemplary embodiments of this invention do not change if one or more blocks (circuits or elements) are added or removed from block diagram 1302.
The WAP1210, which contains FPGA programming download circuitry such as the WCB 1212, is capable of communicating with a device such as a workstation, personal computer, or portable device 1206 via the Wi-Fi network 1308. For example, after a set of bitstream files are transmitted from the portable device 1206 to the WCB 1212 via the Wi-Fi network 1308, at least a portion of LBs1218 is programmed or configured by the CDB 1216 based on the bitstream or bitstream files. It should be noted that the WCB may also be configured to implement an authentication process to determine whether to allow the portable device 1206 to be reprogrammed LBs 1218.
It should be noted that the wireless programming download or debug circuitry communicates with the device or user device using wireless transmission. The device or user device may include a mobile phone, a computer, a tablet, a car, a watch, etc. After the user has completed the logic design for performing a particular logic function, the user communicates with a wireless module (e.g., WCB 1212) via a wireless transmission protocol (e.g., Bluetooth or Wi-Fi Direct) to send a bitstream file representing the logic design. A wireless module such as the WCB 1212 is able to recognize the wireless transmission protocol and receive the bitstream file accordingly. After sending the received bitstream file to the CDB 1216, at least a portion of LBs in the FPGA is mapped or configured based on the downloaded bitstream file. For example, after completion, the WAP1210 can perform certain logic functions designed by the user.
To verify the programming logic functionality, the WAP1210 in one embodiment employs wireless programming download/debug circuitry that can be used to verify and debug the logic design. For example, a wireless module such as the WCB 1212 may interact with a user via a display terminal through a wireless network.
One advantage of using the WAP1210 is that the WAP1210 allows users to remotely reprogram, verify, debug, and use user-designed logic over a wireless communication network.
Figure 3B is a block diagram 1306 illustrating an exemplary illustration of wireless access using logical functions of an FPGA of a Wi-Fi wireless network, according to one embodiment of the invention. Block 1306, similar to block 1302 shown in fig. 3A, includes a portable device 1206, a WAP 1310, and a Wi-Fi communication network. In one embodiment, when the WAP 1310 is in a logical access mode, no CDB is required. It should be noted that if one or more blocks (circuits or elements) are added or removed in the diagram 1306, the basic concept of the exemplary embodiments of the present invention does not change.
In one embodiment, the WAP 1310 can facilitate access to programmed logic functions in the FPGA portion of the WAP 1310, as indicated by numeral 1316. For example, the portable device 1206 may send a data request or input data to the WCB 1212 via the Wi-Fi communication network 1308. The request and/or input data is then forwarded to logic block 1316 to access configuration logic functions or LBs in logic block 1316. When a result is generated by the logic block 1316 based on the request or input data, the result is sent from the WAP 1310 to the portable device 1206 via the Wi-Fi communication network 1306. It should be noted that the WCB 1212 may also be used to provide power management for the WAP 1310.
For example, in user mode, a user may use a wireless module such as the WCB 1212 to perform a desired logical function according to a set of predefined requirements. In one example, a default mode of the WAP 1310 may be selectively set to a configuration mode. For example, the WAP 1310 is set to user mode after power up. In one aspect, the WCB 1212 is used to manage or switch between configuration mode and user mode.
Fig. 3C is a block diagram 1330 illustrating a debugging and/or authentication scenario using wireless access during user mode, according to one embodiment of the invention. Block 1330 is similar to block 1306 shown in fig. 3B and includes portable device 1206, WAP1332, and wireless communication network 1338. In one embodiment, when the WAP1332 is in a logical access mode or user mode, no CDB is required. It should be noted that the basic concepts of the exemplary embodiments of this invention do not change if one or more blocks (circuits or elements) are added or removed in block 1330.
The WAP1332 includes a WCB 1312 and an FPGA1350, where the FPGA1350 includes various LBs 1318-1328. LBs1318-1328 can be programmed to perform a specific set of logic functions. In one embodiment, the WCB 1312 and the FPGA1350 are fabricated on a single die. Alternatively, the WCB 1312 and the FPGA1350 are packaged on a single module.
In one aspect, the WCB 1312 is capable of identifying and capturing the input data 1352-. The captured input data 1352 and 1356 is then forwarded from the WCB 1312 to the device 1206 via the wireless communication network 1338. When the logical functions performed by LB1318 are complete, output 1368 is copied to WCB 1312 for verification or debug procedures. The logic function may be any function, such as an Arithmetic Logic Unit (ALU), a multiplier, an adder, a subtractor, and the like. It should be noted that LB1318 may contain multiple programmable logic elements ("LEs") or macro-cells.
In operation, a method of validating or debugging functional logic in the FPGA1350 via the WCB 1312 includes a wireless communications block ("WCB") comprising: when the WCB 1312 receives a debug request from a remote device, such as device 1206, via the wireless communication network 1338, a first configurable LB, such as LB1318, is identified from an array of configurable LBs1318 and 1328 based on the debug request. As the input data 1352-. A copy of the input data 1362 and 1366 is sent from the WCB 1312 to the remote device 1206 via the wireless communication network 1338. Upon receiving output data 1368 from LB1318 performing the configured logical function, output data 1368 is sent to remote device 1206 via wireless communication network 1338. Upon receiving the input data 1362 + 1366 and the output data 1368, the remote device 1206 is able to properly verify and/or debug the functionality of the LB1318 based on the input data and the output data 1362 + 1368.
One advantage of using a WAP with wireless capability 1332 is that it allows a user or operator to access and verify the functionality of the FPGA without physically accessing the FPGA.
Figure 4A is a block diagram 100 illustrating a wirelessly accessible PLD ("WAP") capable of providing network communications using one or more WCBs according to one embodiment of the invention. The block diagram 100 includes a plurality of programmable partition areas ("PPRs") 102 and 108, a programmable interconnect array ("PIA") 150, an internal distribution network, and area input/output ("I/O") ports 166. The PPRs 102, 108 also include control units 110, 120, 130, 140, memories 112, 122, 132, 142, configurable WCBs 152, 158 and logic blocks ("LBs") 116, 126, 136, 146. Note that the control units 110, 120, 130, 140 may be configured as one single control unit, and similarly, the memories 112, 122, 132, 143 may also be configured as one single memory device for storing the configuration. In addition, the configurable WCBs 152 and 158 can be combined into a single programmable WCB. In one aspect, the WAP is a PSD that contains at least one FPGA and a WCB. It should be noted that the basic concept of the exemplary embodiments of the present invention does not change if one or more blocks (circuits or elements) are added or removed in the block diagram 100.
The LBS 116, 126, 136, 146 include a plurality LBs 118, 128, 138, 148, each LBs of which may be further organized to include a set of programmable logic elements ("LEs") or macrocells, among other circuits, not shown in fig. 4A. In one example, each LBs may include 32 to 512 programmable LES. The I/O pins (not shown in FIG. 4A), LBs, and LE are connected by the PIA 150 and/or other buses (e.g., buses 162, 114, 124, 134, 144) to facilitate communication between the PIA 150 and the PPRs 102, 108.
Each LE includes programmable circuitry such as a matrix of product entries and registers. For example, each LE may be independently configured to perform sequential and/or combinational logic operations. It should be noted that the basic concept of the shield door will not change if one or more blocks and/or circuits are added or removed from the shield door.
The control units 110, 120, 130, 140, also referred to as configuration logic, may be a single control unit. For example, control unit 110 manages and/or configures LBs 118 the individual LEs in 118 based on the configurations stored in memory 112. It should be noted that some I/O ports or I/O pins are configurable, so they may be configured as input pins and/or output pins. Some of the I/O pins are programmed as bi-directional I/O pins, while other I/O pins are programmed as uni-directional I/O pins. Control units such as unit 110 are used to process and/or manage PSD operation in accordance with a system clock signal.
LBs 116, 126, 136, 146, may be programmable by an end user. Depending on the application, the LBS may be configured to perform user-specific functions based on a predefined library of functions facilitated by the configuration software. In some applications, the PSD also includes a set of fixed circuits for performing specific functions. For example, the PSD may comprise a portion of the semiconductor region for a fixed non-programmable processor to enhance computational power.
The PIA 150 is coupled LBs 116, 126, 136, 146 through various internal buses (e.g., buses 114, 124, 134, 144, 162). In some embodiments, buses 114, 124, 134, 144, and 162 are part of PIA 150. Each bus includes channels or wires for transmitting signals. It should be noted that the terms channel, routing channel, wire, bus, connection, and interconnect refer to the same or similar connections and will be used interchangeably herein. The PIA 150 may also be used to receive and/or transmit data directly or indirectly from/to other devices through the I/O pins and LBs.
The functionality of the WCB, such as the WCB 152, is a dedicated communication unit capable of transmitting or receiving information between the WAP and an external remote system via a wireless communication network. In one aspect, the configurable or programmable WCBs can be programmed to facilitate wireless communications using wireless communications, such as, but not limited to, Wi-Fi, Bluetooth, cellular, satellite, and/or wireless networks.
One advantage of using a programmable WCB is to enable the PSD to communicate independently with external systems without a host.
Figure 4B is a block diagram 200 illustrating routing logic or architecture including programmable arrays for facilitating the interconnection of various components including WCB routing, according to one embodiment of the present invention. The block diagram 200 includes control logic 206, a PIA 202, I/O pins 230, and a clock unit 232. Control logic 206 may be similar to the control unit shown in FIG. 4A, providing various control functions including channel allocation, differential I/O standards, and clock management. The control logic 206 may comprise volatile memory, non-volatile memory, and/or a combination of volatile and non-volatile memory devices for storing information such as configuration data. In one embodiment, the control logic 206 incorporates the PIA 202. It should be noted that the basic concept of the exemplary embodiments of the present invention does not change if one or more blocks (circuits or elements) are added or removed in the block diagram 200.
The I/O pins 230 are connected to the PIA 202 via a bus 231, and include a plurality of programmable I/O pins configured to receive and/or transmit signals to external devices. For example, each programmable I/O pin may be configured as an input, output, and/or bi-directional pin. Depending on the application, the I/O pins 230 may be incorporated into the control logic 206.
In one example, the clock unit 232 is connected to the PIA 202 via a bus 233, receiving various clock signals from other components such as a clock tree circuit or a global clock oscillator. In one example, clock unit 232 generates a clock signal in response to a system clock and a reference clock used to implement I/O communications. For example, the clock unit 232 provides a clock signal including a reference clock to the PIA 202, depending on the application.
In one aspect, the PIA 202 is organized into an array scheme including channel groups 210 and 220, bus 204, and I/ O buses 114, 124, 134, 144. The channel groups 210, 220 are used to facilitate routing information between LBs based on the PIA configuration. The channel groups may also communicate with each other through an internal bus or connection such as bus 204. Channel group 210 also includes interconnect array decoders ("IADs") 212 and 218. Channel group 220 includes four IADs 222 and 228. One function of the IAD is to provide configurable routing resources for data transmission.
An IAD, such as IAD 212, includes a routing multiplexer or selector for routing signals between I/O pins, feedback outputs, and/or LBs inputs to reach a destination. For example, the IAD may include up to 36 multiplexers, which may be arranged in four groups, with each group containing nine rows of multiplexers. It should be noted that the number of IADs in each channel group is a function of the number of LES in LBs.
In one embodiment, the PIA 202 specifies a special IAD, such as IAD218, for handling WCB routing. For example, the IAD218 is designated to handle the connection and/or routing between the WCBs and LBs to facilitate data transfer using a wireless network. It should be noted that additional IADs may be allocated to handle WCB operations.
An advantage of using the IAD218 as the designated WCB route in the PIA is that it integrates the WCB with the FPGA to provide network communications using the detected nearby wireless communication network.
Figure 5A is a block diagram 300 illustrating an IC 304 including a programmable logic circuit ("PLC") 306 and a programmable WCB 302, according to one embodiment of the present invention. The IC 304, also referred to as a semiconductor chip or semiconductor chip, is a WAP that includes wireless communication circuitry, such as configurable WCB 302 and PLC306, that is capable of performing programmable logic functions, such as FPGAs and PLDs. The block diagram 300 also includes an antenna 308, and the antenna 308 may be a stand-alone device or a mounted component in the IC 304. It should be noted that the basic concept of the exemplary embodiments of the present invention does not change if one or more blocks (circuits or elements) are added or removed in the block diagram 300.
In one example, PLC306 includes a group LBs or LBs320, these LBs or LBs320 being organized in an array configuration having a plurality of configurable blocks. LBs or LBs320 may be further organized into rows and columns of programmable LEs or macro-cells, not shown in fig. 3A, for performing programmable logic functions. To provide user selectable or programmable logic functions, one or more LBs320 are typically required to provide the selected function. To group the plurality LBs320 to perform a user-selected function, one or more LBs320 are interconnected using the programmable routing fabric 326. It should be noted that each of the configurable LEs, LBs, and/or LABs may be selectively programmed to perform one or more logic functions.
In one example, routing fabric 326 is an array of configurable connections for selectively connecting one or more LBs to route and process data between LBs 320. Another function of the routing fabric 326 is to route data or information between LBs320 and an input/output port of the PLC 306. In an aspect, at least a portion of the routing fabric 326 may be configured to supply power to at least a portion of the LBs320 or terminate power from at least a portion of the LBs320 in accordance with a power control signal generated by the WCB 302.
The WCB 302, in one aspect, is configurable or programmable communications circuitry capable of receiving or transmitting information between the IC 304 and an external system 336 via a wireless network 338. The WCB 302 includes a transmitter and receiver ("T/R") switch 311, a receiver 310, a transmitter 312, a frequency synthesizer 316, and a converter 318. In one embodiment, the WCB 302 also includes control circuitry, processor, or controller configured to assist in managing the various components, such as the receiver 310, T/R switch 311, transmitter 312, frequency synthesizer 316, and/or converter 318. In an alternative embodiment, the receiver 310 and transmitter 312 are combined into one or more built-in transceivers, as indicated by numeral 330, capable of handling wireless communications via a selected wireless protocol. It should be noted that the WCB 302 may include additional components such as memory and power supplies.
The transmitter 312, also referred to as a radio transmitter, is an electronic telecommunications device capable of generating radio waves or frequencies representing digital information, which is then transmitted via the antenna 308. For example, radio frequencies or waves may be transmitted to their remote destination, such as external system 336. Information or data is fed from a frequency synthesizer ("FS") 316.
Receiver 310, also referred to as a radio receiver, is an electronic telecommunications device capable of receiving radio waves or frequencies from an antenna, such as antenna 308. For example, antenna 308 receives radio waves or frequencies and forwards the received waves or frequencies to receiver 310, which receiver 310 then sends the received waves to converter 318 for conversion, modulation, and processing. It should be noted that transmitter/receiver switch 311 is used to schedule whether receiver 310 or transmitter 312 can use antenna 308. In one aspect, the switch 311 is controlled or managed by a controller or control circuit in the IC 304.
FS 316 is a frequency generator capable of generating multiple frequencies from a reference frequency. For example, FS 316 can generate frequency ranges for various wireless communication protocols. For example, FS 316 may generate frequencies for Wi-Fi, bluetooth, radio, satellite, and/or cellular wireless networks. In one example, FS 316 includes subcomponents such as frequency multiplication, frequency division, frequency mixing, and phase-locked loop to produce the desired frequency.
In one embodiment, converter 318 is a digital-to-analog ("DAC") and/or analog-to-digital ("ADC") converter. Note that a DAC is a circuit capable of converting a digital signal into an analog signal. Similarly, an ADC is a conversion circuit configured to convert an analog signal to a digital signal. In one aspect, the output of the converter 318 is fed to the processor or PLC306 as indicated by numeral 328.
In one embodiment, a built-in transceiver or transceiver 330 is used in place of the transmitter and receiver. For example, the built-in transceiver 330 includes one or more receivers, shown at 310, a transmitter, shown at 312, and a transmitter/receiver switch, shown at 311. The function of a transceiver is to send and receive information. Wireless transceivers are commonly used for portable devices such as cellular telephones, Wi-Fi modems, cordless telephones, satellite modems, radio-based two-way walkie-talkies, bluetooth devices, and the like.
In an aspect, the transceiver 330 may be configured to provide various transceiver functions with different wireless communication protocols. For example, transceiver 330 may include a Wi-Fi transmitter and a Wi-Fi receiver. Alternatively, the transceiver 330 includes a bluetooth transmitter and a bluetooth receiver. The transceiver 330 may also include a cellular transmitter and a cellular receiver depending on the application. The transceiver 330, in one aspect, includes a selectable Wi-Fi transceiver, a selectable bluetooth transceiver, and/or a cellular transceiver, wherein the transceiver 330 is capable of selecting one of the built-in (Wi-Fi, bluetooth, cellular, etc.) transceivers to handle the selected wireless communication via the wireless network.
In one aspect, the IC 304 includes a processor or controller not shown in fig. 3A, where the processor may be a stand-alone circuit or part of the WCB 302. Alternatively, the processor may be part of the PLC 306. For example, the processor may be a control circuit configured to selectively activate LBs at least a portion based on a wake-up signal received, for example, by the built-in transceiver 330 via a wireless communication network. Similarly, the processor, controller or control circuitry may be configured to selectively place LBs at least a portion in a sleep mode to conserve power in response to, for example, a sleep signal received by built-in transceiver 330 over a wireless communication network.
In one aspect, the processor or control circuitry is configured to manage power distribution to at least a portion of LBs in response to a power signal received by the on-board transceiver 330 via the wireless communication network. In another aspect, the processor can retrieve data from the PLC306 in accordance with a data request received by the transceiver 330 and transmit the retrieved data to a user requesting, for example, an external system 336 via the WCB 302 over the wireless communication network 338.
It should be noted that the IC 304 may be used in or with any system such as, but not limited to, a portable device, a monitoring system, an automobile, an aircraft, a watercraft, an automotive vehicle, a drone, a security device, and the like. An advantage of using the WCB 302 is that it facilitates communication between the IC 304 and remote external systems via a wireless communication network.
FIG. 5B is a block diagram illustrating a WCB 350 including a plurality of programmable wireless communication circuits ("WCCs") 360 and 368 according to one embodiment of the invention. The WCB 350 includes a Wi-Fi WCC 360, a Bluetooth WCC 362, a cellular WCC 364, a satellite WCC 366, a WCC selector 354, and a MUX 356. In one aspect, the WCB 350, similar to the WCB 302 shown in fig. 3A, may be programmed to one of the predefined wireless protocols. In another aspect, the WCB 350 may be programmed to handle multiple wireless communication networks. For example, the WCB 350 may facilitate bluetooth communications for authentication while using Wi-Fi communications for data transmission. It should be noted that the basic concept of the exemplary embodiments of this invention does not change if one or more blocks (circuits or elements) are added or removed in the WCB 350.
In one embodiment, the Wi-Fi WCC 360 includes a Wi-Fi transceiver, a FS, and a translator configured to process communications over a Wi-Fi communication network using a Wi-Fi protocol. Wi-Fi is a Wireless Local Area Network (WLAN) wireless technology based on the IEEE802.11 standard. It is noted that a Wi-Fi system is capable of connecting to a Wi-Fi communication network, which may further be connected to the internet. The Wi-Fi WCC 360, in one aspect, can be activated or deactivated by the WCC selector 354.
In one embodiment, the bluetooth WCC 362 includes a bluetooth transceiver, FS, and converter configured to handle communications using the bluetooth protocol over a bluetooth communications network. Bluetooth is a wireless network based on the IEEE 802.15.1 standard for facilitating communication between fixed and mobile devices. Bluetooth technology typically provides short-range wireless communication using short-wavelength UHF (ultra high frequency) radio waves of 2.400 to 2.485 GHz. Bluetooth can also be classified as Personal Area Networks (PANs). The bluetooth WCC 362, in one aspect, may be activated or deactivated by the WCC selector 354.
In one embodiment, the cellular WCC 364 includes a cellular transceiver, FS, and a switch configured to process communications over a cellular communications network or cellular networks using one or more cellular protocols. Cellular communication networks, also referred to as mobile networks, are considered communication networks in which some links are wireless connections or the last part of a connection. It should be noted that cellular networks are organized in cells and base stations, where a base station provides network transmission coverage for one or more cells. Cellular networks use various radio frequency bands such as, but not limited to, GSM (global system for mobile), UMTs (universal mobile telecommunications service or 3G), ITE (long term evolution or 4G), 5G (fifth generation), etc. In one aspect, the cellular WCC 364 may be activated or deactivated by the WCC selector 354.
In one embodiment, the satellite WCC 366 includes a satellite transceiver FS and a converter configured to process communications over a satellite network using one or more satellite communications protocols. Satellite networks, also known as the satellite internet, provide network communications using various communication satellites in orbit. In one example, these satellites, also known as geostationary satellites, use the k-band to provide data transmission at a rate of 800 megabits per second. In one aspect, the satellite WCC 366 may be activated or deactivated by the WCC selector 354.
Other types of wireless communications may select other WCCs, such as WCC 368. For example, a particular defined radio frequency may be used to communicate with external systems. For example, special radio frequencies may be used to provide secure access to prevent unauthorized access to WAP. It should be noted that FSs and the converters described in Wi-Fi WCC 360, bluetooth WCC 362, cellular WCC 364, and/or satellite WCC 366 may be combined or partially combined to simplify the design of the programmable WCB.
The WCC selector 354 is configured in one aspect to selectively select one or more WCCs to facilitate wireless communication. In one example, the WCC selector 354 includes various programmable elements 352 and can select or activate any of the WCCs360 and 368 in response to the control signals 370 and 378. In an alternative embodiment, the programmable element 352 may be a non-volatile memory that stores programmable information based on a configuration program used to control the WCC 360-.
The MUX 356 is a multiplexer or any other merging component capable of gating the output 358 in response to inputs from the WCCs 360-368. In one embodiment, MUX 356 is organized into a plurality of sub-multiplexers to facilitate activating multiple WCCs.
One advantage of using a programmable WCB is that it provides the configurable capability to use a nearby wireless network to facilitate network communications between WAPs and remote systems.
Fig. 6A is a block diagram 400 illustrating a WAP fabricated in an IC capable of facilitating wireless communication between a PLD and a remote system according to one embodiment of the invention. In one embodiment, the WAP 402 includes the PLC306, the WCB 350, the controller 406, the memory 404, and the power module 408 according to one embodiment of the present invention. The memory 404 is used to store information such as configuration information. It should be noted that the basic concept of the exemplary embodiments of the present invention does not change if one or more blocks (circuits or elements) are added or removed in the block diagram 400.
The WCB 350, which may be the same or similar to the WCB shown in FIG. 5B, includes multiple WCCs360 and 368, such as a Wi-Fi WCC, a Bluetooth WCC, a cellular WCC, a satellite WCC, a WCC selector, and a MUX. Each WCC (e.g., WCC 360) includes a transceiver 330, the transceiver 330 including a transmitter 312, a receiver 310, a T/R switch 311, and an antenna 308. In one example, the antenna 308 may be shared by the WCCs360 and 368. In one aspect, the WCB 350 is programmed to handle one or more wireless networks simultaneously. For example, bluetooth may be activated for WAP 402 authentication, while Wi-Fi communication is activated for transferring information between WAP 402 and external systems.
The PLC306, which may be the same or similar to the PLC shown in fig. 5A, includes a set of LBs320 connected by a configurable routing fabric 326. PLC306 provides various predefined logic functions according to user selections. In one aspect, the PLC306, WCB 350, and controller 406 are deposited or fabricated on a single IC or die.
Controller 406 is a digital processing unit capable of executing instructions configured to provide various functions including power function 410, frequency function 412, authentication function 416, and transceiver function 418. In one aspect, the power function 410 can generate a power control signal to place at least a portion of the PLC306 in a low power or sleep mode to conserve power. Similarly, the power function 410 can wake up or activate at least a portion of the PLC306 from the low power mode based on a set of predefined conditions. In one example, the output of the power function 410 is fed to a power module 408, which power module 408 will be used to gate power to at least a portion of the PLC 306.
In one embodiment, the frequency function 412 is used to identify the type of wireless network or network WCB 350 that should be programmed or configured. In one aspect, the frequency function 412 may dynamically instruct the WCB 350 to reprogram to handle different types of wireless networks. For example, if WAP 402 is located in a mobile object such as an automobile or airplane, WAP 402 may have to be dynamically reconfigured based on the availability of the wireless network. For example, coverage of a satellite network may be sufficient when there is no cellular coverage in certain locations. Further, the frequency function 412 may facilitate network connectivity to improve network efficiency.
Authentication function 416 is used to secure access to WAP 402. In one embodiment, a unique wireless communication key, such as bluetooth, is used to verify the authenticity of a requestor or user requesting access to WAP 402. It should be noted that using one type of wireless communication (e.g., cellular) for authentication and another type of wireless communication (e.g., Wi-Fi) for data transmission may improve the security of WAP access.
The transceiver function 418, in one aspect, manages the activities of the transmitter and receiver. Depending on the application, some WAPs may not require a receiver because it does not need to receive any information. For example, a security monitor that captures an image may not need a receiver because it does not need to receive any instructions. Similarly, some WAPs may not require a transmitter because it does not need to transmit any information.
One advantage of using WAP is that it allows a user or subscriber to access WAP without having to go through the host.
FIG. 6B is a block diagram 500 illustrating a module 502 according to one embodiment of the invention, the module 502 containing a plurality of ICs, including a programmable chip and a built-in communication chip. In one example, the module 502 is a multi-chip module ("MCM") capable of housing multiple ICs or chips. A module is an electronic assembly that includes conductive terminals (or pins) and a substrate. In one aspect, the MCM is capable of housing a plurality of integrated circuits, chips, semiconductor dies, or any other component that may be integrated or connected to a substrate. In one aspect, the module 502 includes a WCB510, an FPGA512, a power supply 516, and a controller 518. It should be noted that the basic concepts of the exemplary embodiments of this invention do not change if one or more blocks (chips or elements) are added or removed in block diagram 500.
In one embodiment, the module 502 includes a first IC, a second IC, and a substrate capable of providing a wirelessly accessible logic device. The substrate is configured to provide interconnections for the mounted integrated circuit and the input/output terminals. In one aspect, a first IC is disposed on a substrate and includes a configurable LBs array and routing structure. The configurable lB is selectively programmable to perform one or more logical functions. In one example, the first IC is an FPGA 512. The second IC placed or mounted on the substrate is a configurable WCB 510. In one aspect, the WCB510 includes control circuitry and a built-in transceiver for facilitating the transfer of information between the module 502 and external systems via a wireless communication network. It should be noted that the built-in transceivers include an optional Wi-Fi transceiver and an optional Bluetooth transceiver.
In one aspect, the controller 518 is configured to select a selectable one of Wi-Fi and Bluetooth transceivers. In one embodiment, the controller 518 is also configured to provide other functions such as, but not limited to, power management, system activation, wireless communication protocols, authentication, and the like. The controller 518 may also be integrated into the WCB510 or FPGA 512.
In one embodiment, power supply 516 is used to manage power consumption of the module. For example, if a module is not active, a portion of the module (e.g., an FPGA) is in a sleep mode. The power source 516 may also be a stand-alone power source including, but not limited to, a battery, solar energy, power storage, a municipal power receiver, and the like.
One advantage of using a module containing multiple ICs (including the WCB) is that it allows a user or subscriber to access the FPGA without having to go through the host.
Exemplary embodiments of the present invention include various processing steps, which will be described below. The steps of the present embodiments may be embodied in machine or computer executable instructions. The instructions may be used to cause a general-purpose or special-purpose system, which is programmed with the instructions to perform the steps of an exemplary embodiment of the present invention. Alternatively, the steps of the exemplary embodiments of the present invention might be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Figure 7A is a flow diagram illustrating a process for wirelessly programming an FPGA via a WCB according to one embodiment of the present invention. At block 602, the processing of the WCB can detect an FPGA access request initiated from a remote system via a wireless communication network to initiate an FPGA reconfiguration. In one example, the wireless communication network is a Wi-Fi network, where Wi-Fi signals are received by a built-in Wi-Fi transceiver in the WCB.
At block 604, the WCB receives a configuration bitstream for FPGA programming from a remote system via a wireless communication network. In an aspect, the WCB is configured to wake up at least some LBs by a wake up signal initiated by control circuitry in the WCB according to the configuration bitstream. The configuration bit stream is processed by the CDB according to the FPGA access request.
At block 606, the configuration bitstream is forwarded to the CDB to initiate the configuration flow. In one example, a configuration bitstream formatted in a wireless protocol is converted into an executable netlist.
At block 608, the CDB is configured to program or map at least a portion of the configurable LBs in the FPGA based on the configuration bitstream. In one embodiment, a synthesized field based gate level netlist is identified from a configuration bitstream. In the configuration flow, the gate level netlist is then mapped into the FPGA. The process enables verification and debugging of programmed FPGA logic by CDM from a gate-level netlist. After the user equipment or remote system edits and compiles the configuration bitstream, the WCB can authenticate the remote system to wirelessly transmit the configuration bitstream. In one example, a Wi-Fi transceiver from a WCB is selected in response to a wireless control signal for receiving a configuration bitstream. The process can select a bluetooth transceiver, a Wi-Fi transceiver, a cellular transceiver, or a satellite transceiver in the WCB based on the wireless control signal used to obtain the configuration bitstream.
Figure 7B is a flow diagram 601 illustrating WAP processing according to one embodiment of the present invention. At block 612, the FPGA including the programmable WCB processes a communication request received from a remote system via a wireless communication network with a built-in wireless transceiver ("BWT"). For example, a communication request is received via a Wi-Fi signal via a built-in Wi-Fi transceiver on a Wi-Fi network.
At block 614, data from configurable LBs is obtained in accordance with the communication request via the routing fabric. For example, after control circuitry in the WCB wakes up at least some LBs in response to the communication request, the data is processed by LBs in accordance with the communication request.
At block 616, a data packet is generated according to a first wireless data-based transmission protocol. For example, the data stream consists of a built-in Wi-Fi transmitter in a predefined Wi-Fi protocol.
At block 618, the process can send the data packet to a remote system via a wireless communication network via BWT. For example, the data stream is transmitted to a remote system over a Wi-Fi communication network. In one embodiment, a Wi-Fi transceiver is selected in the WCB in response to a wireless control signal. Alternatively, a Bluetooth transceiver, a Wi-Fi transceiver, a cellular transceiver, or a satellite transceiver may be selected based on the wireless control signal.
In another embodiment, the WCBs in the FPGA can be configured to provide power management to reduce power consumption. For example, the WCB can be configured to be always on or active while the FPGA portion of the logic is turned off to conserve power. For example, the WCB may wake up the FPGA portion of the logic when a data transfer occurs.
In one aspect, a power management process of an FPGA with programmable WCBs can maintain BWT in an active mode while placing LB in a sleep mode of the FPGA to conserve power. For example, when continuous power supply to the BTW is allowed, power to LBs is cut off or stopped. When the BWT receives an access request from a remote system over a wireless communication network, the BWT activates or wakes LBs of the FPGA in response to the access request. Subsequently, data may be retrieved from the LB-based portion via a routing structure on the access request. After generating the data packets formatted in the wireless protocol, the data packets are transmitted by the BWT to the remote system via the wireless communication network.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, that changes and modifications may be made without departing from this exemplary embodiment of the present invention and its broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this exemplary embodiment of the invention.

Claims (15)

1. A method of programming a field programmable gate array ("FPGA") that includes a wireless communications block ("WCB"), comprising:
detecting an FPGA access request initiated by the WCB from a remote system over a wireless communications network to initiate reconfiguration of the FPGA;
receiving, by the WCB from a remote system over a wireless communications network, a configuration bitstream for FPGA programming;
forwarding the configuration bitstream to a configuration download block ("CDB") to initiate a configuration flow; and
programming, by the CDB, at least a portion of configurable logic blocks ("LBs") in the FPGA in response to the configuration bitstream.
2. The method of claim 1, further comprising identifying a gate level netlist from the configuration bitstream.
3. The method of claim 2, further comprising mapping the gate level netlist into the FPGA in a configuration flow.
4. The method of claim 3, further comprising verifying and debugging programmed FPGA logic by said CDM according to said gate level netlist.
5. The method of claim 1, further comprising editing and compiling the configuration bitstream by a user equipment coupled to a remote system.
6. The method of claim 5, further comprising authorizing a remote system to wirelessly transmit a configuration bitstream to said CDM through said WCB to reconfigure said FPGA.
7. The method of claim 1, further comprising selecting a Wi-Fi transceiver from the WCB in response to a wireless control signal for receiving the configuration bitstream.
8. The method of claim 1, further comprising selecting one of a bluetooth transceiver, a Wi-Fi transceiver, a cellular transceiver, and a satellite transceiver in the WCB to obtain the configuration bitstream based on a wireless control signal.
9. The method of claim 1, wherein detecting the FPGA access request comprises acquiring a Wi-Fi signal via a Wi-Fi network by a built-in Wi-Fi transceiver of the WCB.
10. The method of claim 1, wherein receiving the configuration bitstream comprises:
waking up at least some LBs by control circuitry in the WCB in accordance with the configuration bitstream; and
and the CDB processes the configuration bit stream according to the FPGA access request.
11. The method of claim 1, wherein forwarding a configuration bitstream to the CDB comprises converting a configuration bitstream formatted in a wireless protocol to an executable netlist.
12. An apparatus comprising an integrated circuit ("IC") that is selectively programmable to perform one or more logical functions, the apparatus comprising:
a plurality of configurable logic blocks ("LBs") capable of being selectively programmed to perform one or more logic functions;
a routing fabric coupled to the plurality of configurable LBs for selectively routing information between the plurality of configurable LBs and input/output ports based on routing configuration signals;
a configuration download block ("CDB") coupled to the plurality of configurable LBs and operable to provide programmable information to the plurality of configurable LBs; and
a configurable wireless communications block ("WCB") coupled to the plurality of configurable LBs for facilitating wireless programming or wireless debugging of the plurality of configurable LBs via a wireless communications network.
13. The apparatus of claim 12, wherein the WCB comprises a Wi-Fi transmitter and a Wi-Fi receiver.
14. The apparatus of claim 12, wherein the CDB comprises a memory for storing configuration data for configuring the configurable LBs and routing structures.
15. The apparatus of claim 12, wherein the WCB is configured to select one of an optional Wi-Fi transceiver and the optional bluetooth transceiver.
CN201911101449.6A 2019-11-12 2019-11-12 Method and system for providing FPGA wireless programming download through wireless communication block Active CN112866307B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911101449.6A CN112866307B (en) 2019-11-12 2019-11-12 Method and system for providing FPGA wireless programming download through wireless communication block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911101449.6A CN112866307B (en) 2019-11-12 2019-11-12 Method and system for providing FPGA wireless programming download through wireless communication block

Publications (2)

Publication Number Publication Date
CN112866307A true CN112866307A (en) 2021-05-28
CN112866307B CN112866307B (en) 2023-05-30

Family

ID=75984382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911101449.6A Active CN112866307B (en) 2019-11-12 2019-11-12 Method and system for providing FPGA wireless programming download through wireless communication block

Country Status (1)

Country Link
CN (1) CN112866307B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020173298A1 (en) * 2001-03-30 2002-11-21 Bernardo Elayda Wireless programmable logic devices
US20090196199A1 (en) * 2007-01-31 2009-08-06 Broadcom Corporation Wireless programmable logic device
CN101771408A (en) * 2010-01-05 2010-07-07 中国人民解放军信息工程大学 FPGA hardware element generating method and device
CN107967235A (en) * 2016-10-20 2018-04-27 上海复旦微电子集团股份有限公司 A kind of wireless programmable system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020173298A1 (en) * 2001-03-30 2002-11-21 Bernardo Elayda Wireless programmable logic devices
US20090196199A1 (en) * 2007-01-31 2009-08-06 Broadcom Corporation Wireless programmable logic device
CN101771408A (en) * 2010-01-05 2010-07-07 中国人民解放军信息工程大学 FPGA hardware element generating method and device
CN107967235A (en) * 2016-10-20 2018-04-27 上海复旦微电子集团股份有限公司 A kind of wireless programmable system

Also Published As

Publication number Publication date
CN112866307B (en) 2023-05-30

Similar Documents

Publication Publication Date Title
US11923847B2 (en) Method and system for providing wireless FPGA programming download via a wireless communication block
US8504661B2 (en) Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7839169B2 (en) Programmable logic device with embedded switch fabric
US6795686B2 (en) Method and system for increasing availability and proximity of base stations for cellular communications via mobile base stations
EP1601111B1 (en) Slice based architecture for a multifunction radio
EP1187356A2 (en) Real-time reconfigurable electronic radio system
US7752419B1 (en) Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
WO2011079765A1 (en) Baseband signal processing device, method and multi-mode base station
US20220294451A1 (en) Method and apparatus for providing field-programmable gate array (fpga) integrated circuit (ic) package
CN112866307B (en) Method and system for providing FPGA wireless programming download through wireless communication block
KR20080029938A (en) Method and system for sharing components in a time division multiplex wireless system
CN104049995A (en) Method and device for configuring FPGA (field programmable gate array) in MCU (microprogrammed control unit) chip
US10833722B1 (en) Method and system for providing a programmable logic device having a configurable wireless communication block field
CN112860332A (en) Method for programming and verifying FPGA through wireless communication block
CN109218095B (en) Intelligent wireless cloud SDR platform architecture and reconstruction method thereof
Ackland et al. High performance cognitive radio platform with integrated physical and network layer capabilities
KR100681328B1 (en) Modem platform apparatus for development of wireless terminal
Lu et al. A single FPGA embedded framework for secondary user in cognitive network
Zhao et al. From reconfigurable SDR to cognitive femto-cell: A practical platform
Becker et al. Fast Communication Mechanisms in Coarse-grained Dynamically Reconfigurable Array Architectures.
Joseph et al. Power consumption reduction in a SDR based wireless communication system using partial reconfigurable FPGA
CN112910552B (en) LiFi communication device and electronic equipment
Kocks et al. A cognitive radio realization based on a petri net approach
CN113138795B (en) SDR-based configurable protocol communication system
Kumar et al. A FPGA partial reconfiguration design approach for RASIP SDR

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant