Hi Wade, Yes, I have the ctrlport:has_status set to False in the block YAML... I ended up having to comment out that test sequence to move onto the part that sends samples into and out of the block; now I have an error that states
*Fatal: Timeout: Test "Test passing through samples" time limit exceeded* so I must be doing something that it isn't liking :) I've attached my updated .v and .sv files that I modified based on your guidance in your first response, as well as the updated xsim.log. Please let me know if there are any additional things I may need to change such as sizes and what not - thanks! -Jeff On Mon, May 9, 2022 at 3:12 PM Wade Fife <wade.f...@ettus.com> wrote: > Hi Jeffrey, > > Very curious that you're getting that CTRL_STS_OKAY error, since it looks > like you're not using the status. I assume ctrlport:has_status is set to > False in your block's YAML? In that case the status should always be OK. > > 1) For different input/output packet sizes, you need to modify the context > to set the payload length of the outgoing packet. That's the block of code > starting on line 283 in the rfnoc_block_conv.v file you sent. There's an > example in rfnoc_block_logpower, in which the output packet length is half > the length of input packets. In your case you'll need to set it to 3/2 > instead of 1/2. See here: > > > https://github.com/EttusResearch/uhd/blob/master/fpga/usrp3/lib/rfnoc/blocks/rfnoc_block_logpwr/rfnoc_block_logpwr.v#L202 > <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_EttusResearch_uhd_blob_master_fpga_usrp3_lib_rfnoc_blocks_rfnoc-5Fblock-5Flogpwr_rfnoc-5Fblock-5Flogpwr.v-23L202&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=GXbgyQxDz4yiy7ZI94I9ia-1XvF2rdmrbxprVfQojmcljlWVOVrjE1Z7g7qsBL_a&s=WkFBbmpL8IpvF2oHp-4Vfhy73qA49jSJD2tHoTQ0anQ&e=> > > 2) The testbenches typically have an ITEM_W constant that indicates the > size of the data type you want to work with. The ITEM_W is normally set to > the sample size (e.g., 32 for sc16 samples). Since you want to work with > bytes, you could change that to 8 then create an item_t array and send it > as a single packet using blk_ctrl.send_items(). Then you can call > blk_ctrl.recv_items() to get the data output packet, and inspect the items > array that is returned. Take a look at PkgRfnocBlockCtrlBfm to see what > other send/recv methods are available. Here's a quick example assuming the > item size is 8-bit: > > item_t sent[$], received[$]; > sent = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // Whatever values you want for > the input packet, one byte per element > blk_ctrl.send_items(0, sent); > > blk_ctrl.recv_items(0, received); > foreach(received[i]) begin > // Compare the expected value to the byte in received[i] and see if it > matches > end > > Wade > > On Mon, May 9, 2022 at 1:30 PM Jeffrey Cuenco via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> Hi all, >> >> Long time no see! I am currently on a final stretches of completing a >> masters project for my wireless embedded systems program that involves a >> USRP X310 with RFNoC 4.0 and GNURadio that implements a Hierarchical >> Modulation design using nested 4QAM / QPSK (final constellation "appears" >> like 16QAM but has embedded high priority and low priority layers that can >> adapt based on SNR). >> >> I am currently attempting to integrate the Xilinx Convolutional Encoder >> v9.0 IP block into the template rfnoc_block_conv.v design that was created >> using rfnocmodtool and modeled after the Ettus FFT example. With a bit of >> work I was able to get the .xci file loaded by Vivado when the make target >> is executed for the testbench, and the testbench appears to build without >> much modification. >> >> When executing 'make rfnoc_block_conv_tb' it appears to fully execute >> the build process to the end, but I receive a fatal "Did not receive >> CTRL_STS_OKAY status" message in the process which I attribute to either >> something not being configured in the testbench file or something not being >> configured right in my verilog module file. >> >> I've attempted to summarize where I'm stuck and need help on in the below >> three summary points / questions: >> 1) I have configured the convolutional encoder with rate 1/2 and >> punctured (effective rate 2/3), which I assume will require me modifying >> the "axi_wrapper" so that the output to input ratios are set properly - are >> there additional examples that I can follow for this? >> >> I've seen the axi_wrapper migration note but as I'm still a novice at >> Verilog and System Verilog additional examples would be helpful. :) >> >> >> 2) I would like to modify my testbench so that I send 10 bytes (80 bits) >> of data, and read out the 15 bytes (120 bits) that get spit out and verify >> that the encoded bytes coming out of the core match ground truth data I >> would generate using MATLAB. >> >> Do we have any additional testbench examples or additional documentation >> that show sending 1 or more bytes of data through an IP core? The IP core's >> *s_axis_data_tdata* and *m_axis_data_tdata *are 8-bit while most of the >> examples show sending 32 bits. Aside from setting the assignments to [7:0] >> are there any other adjustments that need to be made in any of the signal >> declarations and/or block definition wires earlier in the file? >> >> I've provided the IP core documentation for reference just in case: >> https://docs.xilinx.com/v/u/en-US/pg026_convolution >> <https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.xilinx.com_v_u_en-2DUS_pg026-5Fconvolution&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=GXbgyQxDz4yiy7ZI94I9ia-1XvF2rdmrbxprVfQojmcljlWVOVrjE1Z7g7qsBL_a&s=VpTL0Eev0xGrPxywg6lGumMok1Lx8kj5t4uFefeMWNA&e=> >> >> I've also included the module and testbench files as well as the xsim log. >> >> Thanks in advance! >> -Jeff >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-le...@lists.ettus.com >> >
#----------------------------------------------------------- # Vivado v2019.1 (64-bit) # SW Build 2552052 on Fri May 24 14:47:09 MDT 2019 # IP Build 2548770 on Fri May 24 18:01:18 MDT 2019 # Start of session at: Wed May 11 02:15:36 2022 # Process ID: 425419 # Current directory: /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv # Command line: vivado -mode batch -source /home/wes/capstone/usrp/uhd/fpga/usrp3/tools/scripts/viv_sim_project.tcl -log xsim.log -nojournal # Log file: /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim.log # Journal file: #----------------------------------------------------------- source /home/wes/capstone/usrp/uhd/fpga/usrp3/tools/scripts/viv_sim_project.tcl # set simulator $::env(VIV_SIMULATOR) # set design_srcs $::env(VIV_DESIGN_SRCS) # set sim_srcs $::env(VIV_SIM_SRCS) # set inc_srcs $::env(VIV_INC_SRCS) # set sim_top $::env(VIV_SIM_TOP) # set part_name $::env(VIV_PART_NAME) # set sim_runtime $::env(VIV_SIM_RUNTIME) # set sim_fast $::env(VIV_SIM_FAST) # set vivado_mode $::env(VIV_MODE) # set verilog_defs $::env(VIV_VERILOG_DEFS) # set working_dir [pwd] # set sim_fileset "sim_1" # set project_name "[string tolower $simulator]_proj" # if [info exists ::env(VIV_SIM_COMPLIBDIR) ] { # set sim_complibdir $::env(VIV_SIM_COMPLIBDIR) # if [expr [file isdirectory $sim_complibdir] == 0] { # set sim_complibdir "" # } # } else { # set sim_complibdir "" # } # if [expr ([string equal $simulator "XSim"] == 0) && ([string length $sim_complibdir] == 0)] { # puts "BUILDER: \[ERROR\]: Could not resolve the location for the compiled simulation libraries." # puts " Please build libraries for chosen simulator and set the env or" # puts " makefile variable SIM_COMPLIBDIR to point to the location." # exit 1 # } # puts "BUILDER: Creating Vivado simulation project part $part_name" BUILDER: Creating Vivado simulation project part xc7k410tffg900-2 # create_project -part $part_name -force $project_name/$project_name # foreach src_file $design_srcs { # if [expr [file isdirectory $src_file] == 1] { # puts "BUILDER: Expanding Directory : $src_file" # set dir_contents [glob $src_file/*.*] # append design_srcs " " $dir_contents # } # } # foreach src_file $design_srcs { # set src_ext [file extension $src_file ] # if [expr [lsearch {.vhd .vhdl} $src_ext] >= 0] { # puts "BUILDER: Adding VHDL : $src_file" # read_vhdl $src_file # } elseif [expr [lsearch {.v .vh} $src_ext] >= 0] { # puts "BUILDER: Adding Verilog : $src_file" # read_verilog $src_file # } elseif [expr [lsearch {.sv .svh} $src_ext] >= 0] { # puts "BUILDER: Adding SVerilog: $src_file" # read_verilog -sv $src_file # } elseif [expr [lsearch {.xdc} $src_ext] >= 0] { # puts "BUILDER: Adding XDC : $src_file" # read_xdc $src_file # } elseif [expr [lsearch {.xci} $src_ext] >= 0] { # puts "BUILDER: Adding IP : $src_file" # read_ip $src_file # } elseif [expr [lsearch {.ngc .edif} $src_ext] >= 0] { # puts "BUILDER: Adding Netlist : $src_file" # read_edif $src_file # } elseif [expr [lsearch {.dat} $src_ext] >= 0] { # puts "BUILDER: Adding Data File : $src_file" # add_files -fileset $sim_fileset -norecurse $src_file # } elseif [expr [lsearch {.bd} $src_ext] >= 0] { # puts "BUILDER: Adding Block Diagram: $src_file" # add_files -norecurse $src_file # } elseif [expr [lsearch {.bxml} $src_ext] >= 0] { # puts "BUILDER: Adding Block Diagram XML: $src_file" # add_files -norecurse $src_file # } else { # puts "BUILDER: \[WARNING\] File ignored!!!: $src_file" # } # } BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_demux4.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_demux8.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_demux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo32_to_fifo64.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo64_to_fifo32.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo32_to_fifo16.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo16_to_fifo32.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_bram.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_cascade.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_flop2.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_flop.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_short.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_filter_mux4.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_loopback.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_mux4.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_mux8.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_mux_select.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_mux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_packet_gate.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/fifo64_to_axi4lite.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/shortfifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axis_fifo_monitor.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axis_strm_monitor.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/sim/fifo/axi_fifo_2clk_sim.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_chdr_header_trigger.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_chdr_test_pattern.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_defs.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_dma_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_dma_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_embed_tlast.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_extract_tlast.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_fast_extract_tlast.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_embed_tlast_tkeep.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_extract_tlast_tkeep.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_fast_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_to_strobed.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_data_swap.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_dummy.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/strobed_to_axi.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_add_preamble.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axi_strip_preamble.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/crc_xnor.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_packet_flush.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_shift_register.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_upsizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_downsizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_width_conv.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_split.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_packetize.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/ad5662_auto_spi.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/arb_qualify_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_crossbar.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_crossbar_regport.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_fifo_header.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_forwarding_cam.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_setting_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_slave_mux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axi_test_vfifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/bin2gray.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/binary_encoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/db_control.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/fe_control.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/filter_bad_sid.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/gearbox_2x1.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/gpio_atr_io.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/gpio_atr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/gray2bin.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/por_gen.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/priority_encoder_one_hot.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/priority_encoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/ram_2port_impl.vh BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/ram_2port.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/reset_sync.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/s7_icap_wb.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/serial_to_settings.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/setting_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/settings_bus_mux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/settings_bus_timed_2clk.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/simple_i2c_core.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/simple_spi_core.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/simple_spi_core_64bit.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/synchronizer_impl.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/synchronizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/pulse_synchronizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/user_settings.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axil_regport_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axil_to_ni_regport.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/regport_resp_mux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/regport_to_xbar_settingsbus.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/regport_to_settingsbus.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/pulse_stretch.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/pulse_stretch_min.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/mdio_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/cam_priority_encoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/cam_bram.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/cam_srl.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/cam.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/kv_map.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/map/axis_muxed_kv_map.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/axil_ctrlport_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/handshake.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/ctrlport_to_regport.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/glitch_free_mux.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/timing/time_compare.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/timing/timekeeper_legacy.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/timing/pps_generator.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/timing/pps_synchronizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/timing/pulse_generator.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/chdr_chunker.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/chdr_dechunker.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/cvita_dest_lookup.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/ip_hdr_checksum.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/arm_deframer.v BUILDER: Adding VHDL : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/packet_proc/arp_responder/arp_responder.vhd BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/acc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2_and_clip_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2_and_clip.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2_and_round_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2_and_round.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add2.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/add_then_mac.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cic_decim.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cic_dec_shifter.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cic_interp.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cic_int_shifter.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cic_strober.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/clip_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/clip.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cordic_stage.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/cordic_z24.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/ddc_chain.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/duc_chain.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/hb47_int.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/hb_dec.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/hb_interp.v BUILDER: [WARNING] File ignored!!!: /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/Makefile.srcs BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/mult_add_clip.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/round_reg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/round_sd.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/round.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/rx_dcoffset.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/rx_frontend.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/sign_extend.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/small_hb_dec.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/small_hb_int.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/srl.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/tx_frontend.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/dsp/variable_delay_line.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/chdr_fifo_large.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/noc_shell_regs.vh BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_bit_reduce.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/null_source.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/split_stream.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/split_stream_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/conj.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/delay_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/delay_type2.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/delay_type3.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/delay_type4.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/complex_to_magsq.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/phase_accum.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/complex_invert.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/periodic_framer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/moving_sum.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/counter.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/ram_to_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/const.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/const_sreg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cmul.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cadd.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/keep_one_in_n.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/vector_iir.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/addsub.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_pipe.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/multiply.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/mult.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/mult_add.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/mult_rc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/mult_add_rc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fft_shift.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_pipe_join.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_pipe_mac.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_round_and_clip_complex.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_round_complex.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_clip_complex.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_join.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_sync.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/split_complex.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_round_and_clip.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/join_complex.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_round.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_clip.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_clip_unsigned.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_serializer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_deserializer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_packer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/complex_to_mag_approx.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/file_source.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/delay.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/fifo_srl.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/rng.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_avg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_binmap.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_core.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_eoseq.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_histo_mem.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_line_mem.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_logpwr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_maxhold.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_packetizer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_rise_decay.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/f15_wf_agg.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fosphor/axi_logpwr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cvita_hdr_parser.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cvita_hdr_encoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cvita_hdr_decoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cvita_hdr_modify.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_async_stream.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_rate_change.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_tag_time.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_drop_partial_packet.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/ddc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/duc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cic_decimate.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/cic_interpolate.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/sine_tone.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_fir_filter.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/fir_filter_slice.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/axi_fir_filter_dec.v BUILDER: Adding VHDL : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/addsub.vhd BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/dds_freq_tune.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/dds_freq_tune_duc.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/dds_timed.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/dds_wrapper.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/datapath_gatekeeper.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_ctrl_endpoint.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_ctrl_master.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_ctrl_slave.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_compute_tkeep.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_to_chdr_data.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_to_axis_pyld_ctxt.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_to_axis_data.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_pyld_ctxt_to_chdr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_data_to_chdr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_ingress_fifo.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_mgmt_pkt_handler.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_data_swapper.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_stream_endpoint.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_stream_input.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_stream_output.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_to_axis_ctrl.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/ctrlport_endpoint.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/backend_iface.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/rfnoc_core_kernel.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/chdr_trim_payload.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/chdr_pad_packet.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/chdr_resize.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/chdr_convert_up.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/chdr_convert_down.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/context_handler_sync.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/context_builder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/context_parser.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_timer.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_combiner.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_decoder.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_decoder_param.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_splitter.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_resp_combine.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_clk_cross.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_reg_rw.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_reg_ro.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_to_settings_bus.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/noc_shell_generic_ctrlport_pyld_chdr.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/timekeeper.v BUILDER: Adding Verilog : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/utils/ctrlport_terminator.v BUILDER: Adding Verilog : /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v BUILDER: Adding Verilog : /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/noc_shell_conv.v BUILDER: Adding IP : /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/build-ip/xc7k410tffg900-2/axi_conv/axi_conv.xci INFO: [IP_Flow 19-234] Refreshing IP repositories INFO: [IP_Flow 19-1704] No user IP repositories specified INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/tools/Xilinx/Vivado/2019.1/data/ip'. # foreach sim_src $sim_srcs { # puts "BUILDER: Adding Sim Src : $sim_src" # add_files -fileset $sim_fileset -norecurse $sim_src # } BUILDER: Adding Sim Src : /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv_tb.sv # foreach inc_src $inc_srcs { # puts "BUILDER: Adding Inc Src : $inc_src" # add_files -fileset $sim_fileset -norecurse $inc_src # } BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/general/sim_clks_rsts.vh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/general/sim_exec_report.vh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/general/sim_math.vh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/general/sim_file_io.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/axi/sim_axi4_lib.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/axi/sim_axis_lib.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/axi/sim_cvita_lib.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/control/sim_set_rb_lib.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi4lite_sv/PkgAxiLite.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi4lite_sv/AxiLiteIf.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi4s_sv/AxiStreamIf.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgTestExec.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/test_exec.svh BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/sim_clock_gen.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiStreamBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiLiteBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgEthernet.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrData.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrUtils.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxisCtrlBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocItemUtils.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgCtrlIfaceBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrIfaceBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/packages/PkgMath.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/packages/PkgComplex.sv BUILDER: Adding Inc Src : /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/packages/PkgRandom.sv # set_property top $sim_top [get_filesets $sim_fileset] # set_property default_lib xil_defaultlib [current_project] # update_compile_order -fileset sim_1 -quiet # set_property target_simulator $simulator [current_project] # if [expr [string equal $simulator "XSim"] == 1] { # append verilog_defs " WORKING_DIR=\"$working_dir\"" # } else { # append verilog_defs " WORKING_DIR=$working_dir" # } # set_property verilog_define $verilog_defs [get_filesets $sim_fileset] # set_property xsim.simulate.runtime "${sim_runtime}us" -objects [get_filesets $sim_fileset] # set_property xsim.elaborate.debug_level "all" -objects [get_filesets $sim_fileset] # set_property xsim.elaborate.unifast $sim_fast -objects [get_filesets $sim_fileset] # set_property xsim.elaborate.xelab.more_options -value {-timescale 1ns/1ns} -objects [get_filesets $sim_fileset] # if [expr [string equal $simulator "Modelsim"] == 1] { # set sim_64bit $::env(VIV_SIM_64BIT) # # set_property compxlib.modelsim_compiled_library_dir $sim_complibdir [current_project] # # Does not work yet (as of Vivado 2015.2), but will be useful for 32-bit support # # See: http://www.xilinx.com/support/answers/62210.html # set_property modelsim.64bit $sim_64bit -objects [get_filesets $sim_fileset] # set_property modelsim.simulate.runtime "${sim_runtime}ns" -objects [get_filesets $sim_fileset] # set_property modelsim.elaborate.acc "true" -objects [get_filesets $sim_fileset] # set_property modelsim.simulate.log_all_signals "true" -objects [get_filesets $sim_fileset] # set_property modelsim.simulate.vsim.more_options -value "-c" -objects [get_filesets $sim_fileset] # set_property modelsim.elaborate.unifast $sim_fast -objects [get_filesets $sim_fileset] # if [info exists ::env(VIV_SIM_USER_DO) ] { # set_property modelsim.simulate.custom_udo -value "$::env(VIV_SIM_USER_DO)" -objects [get_filesets $sim_fileset] # } # } # launch_simulation INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'XSim' simulator... INFO: [Vivado 12-5682] Launching behavioral simulation in '/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim' INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs INFO: [SIM-utils-51] Simulation object is 'sim_1' INFO: [USF-XSim-7] Finding pre-compiled libraries... INFO: [USF-XSim-11] File '/tools/Xilinx/Vivado/2019.1/data/xsim/xsim.ini' copied to run dir:'/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim' INFO: [SIM-utils-54] Inspecting design source files for 'rfnoc_block_conv_tb' in fileset 'sim_1'... INFO: [USF-XSim-97] Finding global include files... INFO: [USF-XSim-98] Fetching design files from 'sim_1'... INFO: [USF-XSim-2] XSim::Compile design INFO: [USF-XSim-61] Executing 'COMPILE and ANALYZE' step in '/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim' xvlog --incr --relax -prj rfnoc_block_conv_tb_vlog.prj INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_demux.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_demux INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/sim/fifo/axi_fifo_2clk_sim.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo_2clk INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_bram.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo_bram INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_flop.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo_flop INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_flop2.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo_flop2 INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_fifo_short.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_fifo_short INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_mux.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_mux INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/fifo/axi_packet_gate.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axi_packet_gate INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_ctrl_master.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_ctrl_master INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_ctrl_slave.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_ctrl_slave INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_downsizer.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_downsizer INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_packet_flush.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_packet_flush INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/axis_pyld_ctxt_to_chdr.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_pyld_ctxt_to_chdr INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_upsizer.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_upsizer INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi/axis_width_conv.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module axis_width_conv INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/backend_iface.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module backend_iface INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/bin2gray.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module bin2gray INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_compute_tkeep.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module chdr_compute_tkeep INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/chdr_to_axis_pyld_ctxt.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module chdr_to_axis_pyld_ctxt INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/ctrlport_endpoint.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module ctrlport_endpoint INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/gray2bin.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module gray2bin INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/noc_shell_conv.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module noc_shell_conv INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/pulse_stretch_min.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module pulse_stretch_min INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/pulse_synchronizer.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module pulse_synchronizer INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/ram_2port.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module ram_2port_impl_auto INFO: [VRFC 10-311] analyzing module ram_2port_impl_reg INFO: [VRFC 10-311] analyzing module ram_2port_impl_lutram INFO: [VRFC 10-311] analyzing module ram_2port_impl_bram INFO: [VRFC 10-311] analyzing module ram_2port_impl_uram INFO: [VRFC 10-311] analyzing module ram_2port INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module rfnoc_block_conv INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/synchronizer.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module synchronizer INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/control/synchronizer_impl.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module synchronizer_impl INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/axi4s_sv/AxiStreamIf.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiStreamBfm.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrData.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrUtils.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxisCtrlBfm.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrBfm.sv" into library xil_defaultlib WARNING: [VRFC 10-674] expression with variable or undeterminable width as argument to $bits [/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrBfm.sv:342] WARNING: [VRFC 10-674] expression with variable or undeterminable width as argument to $bits [/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrBfm.sv:379] INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgChdrIfaceBfm.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgCtrlIfaceBfm.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocItemUtils.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgTestExec.sv" into library xil_defaultlib INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/sim_clock_gen.sv" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module sim_clock_gen INFO: [VRFC 10-2263] Analyzing SystemVerilog file "/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv_tb.sv" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module rfnoc_block_conv_tb INFO: [VRFC 10-2263] Analyzing Verilog file "/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim/glbl.v" into library xil_defaultlib INFO: [VRFC 10-311] analyzing module glbl xvhdl --incr --relax -prj rfnoc_block_conv_tb_vhdl.prj INFO: [VRFC 10-163] Analyzing VHDL file "/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/build-ip/xc7k410tffg900-2/axi_conv/sim/axi_conv.vhd" into library xil_defaultlib INFO: [VRFC 10-3107] analyzing entity 'axi_conv' run_program: Time (s): cpu = 00:00:05 ; elapsed = 00:00:06 . Memory (MB): peak = 1425.211 ; gain = 0.000 ; free physical = 2796 ; free virtual = 6710 INFO: [USF-XSim-69] 'compile' step finished in '6' seconds INFO: [USF-XSim-3] XSim::Elaborate design INFO: [USF-XSim-61] Executing 'ELABORATE' step in '/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim' xelab -wto d34fd6e25d494906a5b752b96fd37d28 --incr --debug all --relax --mt 8 -d UHD_FPGA_DIR=/home/wes/capstone/usrp/uhd/fpga/usrp3/top/../.. -d WORKING_DIR=/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv -L xbip_utils_v3_0_10 -L axi_utils_v2_0_6 -L c_reg_fd_v12_0_6 -L c_gate_bit_v12_0_6 -L c_compare_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_counter_v3_0_6 -L c_counter_binary_v12_0_13 -L c_mux_bit_v12_0_6 -L c_mux_bus_v12_0_6 -L c_shift_ram_v12_0_13 -L convolution_v9_0_14 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot rfnoc_block_conv_tb_behav xil_defaultlib.rfnoc_block_conv_tb xil_defaultlib.glbl -log elaborate.log -timescale 1ns/1ns Vivado Simulator 2019.1 Copyright 1986-1999, 2001-2019 Xilinx, Inc. All Rights Reserved. Running: /tools/Xilinx/Vivado/2019.1/bin/unwrapped/lnx64.o/xelab -wto d34fd6e25d494906a5b752b96fd37d28 --incr --debug all --relax --mt 8 -d UHD_FPGA_DIR=/home/wes/capstone/usrp/uhd/fpga/usrp3/top/../.. -d WORKING_DIR=/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv -L xbip_utils_v3_0_10 -L axi_utils_v2_0_6 -L c_reg_fd_v12_0_6 -L c_gate_bit_v12_0_6 -L c_compare_v12_0_6 -L xbip_dsp48_wrapper_v3_0_4 -L xbip_pipe_v3_0_6 -L xbip_dsp48_addsub_v3_0_6 -L xbip_addsub_v3_0_6 -L c_addsub_v12_0_13 -L xbip_counter_v3_0_6 -L c_counter_binary_v12_0_13 -L c_mux_bit_v12_0_6 -L c_mux_bus_v12_0_6 -L c_shift_ram_v12_0_13 -L convolution_v9_0_14 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm --snapshot rfnoc_block_conv_tb_behav xil_defaultlib.rfnoc_block_conv_tb xil_defaultlib.glbl -log elaborate.log -timescale 1ns/1ns Using 8 slave threads. Starting static elaboration WARNING: [VRFC 10-3091] actual bit length 32 differs from formal bit length 8 for port 's_rfnoc_ctrl_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv_tb.sv:150] WARNING: [VRFC 10-3091] actual bit length 32 differs from formal bit length 8 for port 'm_rfnoc_ctrl_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv_tb.sv:154] WARNING: [VRFC 10-3091] actual bit length 8 differs from formal bit length 32 for port 's_rfnoc_ctrl_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v:153] WARNING: [VRFC 10-3091] actual bit length 8 differs from formal bit length 32 for port 'm_rfnoc_ctrl_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v:158] WARNING: [VRFC 10-3091] actual bit length 8 differs from formal bit length 32 for port 'm_in_payload_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v:182] WARNING: [VRFC 10-3091] actual bit length 8 differs from formal bit length 32 for port 's_out_payload_tdata' [/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/rfnoc_block_conv.v:194] WARNING: [VRFC 10-696] first argument of $fatal is invalid, expecting 0, 1 or 2 [/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiStreamBfm.sv:245] Completed static elaboration INFO: [XSIM 43-4329] Assuming default value 1 for the first arguement of $fatal at Line 245, File /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiStreamBfm.sv INFO: [XSIM 43-4329] Assuming default value 1 for the first arguement of $fatal at Line 245, File /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgAxiStreamBfm.sv Starting simulation data flow analysis WARNING: [XSIM 43-4328] File: /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv Line: 183 : Sensitivity on input argument "port_num" of task "connect_master_data_port" may never get triggered. WARNING: [XSIM 43-3980] File "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv" Line 183 : The SystemVerilog feature ": Sensitivity on input argument of Class Member Task" is not supported yet for simulation. WARNING: [XSIM 43-4328] File: /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv Line: 199 : Sensitivity on input argument "port_num" of task "connect_slave_data_port" may never get triggered. WARNING: [XSIM 43-3980] File "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgRfnocBlockCtrlBfm.sv" Line 199 : The SystemVerilog feature ": Sensitivity on input argument of Class Member Task" is not supported yet for simulation. Completed simulation data flow analysis Time Resolution for simulation is 1ps Compiling package std.standard Compiling package std.textio Compiling package ieee.std_logic_1164 Compiling package ieee.numeric_std Compiling package xbip_utils_v3_0_10.xbip_utils_v3_0_10_pkg Compiling package convolution_v9_0_14.conv_ul_utils Compiling package convolution_v9_0_14.conv_pkg Compiling package convolution_v9_0_14.convolution_v9_0_14_viv_comp Compiling package axi_utils_v2_0_6.axi_utils_v2_0_6_pkg Compiling package ieee.math_real Compiling package axi_utils_v2_0_6.global_util_pkg Compiling package axi_utils_v2_0_6.axi_utils_comps Compiling package c_mux_bus_v12_0_6.c_mux_bus_v12_0_6_viv_comp Compiling package c_mux_bit_v12_0_6.c_mux_bit_v12_0_6_viv_comp Compiling package unisim.vcomponents Compiling package c_mux_bit_v12_0_6.c_mux_bit_v12_0_6_pkg Compiling package c_reg_fd_v12_0_6.c_reg_fd_v12_0_6_viv_comp Compiling package c_counter_binary_v12_0_13.c_counter_binary_v12_0_13_viv_co... Compiling package xbip_counter_v3_0_6.xbip_counter_v3_0_6_viv_comp Compiling package ieee.std_logic_arith Compiling package ieee.std_logic_unsigned Compiling package xbip_counter_v3_0_6.xbip_counter_v3_0_6_pkg Compiling package c_counter_binary_v12_0_13.c_counter_binary_v12_0_13_pkg Compiling package c_addsub_v12_0_13.c_addsub_v12_0_13_pkg_legacy Compiling package c_addsub_v12_0_13.c_addsub_v12_0_13_pkg Compiling package c_compare_v12_0_6.c_compare_v12_0_6_viv_comp Compiling package c_compare_v12_0_6.pkg_compare_v12_0 Compiling package c_gate_bit_v12_0_6.c_gate_bit_v12_0_6_viv_comp Compiling package xil_defaultlib.PkgRfnocBlockCtrlBfm Compiling package xil_defaultlib.PkgChdrUtils Compiling package xil_defaultlib.PkgChdrData Compiling package xil_defaultlib.PkgChdrBfm Compiling package xil_defaultlib.PkgAxiStreamBfm Compiling package std.std Compiling package xil_defaultlib.PkgCtrlIfaceBfm Compiling package xil_defaultlib.PkgAxisCtrlBfm Compiling package xil_defaultlib.PkgChdrIfaceBfm Compiling package xil_defaultlib.PkgTestExec Compiling package xil_defaultlib.PkgRfnocItemUtils Compiling package xil_defaultlib.$unit_AxiStreamIf_sv Compiling module xil_defaultlib.RfnocBackendIf Compiling module xil_defaultlib.AxiStreamIf(DATA_WIDTH=32) Compiling module xil_defaultlib.AxiStreamIf_default Compiling module xil_defaultlib.sim_clock_gen(PERIOD=5.0) Compiling module xil_defaultlib.sim_clock_gen(PERIOD=25.0) Compiling module xil_defaultlib.synchronizer_impl(WIDTH=33,INITI... Compiling module xil_defaultlib.synchronizer(WIDTH=33,INITIAL_VA... Compiling module xil_defaultlib.synchronizer_impl_default Compiling module xil_defaultlib.synchronizer_default Compiling module xil_defaultlib.pulse_synchronizer(MODE="POSEDGE... Compiling module xil_defaultlib.pulse_stretch_min(LENGTH=32) Compiling module xil_defaultlib.synchronizer_impl(WIDTH=2,INITIA... Compiling module xil_defaultlib.synchronizer(WIDTH=2,INITIAL_VAL... Compiling module xil_defaultlib.backend_iface(NOC_ID=32'b0100110... Compiling module xil_defaultlib.synchronizer_impl(INITIAL_VAL=1'... Compiling module xil_defaultlib.synchronizer(INITIAL_VAL=1'b1) Compiling module xil_defaultlib.synchronizer_impl(WIDTH=5) Compiling module xil_defaultlib.synchronizer(WIDTH=5) Compiling module xil_defaultlib.bin2gray(WIDTH=5) Compiling module xil_defaultlib.gray2bin(WIDTH=5) Compiling module xil_defaultlib.axi_fifo_2clk(SIZE=1,WIDTH=33,PI... Compiling module xil_defaultlib.axi_fifo_2clk(SIZE=1,WIDTH=33,PI... Compiling module unisims_ver.SRLC32E_default Compiling module xil_defaultlib.axi_fifo_short(WIDTH=33) Compiling module xil_defaultlib.axi_fifo(WIDTH=33) Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=67) Compiling module xil_defaultlib.axis_upsizer(RATIO=2) Compiling module xil_defaultlib.axis_downsizer(OUT_DATA_W=64,OUT... Compiling module xil_defaultlib.axis_width_conv(WORD_W=32,IN_WOR... Compiling module xil_defaultlib.ram_2port_impl_lutram(DWIDTH=67,... Compiling module xil_defaultlib.ram_2port(DWIDTH=67,AWIDTH=4,RW_... Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=4) Compiling module xil_defaultlib.axi_fifo(WIDTH=4,SIZE=1) Compiling module xil_defaultlib.axi_packet_gate(WIDTH=66,SIZE=4) Compiling module xil_defaultlib.axis_upsizer(IN_DATA_W=64,IN_USE... Compiling module xil_defaultlib.axis_downsizer(RATIO=2) Compiling module xil_defaultlib.axis_width_conv(WORD_W=32,IN_WOR... Compiling module xil_defaultlib.axis_ctrl_slave Compiling module xil_defaultlib.ctrlport_endpoint(THIS_PORTID=10... Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=65) Compiling module xil_defaultlib.chdr_compute_tkeep(CHDR_W=64) Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=69) Compiling module xil_defaultlib.axi_fifo(WIDTH=69,SIZE=1) Compiling module xil_defaultlib.axi_fifo(WIDTH=67,SIZE=1) Compiling module xil_defaultlib.axis_width_conv(WORD_W=32,IN_WOR... Compiling module xil_defaultlib.synchronizer_impl(WIDTH=4,INITIA... Compiling module xil_defaultlib.synchronizer(WIDTH=4,INITIAL_VAL... Compiling module xil_defaultlib.axi_fifo_2clk(SIZE=1,WIDTH=33) Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=34) Compiling module xil_defaultlib.axis_packet_flush(WIDTH=33,PIPEL... Compiling module xil_defaultlib.axis_packet_flush(WIDTH=68,PIPEL... Compiling module xil_defaultlib.chdr_to_axis_pyld_ctxt(CHDR_W=64... Compiling module xil_defaultlib.axis_width_conv(WORD_W=32,IN_WOR... Compiling module xil_defaultlib.axi_fifo(WIDTH=65,SIZE=1) Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=66) Compiling module xil_defaultlib.axis_packet_flush(WIDTH=65,PIPEL... Compiling module xil_defaultlib.ram_2port_impl_auto(DWIDTH=65,AW... Compiling module xil_defaultlib.ram_2port(DWIDTH=65,AWIDTH=6'b01... Compiling module xil_defaultlib.axi_fifo_flop2(WIDTH=6'b01101) Compiling module xil_defaultlib.axi_fifo(WIDTH=6'b01101,SIZE=32'... Compiling module xil_defaultlib.axi_fifo(WIDTH=6'b01101,SIZE=1) Compiling module xil_defaultlib.axi_packet_gate(SIZE=6'b01101) Compiling module xil_defaultlib.axis_pyld_ctxt_to_chdr(CHDR_W=64... Compiling module xil_defaultlib.noc_shell_conv(THIS_PORTID=10'b0... Compiling architecture xilinx of entity axi_utils_v2_0_6.glb_srl_fifo [\glb_srl_fifo(width=2,has_uvprot...] Compiling architecture xilinx of entity axi_utils_v2_0_6.glb_ifx_master [\glb_ifx_master(width=2,afull_th...] Compiling architecture synth of entity convolution_v9_0_14.conv_reg [\conv_reg(c_width=2,c_has_ce=1,c...] Compiling architecture struct of entity c_compare_v12_0_6.c_compare_eq_ne [\c_compare_eq_ne(c_family="kinte...] Compiling architecture synth of entity c_compare_v12_0_6.c_compare_v12_0_6_viv [\c_compare_v12_0_6_viv(c_family=...] Compiling architecture synth of entity convolution_v9_0_14.conv_compare [\conv_compare(c_family="kintex7"...] Compiling architecture structural of entity c_reg_fd_v12_0_6.c_reg_fd_v12_0_6_viv [\c_reg_fd_v12_0_6_viv(c_width=2,...] Compiling architecture muxcy_v of entity unisim.MUXCY [muxcy_default] Compiling architecture xorcy_v of entity unisim.XORCY [xorcy_default] Compiling architecture rtl of entity c_addsub_v12_0_13.c_addsub_v12_0_13_lut6_legacy [\c_addsub_v12_0_13_lut6_legacy(c...] Compiling architecture synth of entity c_addsub_v12_0_13.c_addsub_v12_0_13_fabric_legacy [\c_addsub_v12_0_13_fabric_legacy...] Compiling architecture synth of entity c_addsub_v12_0_13.c_addsub_v12_0_13_legacy [\c_addsub_v12_0_13_legacy(c_fami...] Compiling architecture synth of entity c_counter_binary_v12_0_13.c_counter_binary_v12_0_13_legacy [\c_counter_binary_v12_0_13_legac...] Compiling architecture synth of entity c_counter_binary_v12_0_13.c_counter_binary_v12_0_13_viv [\c_counter_binary_v12_0_13_viv(c...] Compiling architecture synth of entity convolution_v9_0_14.conv_counter_binary [\conv_counter_binary(c_width=2,c...] Compiling architecture synth of entity convolution_v9_0_14.conv_countera [\conv_countera(c_width=2,c_count...] Compiling architecture synth of entity convolution_v9_0_14.conv_bit_reg [\conv_bit_reg(c_has_ce=1,c_has_a...] Compiling architecture structural of entity c_reg_fd_v12_0_6.c_reg_fd_v12_0_6_viv [\c_reg_fd_v12_0_6_viv(c_sync_pri...] Compiling architecture struct of entity c_mux_bit_v12_0_6.c_mux_bit_pipereg [\c_mux_bit_pipereg(c_mux_inputs=...] Compiling architecture synth of entity c_mux_bit_v12_0_6.c_mux_bit_v12_0_6_viv [\c_mux_bit_v12_0_6_viv(c_family=...] Compiling architecture rtl of entity c_mux_bus_v12_0_6.c_mux_bus_v12_0_6_viv [\c_mux_bus_v12_0_6_viv(c_family=...] Compiling architecture synth of entity convolution_v9_0_14.conv_mux_bus [\conv_mux_bus(c_width=3,c_s_widt...] Compiling architecture synth of entity convolution_v9_0_14.conv_mux2_bus [\conv_mux2_bus(c_width=3,c_has_a...] Compiling architecture synth of entity convolution_v9_0_14.punc [\punc(c_punc_input_rate=2,punctu...] Compiling architecture synth of entity convolution_v9_0_14.conv_reg [\conv_reg(c_width=7,c_has_ce=1,c...] Compiling architecture synth of entity convolution_v9_0_14.convolution_v9_0_14_main [\convolution_v9_0_14_main(c_outp...] Compiling architecture synth of entity convolution_v9_0_14.convolution_axi_wrapper [\convolution_axi_wrapper(c_has_m...] Compiling architecture synth of entity convolution_v9_0_14.convolution_v9_0_14_viv [\convolution_v9_0_14_viv(c_has_m...] Compiling architecture xilinx of entity convolution_v9_0_14.convolution_v9_0_14 [\convolution_v9_0_14(c_has_m_axi...] Compiling architecture axi_conv_arch of entity xil_defaultlib.axi_conv [axi_conv_default] Compiling module xil_defaultlib.rfnoc_block_conv(THIS_PORTID=10'... Compiling module xil_defaultlib.rfnoc_block_conv_tb Compiling module xil_defaultlib.glbl Built simulation snapshot rfnoc_block_conv_tb_behav ****** Webtalk v2019.1 (64-bit) **** SW Build 2552052 on Fri May 24 14:47:09 MDT 2019 **** IP Build 2548770 on Fri May 24 18:01:18 MDT 2019 ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. source /home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim/xsim.dir/rfnoc_block_conv_tb_behav/webtalk/xsim_webtalk.tcl -notrace INFO: [Common 17-186] '/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim/xsim.dir/rfnoc_block_conv_tb_behav/webtalk/usage_statistics_ext_xsim.xml' has been successfully sent to Xilinx on Wed May 11 02:17:46 2022. For additional details about this file, please refer to the WebTalk help file at /tools/Xilinx/Vivado/2019.1/doc/webtalk_introduction.html. INFO: [Common 17-206] Exiting Webtalk at Wed May 11 02:17:46 2022... run_program: Time (s): cpu = 00:00:18 ; elapsed = 00:00:19 . Memory (MB): peak = 1425.211 ; gain = 0.000 ; free physical = 2791 ; free virtual = 6709 INFO: [USF-XSim-69] 'elaborate' step finished in '19' seconds INFO: [USF-XSim-4] XSim::Simulate design INFO: [USF-XSim-61] Executing 'SIMULATE' step in '/home/wes/capstone/oot_modules/rfnoc_blocks/rfnoc-convolution/rfnoc/fpga/rfnoc_block_conv/xsim_proj/xsim_proj.sim/sim_1/behav/xsim' INFO: [USF-XSim-98] *** Running xsim with args "rfnoc_block_conv_tb_behav -key {Behavioral:sim_1:Functional:rfnoc_block_conv_tb} -tclbatch {rfnoc_block_conv_tb.tcl} -log {simulate.log}" INFO: [USF-XSim-8] Loading simulator feature Vivado Simulator 2019.1 Time resolution is 1 ps source rfnoc_block_conv_tb.tcl ## current_wave_config WARNING: Simulation object /rfnoc_block_conv_tb/blk_ctrl was not traceable in the design for the following reason: Vivado Simulator does not support tracing of System Verilog Dynamic Type object. ======================================================== TESTBENCH STARTED: rfnoc_block_conv_tb ======================================================== [TEST CASE 1] (t = 0 ns) BEGIN: Flush block then reset it... [TEST CASE 1] (t = 6450 ns) DONE... Passed [TEST CASE 2] (t = 6450 ns) BEGIN: Verify Block Info... [TEST CASE 2] (t = 6450 ns) DONE... Passed [TEST CASE 3] (t = 6450 ns) BEGIN: Test passing through samples... Fatal: Timeout: Test "Test passing through samples" time limit exceeded Time: 16450 ns Iteration: 0 Process: /PkgTestExec/TestExec::start_timeout/Block260_9/timeout File: /home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgTestExec.sv $finish called at time : 16450 ns : File "/home/wes/capstone/usrp/uhd/fpga/usrp3/sim/rfnoc/PkgTestExec.sv" Line 235 INFO: [USF-XSim-96] XSim completed. Design snapshot 'rfnoc_block_conv_tb_behav' loaded. INFO: [USF-XSim-97] XSim simulation ran for 1000000000us launch_simulation: Time (s): cpu = 00:00:38 ; elapsed = 00:00:43 . Memory (MB): peak = 1458.008 ; gain = 42.445 ; free physical = 2785 ; free virtual = 6703 # if { [info exists ::env(VIV_SYNTH_TOP)] } { # puts "BUILDER: Synthesizing" # # Synthesize requested modules # foreach synth_top "$::env(VIV_SYNTH_TOP)" { # set_property top $synth_top [current_fileset] # synth_design -mode out_of_context # # Perform a simple regex-based search for all clock signals and constrain # # them to 500 MHz for the timing report. # set clk_regexp "(?i)^(?!.*en.*).*(clk|clock).*" # foreach clk_inst [get_ports -regexp $clk_regexp] { # create_clock -name $clk_inst -period 2.0 [get_ports $clk_inst] # } # report_utilization -no_primitives -file ${working_dir}/${synth_top}_synth.rpt # report_timing_summary -setup -max_paths 3 -unique_pins -no_header -append -file ${working_dir}/${synth_top}_synth.rpt # write_checkpoint -force ${working_dir}/${synth_top}_synth.dcp # } # } else { # puts "BUILDER: Skipping resource report because VIV_SYNTH_TOP is not set" # } BUILDER: Synthesizing # if [string equal $vivado_mode "batch"] { # puts "BUILDER: Closing project" # close_project # } else { # puts "BUILDER: In GUI mode. Leaving project open." # } BUILDER: Closing project INFO: [Common 17-206] Exiting Vivado at Wed May 11 02:17:55 2022...
// // Copyright 2022 <+YOU OR YOUR COMPANY+>. // // This is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3, or (at your option) // any later version. // // This software is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this software; see the file COPYING. If not, write to // the Free Software Foundation, Inc., 51 Franklin Street, // Boston, MA 02110-1301, USA. // // // Module: rfnoc_block_conv_tb // // Description: Testbench for the conv RFNoC block. // `default_nettype none module rfnoc_block_conv_tb; `include "test_exec.svh" import PkgTestExec::*; import PkgChdrUtils::*; import PkgRfnocBlockCtrlBfm::*; import PkgRfnocItemUtils::*; //--------------------------------------------------------------------------- // Testbench Configuration //--------------------------------------------------------------------------- localparam [ 9:0] THIS_PORTID = 10'h123; localparam [31:0] NOC_ID = 32'h1337; localparam int CHDR_W = 64; localparam int ITEM_W = 8; localparam int NUM_PORTS_I = 1; localparam int NUM_PORTS_O = 1; localparam int MTU = 13; localparam int SPP = 64; // Samples per packet localparam int PKT_SIZE_BYTES = SPP * (ITEM_W/8); localparam int STALL_PROB = 25; // Default BFM stall probability localparam real CHDR_CLK_PER = 5.0; // Clock rate (200 MHz) localparam real CTRL_CLK_PER = 25.0; // 40 MHz //--------------------------------------------------------------------------- // Clocks and Resets //--------------------------------------------------------------------------- bit rfnoc_chdr_clk; bit rfnoc_ctrl_clk; sim_clock_gen #(CHDR_CLK_PER) rfnoc_chdr_clk_gen (.clk(rfnoc_chdr_clk), .rst()); sim_clock_gen #(CTRL_CLK_PER) rfnoc_ctrl_clk_gen (.clk(rfnoc_ctrl_clk), .rst()); //--------------------------------------------------------------------------- // Bus Functional Models //--------------------------------------------------------------------------- // Backend Interface RfnocBackendIf backend (rfnoc_chdr_clk, rfnoc_ctrl_clk); // AXIS-Ctrl Interface AxiStreamIf #(32) m_ctrl (rfnoc_ctrl_clk, 1'b0); AxiStreamIf #(32) s_ctrl (rfnoc_ctrl_clk, 1'b0); // AXIS-CHDR Interfaces AxiStreamIf #(CHDR_W) m_chdr [NUM_PORTS_I] (rfnoc_chdr_clk, 1'b0); AxiStreamIf #(CHDR_W) s_chdr [NUM_PORTS_O] (rfnoc_chdr_clk, 1'b0); // Block Controller BFM RfnocBlockCtrlBfm #(CHDR_W, ITEM_W) blk_ctrl = new(backend, m_ctrl, s_ctrl); // CHDR word and item/sample data types typedef ChdrData #(CHDR_W, ITEM_W)::chdr_word_t chdr_word_t; typedef ChdrData #(CHDR_W, ITEM_W)::item_t item_t; // Connect block controller to BFMs for (genvar i = 0; i < NUM_PORTS_I; i++) begin : gen_bfm_input_connections initial begin blk_ctrl.connect_master_data_port(i, m_chdr[i], PKT_SIZE_BYTES); blk_ctrl.set_master_stall_prob(i, STALL_PROB); end end for (genvar i = 0; i < NUM_PORTS_O; i++) begin : gen_bfm_output_connections initial begin blk_ctrl.connect_slave_data_port(i, s_chdr[i]); blk_ctrl.set_slave_stall_prob(i, STALL_PROB); end end //--------------------------------------------------------------------------- // Device Under Test (DUT) //--------------------------------------------------------------------------- // DUT Slave (Input) Port Signals logic [CHDR_W*NUM_PORTS_I-1:0] s_rfnoc_chdr_tdata; logic [ NUM_PORTS_I-1:0] s_rfnoc_chdr_tlast; logic [ NUM_PORTS_I-1:0] s_rfnoc_chdr_tvalid; logic [ NUM_PORTS_I-1:0] s_rfnoc_chdr_tready; // DUT Master (Output) Port Signals logic [CHDR_W*NUM_PORTS_O-1:0] m_rfnoc_chdr_tdata; logic [ NUM_PORTS_O-1:0] m_rfnoc_chdr_tlast; logic [ NUM_PORTS_O-1:0] m_rfnoc_chdr_tvalid; logic [ NUM_PORTS_O-1:0] m_rfnoc_chdr_tready; // Map the array of BFMs to a flat vector for the DUT connections for (genvar i = 0; i < NUM_PORTS_I; i++) begin : gen_dut_input_connections // Connect BFM master to DUT slave port assign s_rfnoc_chdr_tdata[CHDR_W*i+:CHDR_W] = m_chdr[i].tdata; assign s_rfnoc_chdr_tlast[i] = m_chdr[i].tlast; assign s_rfnoc_chdr_tvalid[i] = m_chdr[i].tvalid; assign m_chdr[i].tready = s_rfnoc_chdr_tready[i]; end for (genvar i = 0; i < NUM_PORTS_O; i++) begin : gen_dut_output_connections // Connect BFM slave to DUT master port assign s_chdr[i].tdata = m_rfnoc_chdr_tdata[CHDR_W*i+:CHDR_W]; assign s_chdr[i].tlast = m_rfnoc_chdr_tlast[i]; assign s_chdr[i].tvalid = m_rfnoc_chdr_tvalid[i]; assign m_rfnoc_chdr_tready[i] = s_chdr[i].tready; end rfnoc_block_conv #( .THIS_PORTID (THIS_PORTID), .CHDR_W (CHDR_W), .MTU (MTU) ) dut ( .rfnoc_chdr_clk (rfnoc_chdr_clk), .rfnoc_ctrl_clk (rfnoc_ctrl_clk), .rfnoc_core_config (backend.cfg), .rfnoc_core_status (backend.sts), .s_rfnoc_chdr_tdata (s_rfnoc_chdr_tdata), .s_rfnoc_chdr_tlast (s_rfnoc_chdr_tlast), .s_rfnoc_chdr_tvalid (s_rfnoc_chdr_tvalid), .s_rfnoc_chdr_tready (s_rfnoc_chdr_tready), .m_rfnoc_chdr_tdata (m_rfnoc_chdr_tdata), .m_rfnoc_chdr_tlast (m_rfnoc_chdr_tlast), .m_rfnoc_chdr_tvalid (m_rfnoc_chdr_tvalid), .m_rfnoc_chdr_tready (m_rfnoc_chdr_tready), .s_rfnoc_ctrl_tdata (m_ctrl.tdata), .s_rfnoc_ctrl_tlast (m_ctrl.tlast), .s_rfnoc_ctrl_tvalid (m_ctrl.tvalid), .s_rfnoc_ctrl_tready (m_ctrl.tready), .m_rfnoc_ctrl_tdata (s_ctrl.tdata), .m_rfnoc_ctrl_tlast (s_ctrl.tlast), .m_rfnoc_ctrl_tvalid (s_ctrl.tvalid), .m_rfnoc_ctrl_tready (s_ctrl.tready) ); //--------------------------------------------------------------------------- // Main Test Process //--------------------------------------------------------------------------- initial begin : tb_main // Initialize the test exec object for this testbench test.start_tb("rfnoc_block_conv_tb"); // Start the BFMs running blk_ctrl.run(); //-------------------------------- // Reset //-------------------------------- test.start_test("Flush block then reset it", 10us); blk_ctrl.flush_and_reset(); test.end_test(); //-------------------------------- // Verify Block Info //-------------------------------- test.start_test("Verify Block Info", 2us); `ASSERT_ERROR(blk_ctrl.get_noc_id() == NOC_ID, "Incorrect NOC_ID Value"); `ASSERT_ERROR(blk_ctrl.get_num_data_i() == NUM_PORTS_I, "Incorrect NUM_DATA_I Value"); `ASSERT_ERROR(blk_ctrl.get_num_data_o() == NUM_PORTS_O, "Incorrect NUM_DATA_O Value"); `ASSERT_ERROR(blk_ctrl.get_mtu() == MTU, "Incorrect MTU Value"); test.end_test(); //-------------------------------- // Test Sequences //-------------------------------- // begin // Read and write the user register to make sure it updates correctly. // logic [7:0] write_val, read_val; // test.start_test("Verify user register", 5us); // Test user register has a default value // blk_ctrl.reg_read(dut.REG_USER_ADDR, read_val); // `ASSERT_ERROR( // read_val == dut.REG_USER_DEFAULT, "Incorrect default value for user register"); // Test writing and read user register works // write_val = $random(); // blk_ctrl.reg_write(dut.REG_USER_ADDR, write_val); // blk_ctrl.reg_read(dut.REG_USER_ADDR, read_val); // `ASSERT_ERROR( // read_val == write_val, "Initial value for user register is incorrect"); // test.end_test(); // end begin int num_bytes; item_t send_samples[$]; item_t recv_samples[$]; item_t gnd_truth_samples[$]; test.start_test("Test passing through samples", 10us); // Generate a payload of random samples send_samples = {57, 95, 22, 163, 46}; for (int i = 0; i < 5; i++) begin send_samples.push_back($random()); // 8-bit samples end // Queue a packet for transfer blk_ctrl.send_items(0, send_samples); // Receive the output packet blk_ctrl.recv_items(0, recv_samples); // Check the resulting payload size `ASSERT_ERROR(recv_samples.size() == 15, "Received payload didn't match size of payload sent"); // Ground truth data to compare gnd_truth_samples = {3, 234, 159, 48, 205, 109, 76, 115, 50, 134, 22, 62, 79, 153, 170}; // Check the resulting samples for (int i = 0; i < 15; i++) begin item_t sample_gnd_truth; item_t sample_out; sample_gnd_truth = gnd_truth_samples[i]; sample_out = recv_samples[i]; `ASSERT_ERROR( sample_out == sample_gnd_truth, $sformatf("Sample %4d, received 0x%08X, expected 0x%08X", i, sample_out, sample_gnd_truth)); end test.end_test(); end //-------------------------------- // Finish Up //-------------------------------- // Display final statistics and results test.end_tb(); end : tb_main endmodule : rfnoc_block_conv_tb `default_nettype wire
// // Copyright 2022 <+YOU OR YOUR COMPANY+>. // // This is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3, or (at your option) // any later version. // // This software is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this software; see the file COPYING. If not, write to // the Free Software Foundation, Inc., 51 Franklin Street, // Boston, MA 02110-1301, USA. // // // Module: rfnoc_block_conv // // Description: // // This is a skeleton file for a RFNoC block. It passes incoming samples // to the output without any modification. A read/write user register is // instantiated, but left unused. // // Parameters: // // THIS_PORTID : Control crossbar port to which this block is connected // CHDR_W : AXIS-CHDR data bus width // MTU : Maximum transmission unit (i.e., maximum packet size in // CHDR words is 2**MTU). // `default_nettype none module rfnoc_block_conv #( parameter [9:0] THIS_PORTID = 10'd0, parameter CHDR_W = 64, parameter [5:0] MTU = 10, parameter NUM_PORTS = 1 )( // RFNoC Framework Clocks and Resets input wire rfnoc_chdr_clk, input wire rfnoc_ctrl_clk, input wire ce_clk, // RFNoC Backend Interface input wire [511:0] rfnoc_core_config, output wire [511:0] rfnoc_core_status, // AXIS-CHDR Input Ports (from framework) input wire [(1)*CHDR_W-1:0] s_rfnoc_chdr_tdata, input wire [(1)-1:0] s_rfnoc_chdr_tlast, input wire [(1)-1:0] s_rfnoc_chdr_tvalid, output wire [(1)-1:0] s_rfnoc_chdr_tready, // AXIS-CHDR Output Ports (to framework) output wire [(1)*CHDR_W-1:0] m_rfnoc_chdr_tdata, output wire [(1)-1:0] m_rfnoc_chdr_tlast, output wire [(1)-1:0] m_rfnoc_chdr_tvalid, input wire [(1)-1:0] m_rfnoc_chdr_tready, // AXIS-Ctrl Input Port (from framework) input wire [7:0] s_rfnoc_ctrl_tdata, input wire s_rfnoc_ctrl_tlast, input wire s_rfnoc_ctrl_tvalid, output wire s_rfnoc_ctrl_tready, // AXIS-Ctrl Output Port (to framework) output wire [7:0] m_rfnoc_ctrl_tdata, output wire m_rfnoc_ctrl_tlast, output wire m_rfnoc_ctrl_tvalid, input wire m_rfnoc_ctrl_tready ); `include "/home/wes/capstone/usrp/uhd/fpga/usrp3/lib/rfnoc/core/rfnoc_chdr_utils.vh" //--------------------------------------------------------------------------- // Signal Declarations //--------------------------------------------------------------------------- // Clocks and Resets wire ctrlport_clk; wire ctrlport_rst; wire axis_data_clk; wire axis_data_rst; // CtrlPort Master wire m_ctrlport_req_wr; wire m_ctrlport_req_rd; wire [19:0] m_ctrlport_req_addr; wire [31:0] m_ctrlport_req_data; reg m_ctrlport_resp_ack; reg [31:0] m_ctrlport_resp_data; // Payload Stream to User Logic: in wire [8*1-1:0] m_in_payload_tdata; wire [1-1:0] m_in_payload_tkeep; wire [1-1:0] m_in_payload_tlast; wire [1-1:0] m_in_payload_tvalid; wire [1-1:0] m_in_payload_tready; // Context Stream to User Logic: in wire [CHDR_W-1:0] m_in_context_tdata; wire [3:0] m_in_context_tuser; wire [1-1:0] m_in_context_tlast; wire [1-1:0] m_in_context_tvalid; reg [1-1:0] m_in_context_tready; // Payload Stream from User Logic: out wire [8*1-1:0] s_out_payload_tdata; wire [0:0] s_out_payload_tkeep; wire [1-1:0] s_out_payload_tlast; wire [1-1:0] s_out_payload_tvalid; wire [1-1:0] s_out_payload_tready; // Context Stream from User Logic: out reg [CHDR_W-1:0] s_out_context_tdata; reg [3:0] s_out_context_tuser; reg [1-1:0] s_out_context_tlast; reg [1-1:0] s_out_context_tvalid; wire [1-1:0] s_out_context_tready; wire ce_rst; //--------------------------------------------------------------------------- // NoC Shell //--------------------------------------------------------------------------- noc_shell_conv #( .CHDR_W (CHDR_W), .THIS_PORTID (THIS_PORTID), .MTU (MTU) ) noc_shell_conv_i ( //--------------------- // Framework Interface //--------------------- // Clock Inputs .rfnoc_chdr_clk (rfnoc_chdr_clk), .rfnoc_ctrl_clk (rfnoc_ctrl_clk), // Reset Outputs .rfnoc_chdr_rst (), .rfnoc_ctrl_rst (), // RFNoC Backend Interface .rfnoc_core_config (rfnoc_core_config), .rfnoc_core_status (rfnoc_core_status), // CHDR Input Ports (from framework) .s_rfnoc_chdr_tdata (s_rfnoc_chdr_tdata), .s_rfnoc_chdr_tlast (s_rfnoc_chdr_tlast), .s_rfnoc_chdr_tvalid (s_rfnoc_chdr_tvalid), .s_rfnoc_chdr_tready (s_rfnoc_chdr_tready), // CHDR Output Ports (to framework) .m_rfnoc_chdr_tdata (m_rfnoc_chdr_tdata), .m_rfnoc_chdr_tlast (m_rfnoc_chdr_tlast), .m_rfnoc_chdr_tvalid (m_rfnoc_chdr_tvalid), .m_rfnoc_chdr_tready (m_rfnoc_chdr_tready), // AXIS-Ctrl Input Port (from framework) .s_rfnoc_ctrl_tdata (s_rfnoc_ctrl_tdata), .s_rfnoc_ctrl_tlast (s_rfnoc_ctrl_tlast), .s_rfnoc_ctrl_tvalid (s_rfnoc_ctrl_tvalid), .s_rfnoc_ctrl_tready (s_rfnoc_ctrl_tready), // AXIS-Ctrl Output Port (to framework) .m_rfnoc_ctrl_tdata (m_rfnoc_ctrl_tdata), .m_rfnoc_ctrl_tlast (m_rfnoc_ctrl_tlast), .m_rfnoc_ctrl_tvalid (m_rfnoc_ctrl_tvalid), .m_rfnoc_ctrl_tready (m_rfnoc_ctrl_tready), //--------------------- // Client Interface //--------------------- // CtrlPort Clock and Reset .ctrlport_clk (ce_clk), .ctrlport_rst (ce_rst), // CtrlPort Master .m_ctrlport_req_wr (m_ctrlport_req_wr), .m_ctrlport_req_rd (m_ctrlport_req_rd), .m_ctrlport_req_addr (m_ctrlport_req_addr), .m_ctrlport_req_data (m_ctrlport_req_data), .m_ctrlport_resp_ack (m_ctrlport_resp_ack), .m_ctrlport_resp_data (m_ctrlport_resp_data), // AXI-Stream Payload Context Clock and Reset .axis_data_clk (axis_data_clk), .axis_data_rst (axis_data_rst), // Payload Stream to User Logic: in .m_in_payload_tdata (m_in_payload_tdata), .m_in_payload_tkeep (m_in_payload_tkeep), .m_in_payload_tlast (m_in_payload_tlast), .m_in_payload_tvalid (m_in_payload_tvalid), .m_in_payload_tready (m_in_payload_tready), // Context Stream to User Logic: in .m_in_context_tdata (m_in_context_tdata), .m_in_context_tuser (m_in_context_tuser), .m_in_context_tlast (m_in_context_tlast), .m_in_context_tvalid (m_in_context_tvalid), .m_in_context_tready (m_in_context_tready), // Payload Stream from User Logic: out .s_out_payload_tdata (s_out_payload_tdata), .s_out_payload_tkeep (s_out_payload_tkeep), .s_out_payload_tlast (s_out_payload_tlast), .s_out_payload_tvalid (s_out_payload_tvalid), .s_out_payload_tready (s_out_payload_tready), // Context Stream from User Logic: out .s_out_context_tdata (s_out_context_tdata), .s_out_context_tuser (s_out_context_tuser), .s_out_context_tlast (s_out_context_tlast), .s_out_context_tvalid (s_out_context_tvalid), .s_out_context_tready (s_out_context_tready) ); //--------------------------------------------------------------------------- // User Registers //--------------------------------------------------------------------------- // // There's only one register now, but we'll structure the register code to // make it easier to add more registers later. // Register use the ctrlport_clk clock. // //--------------------------------------------------------------------------- // Note: Register addresses increment by 4 localparam REG_USER_ADDR = 0; // Address for example user register localparam REG_USER_DEFAULT = 0; // Default value for user register reg [31:0] reg_user = REG_USER_DEFAULT; always @(posedge ctrlport_clk) begin if (ctrlport_rst) begin reg_user = REG_USER_DEFAULT; end else begin // Default assignment m_ctrlport_resp_ack <= 0; // Read user register if (m_ctrlport_req_rd) begin // Read request case (m_ctrlport_req_addr) REG_USER_ADDR: begin m_ctrlport_resp_ack <= 1; m_ctrlport_resp_data <= reg_user; end endcase end // Write user register if (m_ctrlport_req_wr) begin // Write requst case (m_ctrlport_req_addr) REG_USER_ADDR: begin m_ctrlport_resp_ack <= 1; reg_user <= m_ctrlport_req_data[31:0]; end endcase end end end //--------------------------------------------------------------------------- // User Logic //--------------------------------------------------------------------------- // // User logic uses the axis_data_clk clock. While the registers above use the // ctrlport_clk clock, in the block YAML configuration file both the control // and data interfaces are specified to use the rfnoc_chdr clock. Therefore, // we do not need to cross clock domains when using user registers with // user logic. // //--------------------------------------------------------------------------- // Instantiate Xilinx Convolutional Encoder IP core and make AXI I/O connections axi_conv inst_axi_conv ( .aclk(rfnoc_chdr_clk), .aresetn(~(ce_rst)), .s_axis_data_tvalid(m_in_payload_tvalid), .s_axis_data_tready(m_in_payload_tready), .s_axis_data_tdata(m_in_payload_tdata[7:0]), .m_axis_data_tvalid(s_out_payload_tvalid), .m_axis_data_tready(s_out_payload_tready), .m_axis_data_tdata(s_out_payload_tdata[7:0])); // Pins not present on IP core; passing through unchanged assign s_out_payload_tlast = m_in_payload_tlast; //--------------------------------------------------------------------------- // Context Handling //--------------------------------------------------------------------------- // // Output packets have two thirds the payload size of input packets, so we // need to update the header length field as it passes through. // //--------------------------------------------------------------------------- genvar port; for (port = 0; port < NUM_PORTS; port = port+1) begin : gen_context_ports always @(*) begin : update_packet_length reg [CHDR_W-1:0] old_tdata; reg [CHDR_W-1:0] new_tdata; old_tdata = m_in_context_tdata[CHDR_W*port +: CHDR_W]; // Check if this context word contains the header if (m_in_context_tuser[4*port +: 4] == CONTEXT_FIELD_HDR || m_in_context_tuser[4*port +: 4] == CONTEXT_FIELD_HDR_TS ) begin : change_header // Update the lower 64-bits (the header word) with the new length reg [15:0] pyld_length; pyld_length = chdr_calc_payload_length(CHDR_W, old_tdata)*2 / 3; new_tdata = old_tdata; new_tdata[63:0] = chdr_update_length(CHDR_W, old_tdata, pyld_length); end else begin : pass_through_header // Not a header word, so pass through unchanged new_tdata = old_tdata; end s_out_context_tdata [CHDR_W*port +: CHDR_W] = new_tdata; s_out_context_tuser [ 4*port +: 4] = m_in_context_tuser [4*port +: 4]; s_out_context_tlast [ 1*port +: 1] = m_in_context_tlast [1*port +: 1]; s_out_context_tvalid [ 1*port +: 1] = m_in_context_tvalid [1*port +: 1]; m_in_context_tready [ 1*port +: 1] = s_out_context_tready [1*port +: 1]; end // update_packet_length end // gen_context_ports // Only 1-sample per clock, so tkeep should always be asserted assign s_out_payload_tkeep = 1'b1; endmodule // rfnoc_block_conv `default_nettype wire
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com