The technical field of the invention relates to seamlessly simulating different communication system designs under different communication standards using a single simulation system to achieve fast and flexible communication system simulation.
Currently, a simulation system can be used in communication research to explore system performance of a target communication system being designed and developed. The simulation system is typically designed for simulating a specific type of communication system architecture or for communication systems of a specific communication standard.
The simulation engine 905 includes a parameter setting module 903 that sets the configuration parameters into a simulated system program 904 of the simulation engine 905. The simulated system program 904 is a software program and typically includes all possible functional modules of a specific communication system implementation and/or according to a specific communication standard. This means that the simulated system program 904 is a pre-constructed or pre-configured simulation software program adapted to and pre-constructed or pre-configured to a specific type of communication system implementation and/or to a specific communication standard. This makes the simulated system program 904 is “fixed” or “hard-coded” in the simulation engine 905.
The simulation engine 905 performs the simulation operation by running the simulated system program 904. Then, simulation results are collected and sent to a result post-processing program 906 of the simulation engine 905 for post-processing (e.g., displaying the simulation results).
One disadvantage of this prior art simulation system is that the simulated system program is “fixed” or “hard-coded” in the simulation engine. This means that the structures of the functional modules of the simulated communication system are already pre-determined in the simulated system program. That is, what kind of transmitter, channel and receiver to be used are already predetermined in the simulated system program. The implementations of the functional modules within the simulated system program cannot be changed at run-time. Only the values of the system configuration parameters in some of the fixed functional modules can be changed.
In order to simulate different communication systems with different architectures and/or for different communication standards, the user has to manually redesign or reconfigure the simulated system program. This limits the flexibility and scalability of the simulation system. Thus, what is needed is a flexible and scalable communication simulation system that supports simulation of different communication systems with different structures seamlessly and at run-time.
A simulation system for a communication system includes a user interface to receive user definition and system configuration parameters of a simulation configuration file that includes a plurality of data structures representing various functional modules of the simulated communication system. A model library is provided to store different implementation models corresponding to different communication standards for each of the functional modules. A parsing module (1) accesses the model library according to the user definition and system configuration parameters to obtain the appropriate implementation model for each of the functional modules, and (2) generates a simulated system program based on the selected implementation models such that the simulated system program is reconfigurable to different implementations and communication standards. A simulation engine runs the simulated system program to simulate the simulated communication system.
Furthermore, a system for generating a simulated system program for simulating a communication system includes a user interface to receive user definition and system configuration parameters of a simulation configuration file that includes a plurality of data structures representing various functional modules of the simulated communication system. A model library is provided to store different implementation models corresponding to different communication standards for each of the functional modules. A parsing module (1) accesses the model library according to the user definition and system configuration parameters to obtain the appropriate implementation model for each of the functional modules, and (2) generates the simulated system program based on the selected implementation models such that the simulated system program is reconfigurable to different implementations and communication standards.
The foregoing and other features of this invention may be more fully understood from the following description, when read together with the accompanying drawings in which:
The simulation system 100 achieves this by having its simulated system program 105 not fixed or hard-coded to any specific communication system structure or architecture. In addition, the simulated system program 105 is also not fixed to follow any specific communication protocol standard (or simply communication standard). Instead, the simulated system program 105 initially only has an abstract data structure that represents the functional blocks of an abstract and standard communication system without regard to any communication standard. This abstract communication system, however, does not correspond to any specific implementation or architecture of a communication system. Then at run-time, the simulated system program 105 is configured or reconfigured to the actual and specific implementation or architecture of the simulated communication system based on the user input of the configuration data or information of the simulated communication system.
To configure the simulated system program 105 to represent the simulated communication system, the simulation system 100 includes a user interface 101 that receives the configuration information of the simulated communication system. The configuration information includes user definition and system configuration parameters of the simulated communication system. The user definition includes model implementation information of various functional modules of the simulated communication system, as well as the communication standard adopted by the simulated communication system. The system configuration parameters include various parameters of the simulated communication system, such as maximum transmission rate, maximum transmission power, signal-noise-ratio (SNR) of each channel, and various parameters of each of the functional modules of the simulated communication system.
In addition, the simulation system 100 in accordance with one embodiment of the present invention includes a model library 104 that stores all model implementations of each possible functional module of a communication system, as well as specification data relating to each communication standard. Then at run-time, a simulation system parsing module 103 of the simulation system 100 is used to configure or reconfigure the simulated system program 105 by accessing the model library 104 in accordance with a parsing (by the module 103) of a user-defined configuration file generated based on the user definition and system configuration parameters received via the user input 101.
By decoupling the simulation system with the simulated communication system and decoupling communication standard specifications with algorithm model libraries, the communication simulation system 100 supports simulation of different communication systems with different structures seamlessly and switch to different implementations at run-time. This allows the communication simulation system 100 to achieve flexibility, scalability, and run-time controllability.
The communication simulation system 100 also permits (1) specifying what simulation results are to be collected and (2) changing data analysis methods at run-time. Furthermore, the communication simulation system 100 abstracts the modules composed of the simulated communication system into a number of layered configuration data structures. In this case, the user can easily perform software and hardware co-simulation to achieve the capability of test and verification so as to facilitate fast prototyping.
Detailed description of the communication simulation system 100 in accordance with embodiments of the present invention is given below, in conjunction with
As shown in
In addition, the simulation system 100 includes a store (not shown) to store a configuration file 102. The configuration file 102 includes a user-defined configuration file 102A and a default configuration file 102B. The configuration file 102 is generated based on the user input (i.e., user definition and system configuration parameters) via the user input 101 and is used by the parsing module 103 to access the model library 104 in order to generate the simulated system program 105. This makes the simulated system program 105 configurable and reconfigurable according to the structures or architectures of different simulated communication systems. In one embodiment, the user input 101 is a graphic user interface (GUI). Alternatively, the user input 101 can be other known user input apparatus.
The user-defined configuration file 102A is configured based on the user definition and system configuration parameters received from the user input 101. Because there are many parameters necessary to be configured, it is desirable for the user to be able to specify the parameters they need to control and leave all others to the default values. The default configuration file 102B is provided to achieve this. Here, there are various approaches to specify the default parameters. The first approach is shown in
The user-defined configuration file 102A and the default configuration file 102B are combined to form the simulation configuration file 102, which includes all system configuration and performance parameters necessary to determine the structure and implementation of the communication system to be simulated.
As shown in
The data structures of the configuration file 102 are layered. This means the structures are arranged in a layered way. As shown in
The transmitter data structure 302, the channel data structure 303, and the receiver data structure 304 correspond to the simulated transmitter, the simulated channel, and the simulated receiver respectively. For each of the data structures, in the lower levels, such as level 2 and level 3, they can contain lower children data structures corresponding to the components composed of the parent data structure. The data structure can go further down if the simulated communication system so requires. For example, the transmitter data structure 302 can contain data structures corresponding to modulator, encoder, Digital to Analog (D/A) converter, etc. The modulator data structure can further contain even more data structures, such as Local Oscillator, etc. Similarly, the receiver data structure 304 can contain data structures corresponding to demodulator, decoder, Analog to Digital (A/D) converter, etc.
Each data structure includes a specific field ImplementationHandle (not shown), which is used to specify the actual implementation of the corresponding functional module. The switch between different implementations of the same module will be described below with reference to
Referring again to
To specify the field of a data structure which is several layers below the root data structure, i.e. one of the data structures 301-304, an index is used. The index includes the names of all the parent data structures as well as the name of the field itself. For example, in order to specify the field NumberofBitPerSymbol of a modulator of a transmitter, the index Transmitter_Modulator_NumberofBitPerSymbol is used for the configuration of the corresponding field. Then, the parsing module 103 (
Furthermore, for debugging and test purposes, a user may hope to control whether to include a specific module of the communication system to be simulated. The modern communication standards also leave a lot of options for the implementer to choose, for example, there are a lot of option features in 802.11n standards. Therefore, in the development of the simulation framework or prototyping, the user may hope to turn off a specific module temporarily. To support such a requirement, in each of the data structures, a switch filed is provided to specify whether the module corresponding to the data structure will be included. This feature is very useful for exploring the influence of impairments of a hardware module without having to achieve a new implementation of the transmitter or the receiver. For example, during simulation, a researcher may want to see how the modulation impairments, the nonlinearity of amplifier or the phase noise of the mixers will influence the performance of the simulated systems. By turning on and off the switches corresponding to those modules, the algorithm researcher can easily explore how they will influence the performance of system. All these can be done by simply changing the simulation configuration file 102.
After obtaining the simulation configuration file 102 by combining the user-defined and default configuration parameters, the parsing module 103 (see
As described above, the user can turn on and off certain modules by controlling the switch fields in the data structures. However, there are the cases that the structure of a new system can be totally different from the current simulated system. In the case, new implementations of the modules in the transmitter and receiver will be required. The parsing to the simulation configuration file 102 helps to switch different implementations of the same module at run-time seamlessly.
Referring to
Similarly, for other modules composed of the communication system to be simulated, the parsing module 103 can select the specified implementations of these modules by parsing the simulation configuration file 102 and accessing the model library 104 and then generate the final simulated system program 105.
The user input 101 can be implemented in software, hardware, or firmware using any currently available user interface technology. The library 104 can be implemented in software or firmware using currently available database technology. The parsing module 103 can be implemented in software, hardware, or firmware using any currently available parsing technology.
The structure of the simulated system program 105 is shown in
After forming the simulated system program 105, the simulated system program 105 is loaded to the simulation engine 106 for simulation. Here, the simulated system program 105 is not fixed or “hard-coded” within the simulation engine 106 and can be configured by the user to adapt to different implementations of the simulated communication system.
For the convenience of simulation result post-processing, such as the display or analysis of the simulation results, there needs to be a flexible approach for users to select what kind of simulation results to be collected and stored for post-analysis and which post-processing method to be used. The simulation system 100 in accordance with one embodiment of the present invention allows the user to specify a special data structure, namely, result storage and post-processing selection data structure 601, in the simulation configuration file 102. For every simulation, the user can specify in the result storage and post-processing selection data structure 601 what kind of simulation results to collect and for the collected data what kind of post-processing method to be performed. In
As shown in
The capability of being able to use different implementations seamlessly at run-time results in flexibility and this flexibility is very helpful for the software and hardware co-simulation to achieve the capability of test and verification of hardware implementation. Therefore, this flexibility will help to facilitate the fast hardware prototyping.
The software and hardware co-simulation based on the present invention has obvious advantages over traditional approaches: (1) the flexibility of ESG and VSA and the flexibility of the simulation system ensures the flexibility of implementing co-simulation of different systems. For example, the co-simulation system can easily adjust the working RF frequency. Through the change of simulation configuration file 102, the system can be easily tuned to work at different bandwidth, different base-band system structure; (2) the user needs only focus on the software algorithms and does not need to pay much attention on the implementation of RF front-ends, which greatly saves the time and lowers down the cost; and (3) the software and hardware co-simulation system is standard independent. This is due to the standard independence of software simulation framework and the software defined radio structures of the instruments. The user can switch between different standards at run-time as long as those standards are implemented on the simulation system.
In
In addition to the RF transmit module and the RF receive module, other modules composed of the communication system to be simulated, such as the modulator, the encoder, the MIMO detector, etc. can be replaced with corresponding hardware implementations in the same way to achieve the capability of verification. For a specific module to be verified (for example, a modulator), the modules before it can be just simplified to be a module which loads data to the input interfaces of the module to be verified, and the modules after the specific module can be simplified to be a module which collects data from the output interface of the module to be verified. In this way, the user can easily load the test vectors used to test the corresponding hardware function module (for example, the corresponding hardware modulator) to the simulated module (the simulated modulator) and then compare the output data at output interfaces of both the simulated module and the corresponding hardware function module. This approach can help accelerate the test and verification of hardware implementation and thus the hardware prototyping.
As a quick summary, the present invention discloses a flexible communication simulation system and method, which, by decoupling the simulated system program with the simulation engine, enables flexible and scalable simulation of different communication systems on the same simulation framework seamlessly at run-time. Furthermore, due to the advantages of the simulation configuration file architecture and the configuration approach, the communication simulation system of the present invention is able to specify the simulation results to be collected and the post-processing approach at run-time, and can accelerate the test and verification of hardware implementation by hardware and software co-simulation, so as to facilitate the fast hardware prototyping.
The invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.