US10282315B2 - Software assisted hardware configuration for software defined network system-on-chip - Google Patents

Software assisted hardware configuration for software defined network system-on-chip Download PDF

Info

Publication number
US10282315B2
US10282315B2 US14/672,006 US201514672006A US10282315B2 US 10282315 B2 US10282315 B2 US 10282315B2 US 201514672006 A US201514672006 A US 201514672006A US 10282315 B2 US10282315 B2 US 10282315B2
Authority
US
United States
Prior art keywords
hardware
driver
software
pcie
socket
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.)
Active, expires
Application number
US14/672,006
Other versions
US20160283413A1 (en
Inventor
Nimalan Siva
Premshanth Theivendran
Kishore Badari Atreya
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.)
Cavium International
Marvell Asia Pte Ltd
Xpliant Inc
Original Assignee
Cavium LLC
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
Priority to US14/672,006 priority Critical patent/US10282315B2/en
Application filed by Cavium LLC filed Critical Cavium LLC
Assigned to XPLIANT, INC. reassignment XPLIANT, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SIVA, NIMALAN, ATREYA, KISHORE BADARI, THEIVENDRAN, PREMSHANTH
Assigned to Cavium, Inc. reassignment Cavium, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM NETWORKS LLC
Assigned to CAVIUM NETWORKS LLC reassignment CAVIUM NETWORKS LLC MERGER (SEE DOCUMENT FOR DETAILS). Assignors: XPLIANT, INC.
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT reassignment JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: CAVIUM NETWORKS LLC, Cavium, Inc.
Publication of US20160283413A1 publication Critical patent/US20160283413A1/en
Assigned to CAVIUM NETWORKS LLC, QLOGIC CORPORATION, CAVIUM, INC reassignment CAVIUM NETWORKS LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Assigned to CAVIUM, LLC reassignment CAVIUM, LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: Cavium, Inc.
Publication of US10282315B2 publication Critical patent/US10282315B2/en
Application granted granted Critical
Assigned to CAVIUM INTERNATIONAL reassignment CAVIUM INTERNATIONAL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM, LLC
Assigned to MARVELL ASIA PTE, LTD. reassignment MARVELL ASIA PTE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM INTERNATIONAL
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Definitions

  • the present invention relates to the field of networking.
  • SDN Software-defined networking
  • SoC System-on-Chip
  • IC integrated circuit
  • a software and hardware co-validation for SDN SoC method and system are able to be used to test software and hardware using PCIe (or another implementation) utilizing sockets and messages as the communication medium.
  • a system comprises a software module, a hardware module and a Peripheral Component Interconnect express driver configured for communicating between the software module and the hardware module, wherein the Peripheral Component Interconnect express driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system.
  • Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket.
  • the software module comprises an application programming interface.
  • the hardware module comprises an emulation of hardware.
  • the hardware module comprises physical hardware components.
  • the hardware module comprises a system-on-chip configuration.
  • the Peripheral Component Interconnect express driver enables software defined network testing and hardware testing.
  • a device comprises a memory for storing information including a kernel, wherein the kernel includes a device driver configured for communicating with a system-on-chip configuration using one or more sockets and a processing component coupled to the memory, the processing component configured for processing the information.
  • Communicating includes transmitting Peripheral Component Interconnect express transmission layer packets.
  • the device driver is a Peripheral Component Interconnect express driver with Transmission Control Protocol sockets.
  • the device driver is embedded in a kernel of the device.
  • Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket.
  • the device driver enables software defined network testing and hardware testing.
  • a method programmed in a device comprises generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with a device driver and closing the socket.
  • the transmission layer packets are Peripheral Component Interconnect express transmission layer packets.
  • the device driver is a Peripheral Component Interconnect express driver with Transmission Control Protocol sockets.
  • the device driver is embedded in a kernel of the device. The device driver enables software defined network testing and hardware testing.
  • a system comprises a software stack, a system-on-chip hardware module and a Peripheral Component Interconnect express driver configured for communicating between the software stack and the system-on-chip hardware module, wherein the Peripheral Component Interconnect express driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system.
  • Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket.
  • the software stack comprises an application programming interface.
  • the Peripheral Component Interconnect express driver enables software defined network testing and hardware testing.
  • FIG. 1 illustrates a diagram of a software-defined profile loading to a system-on-chip according to some embodiments.
  • FIG. 2 illustrates a custom PCIe device driver according to some embodiments.
  • FIG. 3 illustrates a flowchart of a method of software and hardware co-validation for SDN SoC according to some embodiments.
  • FIG. 4 illustrates a block diagram of an exemplary computing device configured to implement the software and hardware co-validation for SDN SoC method according to some embodiments.
  • ASIC Application Specific Integrated Circuits
  • SDN software defined network
  • APIs Application Programming Interfaces
  • a given individual/team is able to generate a fully customized profile to suit his/her/their needs.
  • the collection of APIs through the TCP socket are able to be thought of along the same line as the OSI Layer.
  • the hardware APIs represent the actual configuration of the hardware which is able to be represented as hardware.write(address, data) or hardware.read(address,data).
  • PCIe Peripheral Component Interconnect express
  • SoC System-on-Chip
  • TCP Socket the transaction from the TCP Socket feeds into a PCIe driver which actually does the signal-level pin toggling of System-on-Chip's PCIe core logic.
  • Multiple devices are able to be configured via the TCP socket, allowing for a single point of control when setting up a cloud of SDN devices/chips.
  • FIG. 1 illustrates a diagram of a software-defined profile loading to a system-on-chip according to some embodiments.
  • a software stack 100 includes an API, a hardware manager, a PCIe Device manager, a TCP socket and/or any other drivers or interfaces.
  • the software stack 100 is able to communicate with a SoC 102 through a custom PCIe device driver 104 with TCP sockets.
  • the SoC 102 includes core logic and PCIe logic.
  • the software stack 100 and the SoC 102 are able to be tested. For example, test messages or communications are able to be sent, and the results or return values are able to be analyzed.
  • the SoC 102 is able to be hardware or an emulation of hardware.
  • a profile in this case, refers to a particular device configuration enabling the device to carry out certain network functions.
  • SDN SoC Software is important to ensure that an SDN SoC is able to function as a traditional packet processor.
  • SDN provides a clear benefit to a user in that it provides flexibility to define features that their application utilizes.
  • PCI express Connected to the PCIe interface is a translator/driver, which converts messages to PCIe Transition Layer Packets (TLPs) and vice-versa.
  • TLPs PCIe Transition Layer Packets
  • the driver is attached to the device, and it will also be simulated/emulated.
  • an application or software is running on a server communicating with the hardware device via direct connections.
  • a key challenge is the communication mechanism used in the simulation/emulation environment.
  • the communication mechanism should be light, fast, bi-directional, and transparent to the end user.
  • the method described herein allows communications between hardware and software via PCIe, using TCP sockets and messages as the communication medium.
  • a key factor in maintaining a transparent layer is by embedding the code/logic in the lowest PCIe layer which resides in the software kernel space as shown in FIG. 2 .
  • the hardware side a similar approach is used but is separated into two parts—the TCP layer and the PCIe driver.
  • FIG. 2 illustrates a custom PCIe device driver according to some embodiments.
  • the custom PCIe device driver 104 is used to correctly set up and establish a connection and transfer messages.
  • the custom PCIe device driver 104 creates a socket, identifies the socket, waits for an incoming connection, client connection, sends and receives messages, translates messages to PCIe TLPs communicating with PCIe device Manager/Driver, and closes the socket.
  • the custom PCIe device driver 104 is able to be used to verify the hardware (and hardware features) and the software stack in one step. Although PCIe is described herein, other interfaces are able to be utilized.
  • FIG. 3 illustrates a flowchart of a method of software and hardware co-validation for SDN SoC according to some embodiments.
  • a PCIe driver is used to enable communication and thus testing between the APIs and the SDN SoC.
  • the PCIe driver is utilized by generating a socket in the step 300 . For example, after intercepting a low level instruction, a socket is generated.
  • the socket is identified (e.g., given a socket identifier).
  • the PCIe driver waits for an incoming connection.
  • a client connects to the PCIe driver.
  • messages are sent to and received from the client.
  • the messages are translated to PCIE TLPs communicating with the PCIe device manager/driver.
  • the socket is closed. Additional testing steps are able to be implemented after the socket is closed. For example, analysis of the results (e.g., return values) of the communications is able to be performed. Furthering the example, the PCIe driver is able to be used to perform signal-level pin toggling of the SoC's PCIe core logic. Multiple devices are able to be configured via TCP sockets. In some embodiments, fewer or additional steps are implemented. In some embodiments, the order of the steps is modified.
  • FIG. 4 illustrates a block diagram of an exemplary computing device configured to implement the software and hardware co-validation for SDN SoC method according to some embodiments.
  • a computing device 400 is able to be used to acquire, store, compute, process, communicate, receive, send, and/or display information such as data packets.
  • a hardware structure suitable for implementing the computing device 400 includes a network interface 402 , a memory 404 , a processor 406 , I/O device(s) 408 , a bus 410 and a storage device 412 .
  • the choice of processor(s) is not critical as long as suitable processor(s) with sufficient speed are chosen.
  • the memory 404 is able to be any conventional computer memory known in the art.
  • the storage device 412 is able to include memory, a hard drive, CDROM, CDRW, DVD, DVDRW, High Definition disc/drive, ultra-HD drive, flash memory card or any other storage device.
  • the computing device 400 is able to include one or more network interfaces 402 .
  • An example of a network interface includes a network interface controller or a network card connected to an Ethernet or other type of Local Area Network (LAN).
  • the I/O device(s) 408 are able to include one or more of the following: keyboard, mouse, monitor, screen, printer, modem, touchscreen, button interface and other devices.
  • Software and hardware co-validation for SDN SoC application(s) 430 used to perform the software and hardware co-validation for SDN SoC method may be stored in the storage device 412 and memory 404 and processed as applications are typically processed. More or fewer components shown in FIG. 4 are able to be included in the computing device 400 . In some embodiments, software and hardware co-validation for SDN SoC hardware 420 is included. Although the computing device 400 in FIG. 4 includes applications 430 and hardware 420 for the software and hardware co-validation for SDN SoC method, the software and hardware co-validation for SDN SoC method is able to be implemented on a computing device in hardware, firmware, software or any combination thereof.
  • the software and hardware co-validation for SDN SoC applications 430 are programmed in a memory and executed using a processor.
  • the software and hardware co-validation for SDN SoC hardware 420 is programmed hardware logic including gates specifically designed to implement the software and hardware co-validation for SDN SoC method.
  • the software and hardware co-validation for SDN SoC application(s) 430 include several applications and/or modules.
  • modules include one or more sub-modules as well. In some embodiments, fewer or additional modules are able to be included.
  • Suitable computing devices include a server, a personal computer, a laptop, a mobile device (e.g., smart phone), a network switch, a router, a hub, any other networking equipment and any other computing devices.
  • software and hardware are developed. Specifically, software and an emulation of hardware are developed for an SDN SoC. The software and hardware are then able to be tested using PCIe (or another implementation) utilizing sockets and messages as the communication medium. For example, after an individual/team generates one or more APIs and develops hardware or an emulation of the hardware, the individual/team or another entity is able to test the software and hardware using the software and hardware co-validation for SDN SoC method and system.
  • the software and hardware co-validation for SDN SoC method and system enable communication between hardware and software via PCIe using TCP sockets and messages which permits efficient testing and analysis of software and hardware aspects of an SoC.
  • An entire software stack as well as hardware are able to be tested.
  • multiple chips (SoCs) are able to be programmed at the same time, not just one, as in previous implementations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A software and hardware co-validation for SDN SoC method and system are able to be used to test software and hardware using PCIe (or another implementation) utilizing sockets and messages as the communication medium. An entire software stack as well as hardware are able to be tested. Additionally, multiple chips (SoCs) are able to be programmed at the same time, not just one, as in previous implementations.

Description

FIELD OF INVENTION
The present invention relates to the field of networking.
BACKGROUND OF THE INVENTION
Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. A system on a chip or System-on-Chip (SoC) is an integrated circuit (IC) that integrates all components of an electronic system into a single chip. It is possible to implement many networking features on a single chip using combinations of software and hardware.
BRIEF SUMMARY
A software and hardware co-validation for SDN SoC method and system are able to be used to test software and hardware using PCIe (or another implementation) utilizing sockets and messages as the communication medium.
In one aspect, a system comprises a software module, a hardware module and a Peripheral Component Interconnect express driver configured for communicating between the software module and the hardware module, wherein the Peripheral Component Interconnect express driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system. Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket. The software module comprises an application programming interface. The hardware module comprises an emulation of hardware. The hardware module comprises physical hardware components. The hardware module comprises a system-on-chip configuration. The Peripheral Component Interconnect express driver enables software defined network testing and hardware testing.
In another aspect, a device comprises a memory for storing information including a kernel, wherein the kernel includes a device driver configured for communicating with a system-on-chip configuration using one or more sockets and a processing component coupled to the memory, the processing component configured for processing the information. Communicating includes transmitting Peripheral Component Interconnect express transmission layer packets. The device driver is a Peripheral Component Interconnect express driver with Transmission Control Protocol sockets. The device driver is embedded in a kernel of the device. Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket. The device driver enables software defined network testing and hardware testing.
In another aspect, a method programmed in a device comprises generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with a device driver and closing the socket. The transmission layer packets are Peripheral Component Interconnect express transmission layer packets. The device driver is a Peripheral Component Interconnect express driver with Transmission Control Protocol sockets. The device driver is embedded in a kernel of the device. The device driver enables software defined network testing and hardware testing.
In another aspect, a system comprises a software stack, a system-on-chip hardware module and a Peripheral Component Interconnect express driver configured for communicating between the software stack and the system-on-chip hardware module, wherein the Peripheral Component Interconnect express driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system. Communicating includes intercepting a low level instruction and generating transmission control protocol socket connection. Communicating includes: generating a socket, identifying the socket, connecting to a client, sending and receiving messages to and from the client, translating the messages to transmission layer packets communicating with the driver and closing the socket. The software stack comprises an application programming interface. The Peripheral Component Interconnect express driver enables software defined network testing and hardware testing.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.
FIG. 1 illustrates a diagram of a software-defined profile loading to a system-on-chip according to some embodiments.
FIG. 2 illustrates a custom PCIe device driver according to some embodiments.
FIG. 3 illustrates a flowchart of a method of software and hardware co-validation for SDN SoC according to some embodiments.
FIG. 4 illustrates a block diagram of an exemplary computing device configured to implement the software and hardware co-validation for SDN SoC method according to some embodiments.
DETAILED DESCRIPTION
In traditional networking Application Specific Integrated Circuits (ASIC), many operations such as packet parsing, lookup, and others are hardened. With the evolution of a software defined network (SDN), recent ASIC technologies allow networking features to be defined in the software (as shown in FIG. 1). With a given collection of Application Programming Interfaces (APIs), a given individual/team is able to generate a fully customized profile to suit his/her/their needs. The collection of APIs through the TCP socket are able to be thought of along the same line as the OSI Layer. At the lower levels, the hardware APIs represent the actual configuration of the hardware which is able to be represented as hardware.write(address, data) or hardware.read(address,data). The Peripheral Component Interconnect express (PCIe) Device Manager takes these hardware transactions and configures the System-on-Chip (SoC) via TCP Socket. Furthermore, on the hardware side, the transaction from the TCP Socket feeds into a PCIe driver which actually does the signal-level pin toggling of System-on-Chip's PCIe core logic.
Multiple devices are able to be configured via the TCP socket, allowing for a single point of control when setting up a cloud of SDN devices/chips.
FIG. 1 illustrates a diagram of a software-defined profile loading to a system-on-chip according to some embodiments. A software stack 100 includes an API, a hardware manager, a PCIe Device manager, a TCP socket and/or any other drivers or interfaces. The software stack 100 is able to communicate with a SoC 102 through a custom PCIe device driver 104 with TCP sockets. The SoC 102 includes core logic and PCIe logic. By using the PCIe driver with TCP sockets (or another implementation), the software stack 100 and the SoC 102 are able to be tested. For example, test messages or communications are able to be sent, and the results or return values are able to be analyzed. The SoC 102 is able to be hardware or an emulation of hardware.
Software and SDN Application
Software used to program network ASICs has a very high level of abstraction, with several layers of APIs and feature specific code. Using these APIs, specific profiles are able to be developed and used by individuals/teams. A profile, in this case, refers to a particular device configuration enabling the device to carry out certain network functions.
For an SDN SoC, these profiles control the hardware device, hence they are important during deployment. Although the majority of software testing is done using the white model, this does not completely guarantee seemless integration with the post-silicon hardware. In the hardware section, a more robust approach to testing SDN software is discussed.
Furthermore, as SDN evolves, complicated hardware to support SDN-based configurations will be developed and will have a need to be verified end-to-end. One of the challenges in verification of an SDN SoC is that without some configuration from software, the ASIC will do very little. Software is what is used to define the feature set to overlay. Traditional hardware verification methods are able to be used to verify the hardware; however, whether or not this particular hardware is able to actually perform the features that the SDN defines are not able to be verified using a traditional simulation.
Software is important to ensure that an SDN SoC is able to function as a traditional packet processor. SDN provides a clear benefit to a user in that it provides flexibility to define features that their application utilizes.
Hardware
To verify a significant amount of the software stack, prior to post-silicon, a simulation-based or hardware-accelerated design (full-chip/device) is used. This allows verification and software engineers to quickly find bugs in both hardware and software within a reasonable amount of time. This approach also allows key features such as learning and table aging to be tested in real-time.
Although the device is able to be configured and initialized via many different interfaces, the primary and most common route is through PCI express (PCIe). Connected to the PCIe interface is a translator/driver, which converts messages to PCIe Transition Layer Packets (TLPs) and vice-versa. The driver is attached to the device, and it will also be simulated/emulated.
Communicating with Hardware
In an actual network environment, an application or software is running on a server communicating with the hardware device via direct connections. In the absence of the actual device, a key challenge is the communication mechanism used in the simulation/emulation environment. The communication mechanism should be light, fast, bi-directional, and transparent to the end user.
The method described herein allows communications between hardware and software via PCIe, using TCP sockets and messages as the communication medium.
PCIe root complex <----> TCP messages <----> host PCIe endpoint
The following is used to correctly set up and establish a connection and transfer messages.
1) create socket
2) identify socket
3) wait for incoming connection
4) client to connect
5) send and receive messages
6) translate messages to PCIe TLPs communicating with PCIe device Manager/Driver
7) close socket.
A key factor in maintaining a transparent layer is by embedding the code/logic in the lowest PCIe layer which resides in the software kernel space as shown in FIG. 2. On the hardware side, a similar approach is used but is separated into two parts—the TCP layer and the PCIe driver.
FIG. 2 illustrates a custom PCIe device driver according to some embodiments. The custom PCIe device driver 104 is used to correctly set up and establish a connection and transfer messages. The custom PCIe device driver 104 creates a socket, identifies the socket, waits for an incoming connection, client connection, sends and receives messages, translates messages to PCIe TLPs communicating with PCIe device Manager/Driver, and closes the socket. The custom PCIe device driver 104 is able to be used to verify the hardware (and hardware features) and the software stack in one step. Although PCIe is described herein, other interfaces are able to be utilized.
FIG. 3 illustrates a flowchart of a method of software and hardware co-validation for SDN SoC according to some embodiments. After APIs and an SDN SoC are developed, a PCIe driver is used to enable communication and thus testing between the APIs and the SDN SoC. The PCIe driver is utilized by generating a socket in the step 300. For example, after intercepting a low level instruction, a socket is generated. In the step 302, the socket is identified (e.g., given a socket identifier). In the step 304, the PCIe driver waits for an incoming connection. In the step 306, a client connects to the PCIe driver. In the step 308, messages are sent to and received from the client. In the step 310, the messages are translated to PCIE TLPs communicating with the PCIe device manager/driver. In the step 312, the socket is closed. Additional testing steps are able to be implemented after the socket is closed. For example, analysis of the results (e.g., return values) of the communications is able to be performed. Furthering the example, the PCIe driver is able to be used to perform signal-level pin toggling of the SoC's PCIe core logic. Multiple devices are able to be configured via TCP sockets. In some embodiments, fewer or additional steps are implemented. In some embodiments, the order of the steps is modified.
FIG. 4 illustrates a block diagram of an exemplary computing device configured to implement the software and hardware co-validation for SDN SoC method according to some embodiments. A computing device 400 is able to be used to acquire, store, compute, process, communicate, receive, send, and/or display information such as data packets. In general, a hardware structure suitable for implementing the computing device 400 includes a network interface 402, a memory 404, a processor 406, I/O device(s) 408, a bus 410 and a storage device 412. The choice of processor(s) is not critical as long as suitable processor(s) with sufficient speed are chosen. The memory 404 is able to be any conventional computer memory known in the art. The storage device 412 is able to include memory, a hard drive, CDROM, CDRW, DVD, DVDRW, High Definition disc/drive, ultra-HD drive, flash memory card or any other storage device. The computing device 400 is able to include one or more network interfaces 402. An example of a network interface includes a network interface controller or a network card connected to an Ethernet or other type of Local Area Network (LAN). The I/O device(s) 408 are able to include one or more of the following: keyboard, mouse, monitor, screen, printer, modem, touchscreen, button interface and other devices. Software and hardware co-validation for SDN SoC application(s) 430 used to perform the software and hardware co-validation for SDN SoC method may be stored in the storage device 412 and memory 404 and processed as applications are typically processed. More or fewer components shown in FIG. 4 are able to be included in the computing device 400. In some embodiments, software and hardware co-validation for SDN SoC hardware 420 is included. Although the computing device 400 in FIG. 4 includes applications 430 and hardware 420 for the software and hardware co-validation for SDN SoC method, the software and hardware co-validation for SDN SoC method is able to be implemented on a computing device in hardware, firmware, software or any combination thereof. For example, in some embodiments, the software and hardware co-validation for SDN SoC applications 430 are programmed in a memory and executed using a processor. In another example, in some embodiments, the software and hardware co-validation for SDN SoC hardware 420 is programmed hardware logic including gates specifically designed to implement the software and hardware co-validation for SDN SoC method.
In some embodiments, the software and hardware co-validation for SDN SoC application(s) 430 include several applications and/or modules. In some embodiments, modules include one or more sub-modules as well. In some embodiments, fewer or additional modules are able to be included.
Examples of suitable computing devices include a server, a personal computer, a laptop, a mobile device (e.g., smart phone), a network switch, a router, a hub, any other networking equipment and any other computing devices.
To utilize the software and hardware co-validation for SDN SoC method and system, software and hardware (or an emulation of hardware) are developed. Specifically, software and an emulation of hardware are developed for an SDN SoC. The software and hardware are then able to be tested using PCIe (or another implementation) utilizing sockets and messages as the communication medium. For example, after an individual/team generates one or more APIs and develops hardware or an emulation of the hardware, the individual/team or another entity is able to test the software and hardware using the software and hardware co-validation for SDN SoC method and system.
In operation, the software and hardware co-validation for SDN SoC method and system enable communication between hardware and software via PCIe using TCP sockets and messages which permits efficient testing and analysis of software and hardware aspects of an SoC. An entire software stack as well as hardware are able to be tested. Additionally, multiple chips (SoCs) are able to be programmed at the same time, not just one, as in previous implementations.
The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be readily apparent to one skilled in the art that other various modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention as defined by the claims.

Claims (24)

We claim:
1. A software and hardware co-validation system comprising:
a hardware module for a programmable microchip including one of a group consisting of hardware and emulation software that emulates the hardware, the emulation software stored on a first non-transitory computer-readable medium;
a software module stored on a second non-transitory computer-readable medium and including a plurality of application programming interfaces (APIs) that together define a system profile including configuration data for a plurality of functions, wherein the APIs are not programmed into the hardware, but are designed to be programmed into the hardware, and when programmed into the hardware, the APIs enable the hardware to perform the functions of the system profile using the configuration data, and a first Peripheral Component Interconnect express (PCIe) driver configured for receiving and transmitting data between the APIs and the hardware module; and
a second Peripheral Component Interconnect express (PCIe) driver separate from the hardware module and configured for translating and communicating messages between the first PCIe driver of the software module and the hardware module.
2. The system of claim 1 wherein the translating and communicating messages includes intercepting a low level instruction and generating transmission control protocol socket connection.
3. The system of claim 1 wherein the translating and communicating messages includes:
generating a socket;
identifying the socket;
connecting to a client;
sending and receiving messages to and from the client;
translating the messages to transmission layer packets communicating with the driver; and
closing the socket.
4. The system of claim 1 wherein the hardware module comprises an emulation of hardware.
5. The system of claim 1 wherein the hardware module comprises physical hardware components.
6. The system of claim 1 wherein the hardware module comprises a system-on-chip configuration.
7. The system of claim 1 wherein the second PCIe driver enables software defined network testing and hardware testing.
8. The system of claim 1 wherein the second PCIe driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system.
9. A software and hardware co-validation device comprising:
a memory for storing information including a device driver configured for communicating with a programmable system-on-chip configuration, wherein the device driver is communicatively coupled with a hardware module and a client having a stack, the hardware module including one of a group consisting of hardware and emulation software that emulates the hardware and the stack including a plurality of application programming interfaces (APIs) that together define a system profile including configuration data for a plurality of functions, wherein the APIs are not programmed into the hardware, but are designed to be programmed into the hardware, and when programmed into the hardware, the APIs enable the hardware to perform the functions of the system profile using the configuration data, and a first Peripheral Component Interconnect express (PCIe) driver configured for receiving and transmitting data between the APIs and the hardware module; and
a processing component coupled to the memory, the processing component configured for processing the information, wherein the device driver is separate from the hardware module and the communicating facilitated by the device driver is between the first PCIe driver of the client and the hardware module.
10. The device of claim 9 wherein the communicating includes transmitting PCIe transmission layer packets.
11. The device of claim 9 wherein the device driver is a second PCIe driver with Transmission Control Protocol sockets.
12. The device of claim 9 wherein the device driver is embedded in a kernel of the device.
13. The device of claim 9 wherein the communicating includes intercepting a low level instruction and generating transmission control protocol socket connection.
14. The device of claim 9 wherein the communicating includes:
generating a socket;
identifying the socket;
connecting to the client;
sending and receiving messages to and from the client;
translating the messages to transmission layer packets communicating with the driver; and
closing the socket.
15. The device of claim 9 wherein the device driver enables software defined network testing and hardware testing.
16. A method programmed in a software and hardware co-validation device, the method comprising:
with the software and hardware co-validation device:
facilitating communication between a hardware module for a programmable microchip including one of a group consisting of hardware and emulation software that emulates the hardware and a first Peripheral Component Interconnect express (PCIe) driver of a client by:
generating a socket;
identifying the socket;
connecting to the client;
sending and receiving messages to and from the client;
translating the messages to transmission layer packets; and
closing the socket;
wherein the software and hardware co-validation device is separate from but communicatively coupled with:
the hardware module; and
the client, wherein the client has a stack including both a plurality of application programming interfaces (APIs) that together define a system profile including configuration data for a plurality of functions, wherein the APIs are not programmed into the hardware, but are designed to be programmed into the hardware, and when programmed into the hardware, the APIs enable the hardware to perform the functions of the system profile using the configuration data and a first Peripheral Component Interconnect express (PCIe) driver configured for receiving and transmitting data between the APIs and the hardware module, and further wherein the device is a second Peripheral Component Interconnect express (PCIe) driver.
17. The method of claim 16 wherein the transmission layer packets are PCIe transmission layer packets.
18. The method of claim 16 wherein the device is embedded in a kernel of the device.
19. The method of claim 16 wherein the device enables software defined network testing and hardware testing.
20. A software and hardware co-validation system comprising:
a programmable system-on-chip hardware module including one of a group consisting of hardware and emulation software stored on a first non-transitory computer-readable medium that emulates the hardware;
a software stack stored on a second non-transitory computer-readable medium and including a plurality of application programming interfaces (APIs) that together define a system profile including configuration data for a plurality of functions, wherein the APIs are not programmed into the hardware, but are designed to be programmed into the hardware, and when programmed into the hardware, the APIs enable the hardware to perform the functions of the system profile using the configuration data, and a stack Peripheral Component Interconnect express (PCIe) driver configured for receiving and transmitting data between the APIs and the system-on-chip hardware module; and
a validation Peripheral Component Interconnect express (PCIe) driver independent of the stack PCIe driver and the system-on-chip hardware module and configured for translating and communicating messages between the stack PCIe driver of the software stack and the system-on-chip hardware module.
21. The system of claim 20 wherein the translating and communicating messages includes intercepting a low level instruction and generating transmission control protocol socket connection.
22. The system of claim 20 wherein the translating and communicating messages includes:
generating a socket;
identifying the socket;
connecting to a client;
sending and receiving messages to and from the client;
translating the messages to transmission layer packets communicating with the driver; and
closing the socket.
23. The system of claim 20 wherein the validation PCIe driver enables software defined network testing and hardware testing.
24. The system of claim 20 wherein the validation PCIe driver utilizes transmission control protocol packets for communicating and is embedded in a kernel of the system.
US14/672,006 2015-03-27 2015-03-27 Software assisted hardware configuration for software defined network system-on-chip Active 2036-06-05 US10282315B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/672,006 US10282315B2 (en) 2015-03-27 2015-03-27 Software assisted hardware configuration for software defined network system-on-chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/672,006 US10282315B2 (en) 2015-03-27 2015-03-27 Software assisted hardware configuration for software defined network system-on-chip

Publications (2)

Publication Number Publication Date
US20160283413A1 US20160283413A1 (en) 2016-09-29
US10282315B2 true US10282315B2 (en) 2019-05-07

Family

ID=56975712

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/672,006 Active 2036-06-05 US10282315B2 (en) 2015-03-27 2015-03-27 Software assisted hardware configuration for software defined network system-on-chip

Country Status (1)

Country Link
US (1) US10282315B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks
CN113704171B (en) * 2021-08-20 2023-05-16 北京计算机技术及应用研究所 Software-defined data storage system

Citations (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847751A (en) 1995-02-28 1998-12-08 General Instrument Corporation CATV communication system remote hub for distribution of digital, analog, broadcast and interactive communications
GB2336076A (en) 1998-04-03 1999-10-06 3Com Technologies Ltd Controlling data flow through the ports of a communications device
US6154464A (en) 1997-05-09 2000-11-28 Level One Communications, Inc. Physical layer device having a media independent interface for connecting to either media access control entitices or other physical layer devices
US6182258B1 (en) 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US6216098B1 (en) 1997-04-30 2001-04-10 Institute For Research On Learning Simulating work behavior
US6253365B1 (en) 1998-10-06 2001-06-26 David P. Baldwin Automated design system for digital circuits
US6377912B1 (en) 1997-05-30 2002-04-23 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US20020054608A1 (en) 1998-12-23 2002-05-09 Cisco Systems Canada Co. Forward error correction at MPEG-2 transport stream layer
US6434517B1 (en) 1998-12-04 2002-08-13 Xilinx, Inc. Method and system for demonstrating simulation of a communications bus
US20020183956A1 (en) 2001-04-12 2002-12-05 Nightingale Andrew Mark Testing compliance of a device with a bus protocol
US20030110339A1 (en) 2001-12-10 2003-06-12 International Business Machines Corporation Chip to chip interface for interconnecting chips
US20030225565A1 (en) 2002-06-03 2003-12-04 Broadcom Corporation Method and system for deterministic control of an emulation
US6665864B1 (en) 1999-01-05 2003-12-16 International Business Machines Corporation Method and apparatus for generating code for array range check and method and apparatus for versioning
US6667985B1 (en) 1998-10-28 2003-12-23 3Com Technologies Communication switch including input bandwidth throttling to reduce output congestion
US6694464B1 (en) 1997-05-30 2004-02-17 Quickturn Design Systems, Inc. Method and apparatus for dynamically testing electrical interconnect
US6728271B1 (en) 1999-08-24 2004-04-27 Matsushita Electric Industrial Co., Ltd. Stream demultiplexing device
US6754612B1 (en) 2000-06-29 2004-06-22 Microsoft Corporation Performance markers to measure benchmark timing of a plurality of standard features in an application program
US20050108596A1 (en) 2003-09-25 2005-05-19 Deaton Craig F. Method of verifying circuitry used for testing a new logic component prior to the first release of the component
US20050157653A1 (en) 2004-01-16 2005-07-21 Native Networks Technologies Ltd. Method and device for charging for uncounted network traffic overhead
US20060190871A1 (en) 2005-02-08 2006-08-24 Likovich Robert B Jr Methods, systems and media for managing functional verification of a parameterizable design
US7130783B1 (en) 2001-01-12 2006-10-31 Synopsys, Inc. Simulation-based functional verification of microcircuit designs
US7185247B2 (en) 2003-06-26 2007-02-27 Intel Corporation Pseudo bus agent to support functional testing
US7236918B2 (en) 2003-12-31 2007-06-26 International Business Machines Corporation Method and system for selective compilation of instrumentation entities into a simulation model of a digital design
US7246332B2 (en) 2005-02-08 2007-07-17 International Business Machines Corporation Methods, systems and media for functional simulation of noise and distortion on an I/O bus
US20070217759A1 (en) 2006-03-10 2007-09-20 Microsoft Corporation Reverse Playback of Video Data
US7284177B2 (en) 2005-03-31 2007-10-16 Verisity, Ltd. Method and apparatus for functionally verifying a physical device under test
US20070264730A1 (en) 2006-03-31 2007-11-15 Tim Frodsham Redundant acknowledgment in loopback entry
US20070277163A1 (en) 2006-05-24 2007-11-29 Syver, Llc Method and tool for automatic verification of software protocols
US7325018B2 (en) 2000-01-31 2008-01-29 Stmicroelectronics Limited Design flow checker
US20080098366A1 (en) 2006-10-09 2008-04-24 Via Technologies, Inc. Assertion Tester
US7472051B2 (en) 2003-07-11 2008-12-30 Yogitech Spa Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
US7506281B1 (en) 2005-05-18 2009-03-17 Xilinx, Inc. Two-pass method for implementing a flexible testbench
US7519865B1 (en) 2004-05-06 2009-04-14 Hewlett-Packard Development Company, L.P. Systems and methods for identifying incomplete transactions
US7526742B1 (en) 2006-01-31 2009-04-28 Xilinx, Inc. One-pass method for implementing a flexible testbench
US20090144675A1 (en) 2007-11-30 2009-06-04 Christian Haufe Transaction based verification of a system on chip on system level by translating transactions into machine code
US7565631B1 (en) 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
US20100031000A1 (en) 2007-12-06 2010-02-04 David Flynn Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US7796627B2 (en) 2004-08-12 2010-09-14 Broadcom Corporation Apparatus and system for coupling and decoupling initiator devices to a network using an arbitrated loop without disrupting the network
US20100306728A1 (en) 2009-04-17 2010-12-02 Raghu Ardeishar Coexistence of Multiple Verification Component types in a Hardware Verification Framework
US20110010720A1 (en) 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
US20110063093A1 (en) 2009-07-10 2011-03-17 Certicom Corp. System and method for performing serialization of devices
US20110145795A1 (en) 2009-12-10 2011-06-16 Amol Khanapurkar System and method for automated performance testing in a dynamic production environment
US20110307233A1 (en) 1998-08-31 2011-12-15 Tseng Ping-Sheng Common shared memory in a verification system
US8214694B1 (en) 2009-03-12 2012-07-03 Xilinx, Inc. Lightweight probe and data collection within an integrated circuit
US20120174068A1 (en) 2010-12-30 2012-07-05 Sap Ag Testing Software Code
US20120198174A1 (en) 2011-01-31 2012-08-02 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US20120255022A1 (en) 2011-03-30 2012-10-04 Ocepek Steven R Systems and methods for determining vulnerability to session stealing
US20120284432A1 (en) * 2011-01-05 2012-11-08 Alibaba Group Holding Limited Upgrading An Elastic Computing Cloud System
US20120284446A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Accelerator engine emulation over an interconnect link
US20120300649A1 (en) 2007-05-21 2012-11-29 W2Bi, Inc. Mobile device throughput testing
US20130007330A1 (en) 2010-02-19 2013-01-03 Leonid Ryzhyk Co-design of a testbench and driver of a device
US20130028105A1 (en) 2011-07-27 2013-01-31 Earl Chew Wide Field Indexing for Packet Tracking
US20130080761A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Experiment Manager for Manycore Systems
US20130081005A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Memory Management Parameters Derived from System Modeling
US20130198706A1 (en) 2012-01-31 2013-08-01 Taiwan Semiconductor Manufacturing Co., Ltd. Format conversion from value change dump (vcd) to universal verification methodology (uvm)
US8560893B1 (en) 2011-10-21 2013-10-15 Cadence Design Systems, Inc. Systems and methods for automatically generating executable system level-tests from a partially specified scenario
US20130318486A1 (en) 2012-05-23 2013-11-28 Lawrence SASAKI Method and system for generating verification environments
US20140068360A1 (en) 2012-08-28 2014-03-06 Kingtiger Technology (Canada) Inc. Systems and methods for testing memory
US20140082242A1 (en) * 2012-09-18 2014-03-20 Apple Inc. Reducing latency in a peripheral component interconnect express link
US20140112339A1 (en) 2012-10-22 2014-04-24 Robert J. Safranek High performance interconnect
US20140195711A1 (en) * 2013-01-04 2014-07-10 American Megatrends, Inc. Pci express channel implementation in intelligent platform management interface stack
US20140244888A1 (en) * 2013-02-26 2014-08-28 Emulex Design And Manufacturing Corp. Using pci-e extended configuration space to send ioctls to a pci-e adapter
US8832622B1 (en) 2011-11-23 2014-09-09 Marvell International Ltd. Coverage scoreboard
US20140282312A1 (en) 2013-03-15 2014-09-18 Mentor Graphics Corporation Hardware simulation controller, system and method for functional verification
US20140289445A1 (en) * 2013-03-22 2014-09-25 Antony Savich Hardware accelerator system and method
US8984490B1 (en) 2010-10-26 2015-03-17 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US20150161385A1 (en) 2012-08-10 2015-06-11 Concurix Corporation Memory Management Parameters Derived from System Modeling
US20150234008A1 (en) 2007-09-19 2015-08-20 Tabula, Inc. Integrated circuit (ic) with primary and secondary networks and device containing such an ic
US9135382B1 (en) 2012-11-08 2015-09-15 Atrenta, Inc. Systems, methods, and media for assertion-based verification of devices
US20150286470A1 (en) 2010-10-26 2015-10-08 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US20150301108A1 (en) 2014-04-18 2015-10-22 Breker Verification Systems Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models
US20160092329A1 (en) 2014-09-29 2016-03-31 Freescale Semiconductor Inc. Final Result Checking For System With Pre-Verified Cores
US9322872B2 (en) 2010-06-01 2016-04-26 The United States Of America As Represented By The Secretary Of The Navy Correlated testing system
US9330227B1 (en) 2014-11-14 2016-05-03 Cavium Inc. Testbench builder, system, device and method including a dispatcher
US20160134653A1 (en) 2014-11-11 2016-05-12 Goldman, Sachs & Co. Synthetic Cyber-Risk Model For Vulnerability Determination
US9506984B1 (en) 2015-07-02 2016-11-29 Intel Corporation Protocol based automated tester stimulus generator
US20160366036A1 (en) 2014-10-09 2016-12-15 Splunk Inc. Control Interface for Dynamic Substitution of Service Monitoring Dashboard Source Data

Patent Citations (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847751A (en) 1995-02-28 1998-12-08 General Instrument Corporation CATV communication system remote hub for distribution of digital, analog, broadcast and interactive communications
US6216098B1 (en) 1997-04-30 2001-04-10 Institute For Research On Learning Simulating work behavior
US6154464A (en) 1997-05-09 2000-11-28 Level One Communications, Inc. Physical layer device having a media independent interface for connecting to either media access control entitices or other physical layer devices
US6377912B1 (en) 1997-05-30 2002-04-23 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6694464B1 (en) 1997-05-30 2004-02-17 Quickturn Design Systems, Inc. Method and apparatus for dynamically testing electrical interconnect
US6182258B1 (en) 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
GB2336076A (en) 1998-04-03 1999-10-06 3Com Technologies Ltd Controlling data flow through the ports of a communications device
US20110307233A1 (en) 1998-08-31 2011-12-15 Tseng Ping-Sheng Common shared memory in a verification system
US6253365B1 (en) 1998-10-06 2001-06-26 David P. Baldwin Automated design system for digital circuits
US6667985B1 (en) 1998-10-28 2003-12-23 3Com Technologies Communication switch including input bandwidth throttling to reduce output congestion
US6434517B1 (en) 1998-12-04 2002-08-13 Xilinx, Inc. Method and system for demonstrating simulation of a communications bus
US20020054608A1 (en) 1998-12-23 2002-05-09 Cisco Systems Canada Co. Forward error correction at MPEG-2 transport stream layer
US6665864B1 (en) 1999-01-05 2003-12-16 International Business Machines Corporation Method and apparatus for generating code for array range check and method and apparatus for versioning
US6728271B1 (en) 1999-08-24 2004-04-27 Matsushita Electric Industrial Co., Ltd. Stream demultiplexing device
US7325018B2 (en) 2000-01-31 2008-01-29 Stmicroelectronics Limited Design flow checker
US6754612B1 (en) 2000-06-29 2004-06-22 Microsoft Corporation Performance markers to measure benchmark timing of a plurality of standard features in an application program
US7130783B1 (en) 2001-01-12 2006-10-31 Synopsys, Inc. Simulation-based functional verification of microcircuit designs
US6876941B2 (en) 2001-04-12 2005-04-05 Arm Limited Testing compliance of a device with a bus protocol
US20020183956A1 (en) 2001-04-12 2002-12-05 Nightingale Andrew Mark Testing compliance of a device with a bus protocol
US20030110339A1 (en) 2001-12-10 2003-06-12 International Business Machines Corporation Chip to chip interface for interconnecting chips
US20030225565A1 (en) 2002-06-03 2003-12-04 Broadcom Corporation Method and system for deterministic control of an emulation
US7185247B2 (en) 2003-06-26 2007-02-27 Intel Corporation Pseudo bus agent to support functional testing
US7472051B2 (en) 2003-07-11 2008-12-30 Yogitech Spa Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor
US20050108596A1 (en) 2003-09-25 2005-05-19 Deaton Craig F. Method of verifying circuitry used for testing a new logic component prior to the first release of the component
US7236918B2 (en) 2003-12-31 2007-06-26 International Business Machines Corporation Method and system for selective compilation of instrumentation entities into a simulation model of a digital design
US20050157653A1 (en) 2004-01-16 2005-07-21 Native Networks Technologies Ltd. Method and device for charging for uncounted network traffic overhead
US7519865B1 (en) 2004-05-06 2009-04-14 Hewlett-Packard Development Company, L.P. Systems and methods for identifying incomplete transactions
US7565631B1 (en) 2004-07-02 2009-07-21 Northwestern University Method and system for translating software binaries and assembly code onto hardware
US7796627B2 (en) 2004-08-12 2010-09-14 Broadcom Corporation Apparatus and system for coupling and decoupling initiator devices to a network using an arbitrated loop without disrupting the network
US7246332B2 (en) 2005-02-08 2007-07-17 International Business Machines Corporation Methods, systems and media for functional simulation of noise and distortion on an I/O bus
US7237210B2 (en) 2005-02-08 2007-06-26 International Business Machines Corporation Methods, systems and media for managing functional verification of a parameterizable design
US20060190871A1 (en) 2005-02-08 2006-08-24 Likovich Robert B Jr Methods, systems and media for managing functional verification of a parameterizable design
US7284177B2 (en) 2005-03-31 2007-10-16 Verisity, Ltd. Method and apparatus for functionally verifying a physical device under test
US7506281B1 (en) 2005-05-18 2009-03-17 Xilinx, Inc. Two-pass method for implementing a flexible testbench
US7526742B1 (en) 2006-01-31 2009-04-28 Xilinx, Inc. One-pass method for implementing a flexible testbench
US20070217759A1 (en) 2006-03-10 2007-09-20 Microsoft Corporation Reverse Playback of Video Data
US20070264730A1 (en) 2006-03-31 2007-11-15 Tim Frodsham Redundant acknowledgment in loopback entry
US20070277163A1 (en) 2006-05-24 2007-11-29 Syver, Llc Method and tool for automatic verification of software protocols
US20080098366A1 (en) 2006-10-09 2008-04-24 Via Technologies, Inc. Assertion Tester
US20120300649A1 (en) 2007-05-21 2012-11-29 W2Bi, Inc. Mobile device throughput testing
US9606176B2 (en) 2007-09-19 2017-03-28 Altera Corporation Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US20150234008A1 (en) 2007-09-19 2015-08-20 Tabula, Inc. Integrated circuit (ic) with primary and secondary networks and device containing such an ic
US20090144675A1 (en) 2007-11-30 2009-06-04 Christian Haufe Transaction based verification of a system on chip on system level by translating transactions into machine code
US20100031000A1 (en) 2007-12-06 2010-02-04 David Flynn Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8214694B1 (en) 2009-03-12 2012-07-03 Xilinx, Inc. Lightweight probe and data collection within an integrated circuit
US20100306728A1 (en) 2009-04-17 2010-12-02 Raghu Ardeishar Coexistence of Multiple Verification Component types in a Hardware Verification Framework
US20110063093A1 (en) 2009-07-10 2011-03-17 Certicom Corp. System and method for performing serialization of devices
US20110010720A1 (en) 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
US20110145795A1 (en) 2009-12-10 2011-06-16 Amol Khanapurkar System and method for automated performance testing in a dynamic production environment
US20130007330A1 (en) 2010-02-19 2013-01-03 Leonid Ryzhyk Co-design of a testbench and driver of a device
US9322872B2 (en) 2010-06-01 2016-04-26 The United States Of America As Represented By The Secretary Of The Navy Correlated testing system
US20150286470A1 (en) 2010-10-26 2015-10-08 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US8984490B1 (en) 2010-10-26 2015-03-17 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US20120174068A1 (en) 2010-12-30 2012-07-05 Sap Ag Testing Software Code
US20120284432A1 (en) * 2011-01-05 2012-11-08 Alibaba Group Holding Limited Upgrading An Elastic Computing Cloud System
US20120198174A1 (en) 2011-01-31 2012-08-02 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US20120255022A1 (en) 2011-03-30 2012-10-04 Ocepek Steven R Systems and methods for determining vulnerability to session stealing
US20120284446A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Accelerator engine emulation over an interconnect link
US20130028105A1 (en) 2011-07-27 2013-01-31 Earl Chew Wide Field Indexing for Packet Tracking
US8560893B1 (en) 2011-10-21 2013-10-15 Cadence Design Systems, Inc. Systems and methods for automatically generating executable system level-tests from a partially specified scenario
US8832622B1 (en) 2011-11-23 2014-09-09 Marvell International Ltd. Coverage scoreboard
US20130198706A1 (en) 2012-01-31 2013-08-01 Taiwan Semiconductor Manufacturing Co., Ltd. Format conversion from value change dump (vcd) to universal verification methodology (uvm)
US20130318486A1 (en) 2012-05-23 2013-11-28 Lawrence SASAKI Method and system for generating verification environments
US20130080761A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Experiment Manager for Manycore Systems
US20130081005A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Memory Management Parameters Derived from System Modeling
US20150161385A1 (en) 2012-08-10 2015-06-11 Concurix Corporation Memory Management Parameters Derived from System Modeling
US20140068360A1 (en) 2012-08-28 2014-03-06 Kingtiger Technology (Canada) Inc. Systems and methods for testing memory
US20140082242A1 (en) * 2012-09-18 2014-03-20 Apple Inc. Reducing latency in a peripheral component interconnect express link
US20140112339A1 (en) 2012-10-22 2014-04-24 Robert J. Safranek High performance interconnect
US9626321B2 (en) 2012-10-22 2017-04-18 Intel Corporation High performance interconnect
US9135382B1 (en) 2012-11-08 2015-09-15 Atrenta, Inc. Systems, methods, and media for assertion-based verification of devices
US20140195711A1 (en) * 2013-01-04 2014-07-10 American Megatrends, Inc. Pci express channel implementation in intelligent platform management interface stack
US20140244888A1 (en) * 2013-02-26 2014-08-28 Emulex Design And Manufacturing Corp. Using pci-e extended configuration space to send ioctls to a pci-e adapter
US20140282312A1 (en) 2013-03-15 2014-09-18 Mentor Graphics Corporation Hardware simulation controller, system and method for functional verification
US20140289445A1 (en) * 2013-03-22 2014-09-25 Antony Savich Hardware accelerator system and method
US20150301108A1 (en) 2014-04-18 2015-10-22 Breker Verification Systems Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models
US20160092329A1 (en) 2014-09-29 2016-03-31 Freescale Semiconductor Inc. Final Result Checking For System With Pre-Verified Cores
US20160366036A1 (en) 2014-10-09 2016-12-15 Splunk Inc. Control Interface for Dynamic Substitution of Service Monitoring Dashboard Source Data
US20160134653A1 (en) 2014-11-11 2016-05-12 Goldman, Sachs & Co. Synthetic Cyber-Risk Model For Vulnerability Determination
US20160142280A1 (en) 2014-11-14 2016-05-19 XPLIANT, Inc Packet tracking in a verification environment
US20160139202A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method including latency detection
US20160139204A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method including a generic driver and transporter
US20160140286A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method with phase synchronization
US20160140285A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method including a generic monitor and transporter
US20160139205A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method
US9506982B2 (en) 2014-11-14 2016-11-29 Cavium, Inc. Testbench builder, system, device and method including a generic monitor and transporter
US20160140284A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method including a dispatcher
US9547041B2 (en) 2014-11-14 2017-01-17 Cavium, Inc. Testbench builder, system, device and method with phase synchronization
US20160140006A1 (en) 2014-11-14 2016-05-19 Xpliant, Inc. Testbench builder, system, device and method having agent loopback functionality
US9330227B1 (en) 2014-11-14 2016-05-03 Cavium Inc. Testbench builder, system, device and method including a dispatcher
US9506984B1 (en) 2015-07-02 2016-11-29 Intel Corporation Protocol based automated tester stimulus generator

Also Published As

Publication number Publication date
US20160283413A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
US9817067B2 (en) Testbench builder, system, device and method including latency detection
CN107003955B (en) Method, apparatus and system for integrating devices in a root complex
US10289779B2 (en) Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor
EP2158495B1 (en) Integrated circuit with self-test feature for validating functionality of external interfaces
CN114880977B (en) Software and hardware joint simulation system, method, device, equipment and storage medium
US20070005862A1 (en) Communications protocol expander
US20140198790A1 (en) Data link layer analysis with packet trace replay
US8966313B2 (en) Systems and methods for a shared debug pin
US10528688B1 (en) System and method for schematic-driven generation of input/output models
US9002694B2 (en) Verification of design derived from power intent
US20180067162A1 (en) Methods and systems for generating functional test patterns for manufacture test
US10282315B2 (en) Software assisted hardware configuration for software defined network system-on-chip
US9372772B1 (en) Co-verification—of hardware and software, a unified approach in verification
US20150370675A1 (en) Methods, systems, and computer readable media for utilizing abstracted user-defined data to conduct network protocol testing
US10339091B2 (en) Packet data processing method, apparatus, and system
CN107861803A (en) Cpci bus RS422 communications driving method under a kind of XP systems based on interruption
WO2021151314A1 (en) Dns automatic performance test method, apparatus, device, and readable storage medium
US20220263925A1 (en) SYSTEM AND METHOD FOR SYNTHESIS OF CONNECTIVITY TO AN INTERCONNECT IN A MULTI-PROTOCOL SYSTEM-ON-CHIP (SoC)
US9455895B2 (en) Data link layer switch frame forwarding analysis
US20070073529A1 (en) Apparatus and method for composite behavioral modeling for multiple-sourced integrated circuits
CN106452838A (en) USB (Universal Serial Bus) equipment simulation device and method
CN105956250A (en) Graphical interface-based integrated circuit SoC (System on a Chip) design fast connecting method
KR20090092421A (en) Network on chip router by using systemc and its routing method
US11088910B2 (en) Efficient method for managing and adding systems within a solution
US9762574B2 (en) Techniques for providing software support for a hardware component of a computing device

Legal Events

Date Code Title Description
AS Assignment

Owner name: XPLIANT, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SIVA, NIMALAN;THEIVENDRAN, PREMSHANTH;ATREYA, KISHORE BADARI;SIGNING DATES FROM 20150713 TO 20150714;REEL/FRAME:036153/0059

AS Assignment

Owner name: CAVIUM NETWORKS LLC, CALIFORNIA

Free format text: MERGER;ASSIGNOR:XPLIANT, INC.;REEL/FRAME:038039/0328

Effective date: 20150429

Owner name: CAVIUM, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM NETWORKS LLC;REEL/FRAME:038040/0251

Effective date: 20160308

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CAVIUM, INC.;CAVIUM NETWORKS LLC;REEL/FRAME:039715/0449

Effective date: 20160816

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text: SECURITY AGREEMENT;ASSIGNORS:CAVIUM, INC.;CAVIUM NETWORKS LLC;REEL/FRAME:039715/0449

Effective date: 20160816

AS Assignment

Owner name: CAVIUM, INC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

Owner name: CAVIUM NETWORKS LLC, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

Owner name: QLOGIC CORPORATION, CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:046496/0001

Effective date: 20180706

AS Assignment

Owner name: CAVIUM, LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:CAVIUM, INC.;REEL/FRAME:047577/0653

Effective date: 20180924

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM, LLC;REEL/FRAME:051948/0807

Effective date: 20191231

AS Assignment

Owner name: MARVELL ASIA PTE, LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053179/0320

Effective date: 20191231

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4