Simulate bladeRF-wiphy in Modelsim
Follow the first two steps (
Compile libbladeRF, and
Synthesize bladeRF-wiphy) on https://www.nuand.com/bladeRF-wiphy-instructions , however running
./build_bladerf.sh is optional.
To simulate the IEEE 802.11 modem, open up the ModelSim that came with Quartus. Change the current working directory to
If running this on Linux, ensure
vsim can be run, otherwise try to add it by first calling
Launch the Modelsim
vsim simulator by calling
vsim from the command line.
Once vsim has launched compile the sources:
set wlan_path ../../../../../../bladeRF-wiphy/fpga/modelsim
If the previous steps completed successfully, the sources should be compiled and simulation can begin.
GPIF to bladeRF-wiphy, and back simulation
wlan_fx3_gpif_tb is a testbench for simulating the bladeRF-wiphy and the bladeRF GPIF module. The inputs and outputs in wlan_fx3_model essentially correspond to variable length packets transmitted between the FX3 and the FPGA.
To test the receive side of bladeRF-wiphy, place a CSV file containing IQ samples into:
and name the file,
rx-0.csv . A reference gzipped CSV file can be downloaded from https://nuand.com/downloads/rx-0.csv.gz . The rx-0.csv.gz file is gzipped, so it should be gunzip’d by running
gzip -d rx-0.csv.gz after being downloaded. The reference
wave.do can be downloaded from https://nuand.com/downloads/wave.do , it should be placed in the same directory (
rx-0.csv. To put it all together, the commands are:
cd ~/wiphy-build/bladeRF/hdl/fpga/platforms/bladerf-micro/modelsim wget https://nuand.com/downloads/rx-0.csv.gz gzip -d rx-0.csv.gz wget https://nuand.com/downloads/wave.do
To run the
wlan_fx3_gpif_tb testbench, run the following commands in Modelsim:
wlan_sim_entity nuand.wlan_fx3_gpif_tb do wave.do restart -f; run 1ms
Once the simulation finishes, the transmission of 4 frames, and the reception of 1 frame should be seen. The simulation should have a set of groups for signals including “BEGIN RX SUMMARY”, “BEGIN TX SUMMARY”, and “VERBOSE”.
Here are some example screenshots of the simulation:
The top of RX summary (1 frame):
The end of RX summary showing the successful decoding of a frame:
The top of TX summary (modulation 4 frames):
Near the top of the “VERBOSE” section: