Thanks Wade, I ended up regenerating using axis_pyld_ctxt and was able to use the logpwr example again for generating a 2 to 1 output to input ratio context.
Now the testbench builds but it seems the IP block times out when I wait for the output data to come out of the block.... at this point I'm not sure what could be the root cause so I've attached a link to my entire project tree containing the axi_conv.xci IP file, and all my logic for the noc shell, rfnoc block, and testbench just in case there's something I'm doing wrong in wiring up the IP core; the default for the IP core is rate 1/2 its a fairly simple block that takes a stream of data in and outputs an convolutional encoded stream of data out that is 2x the length of the data going into it. https://drive.google.com/drive/folders/1dOl9VMCPmuQLiXN4jSTTqgtFCQ19FmJT?usp=sharing I also posted the verilog files outside the tar.gz for convenience in case you catch something obvious on first glance - want to make sure I didn't miss anything in terms of clocks, data widths, etc. thanks! -Jeff On Thu, May 19, 2022 at 3:13 PM Wade Fife <wade.f...@ettus.com> wrote: > Regarding the payload/context change, it looks like the modtool sets the > fpga_iface to axis_pyld_ctxt, but in conv.yml you changed it to axis_data? > So when you ran rfnoc_create_verilog, it changed the interface type used by > the NoC shell. You can read about "AXI-Stream Payload Context" and > "AXI-Stream Data" interface types in the RFNoC Specification > <https://urldefense.proofpoint.com/v2/url?u=https-3A__files.ettus.com_app-5Fnotes_RFNoC-5FSpecification.pdf&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=iWIZIMJmjHh1GpWVAWXO6iGs641IqKVp_sQbEVackRZ-O08h4pR3Yi11Ui9cE0vs&s=_MwzXrHQa4GWT2C7uefcJvZJn_fsZMZuuJEPEl5eXzg&e=>. > I think either could be used. > > Wade > > On Thu, May 19, 2022 at 4:18 PM Jeffrey Cuenco <jeffrey.cue...@gmail.com> > wrote: > >> Thanks Wade! I just remembered that I forgot to set my output to input >> ratio which may be explaining why the timeouts are happening even with the >> extended delay. >> >> When I used the rfnoc_create_verilog, I noticed that the client interface >> only has m_in_axis_* and s_out_axis_* connections and no separation between >> context and payload for the template of noc shell used by the tool. >> >> As such the logpwr example you shared with me earlier isn't >> straightforward to port over and the duc example appears to be most >> compatible pin-out wise with axi_rate_change so I'm about to attempt to >> hook it up it but wanted to clarify that there aren't any additional >> changes I would need to do aside from adjusting MAX_M, MAX_N, and ensuring >> the input/output wire names match what are in my signal declarations >> section? Thanks! >> >> -Jeff >> >> >> >> >> >> >> >> On Thu, May 19, 2022 at 12:36 PM Wade Fife <wade.f...@ettus.com> wrote: >> >>> The testbench has start_test() and end_test() calls around each test. >>> There's a timeout in the start_test() call, and there's also a global >>> timeout (part of start_tb(), but I think 10 ms by default). If the >>> end_test() doesn't occur within a certain amount of time of the >>> start_test(), then the testbench assumes something went wrong. Otherwise, >>> the simulation could just keep running forever. >>> >>> So you'll need to look at your simulation to see where things are >>> getting stuck. Also, make sure what you're doing doesn't just need more >>> time. >>> >>> Wade >>> >>> On Thu, May 19, 2022 at 2:29 PM Jeffrey Cuenco <jeffrey.cue...@gmail.com> >>> wrote: >>> >>>> Thanks Wade! I used the rfnoc_create_verilog and it generated code that >>>> contained ce_clk and added >>>> >>>> output wire ce_rst; >>>> >>>> following the ce_clk declaration around line 32 of rfnoc_block_conv.v >>>> in the generated file, then plugged it into .ce_rst of noc_shell_conv later >>>> in the file and also used it in my axi_conv instantiation. >>>> >>>> After doing that and building I was able to get the testbench to run >>>> but I now get a fatal timeout, something about time limit exceeded. >>>> >>>> Is there something that needs to be wired in so that it knows when >>>> things finish? Thanks! >>>> >>>> -Jeff >>>> >>>> On Thu, May 19, 2022 at 12:23 Wade Fife <wade.f...@ettus.com> wrote: >>>> >>>>> I think those versions are fine, but your gr-ettus might be out of >>>>> date. I'm not very familiar with the GNU Radio integration. You could try >>>>> updating your gr-ettus then regenerate your block, or you could run the >>>>> rfnoc_create_verilog tool using the YML file as an input if you need to >>>>> customize the YAML to add the ce_clk/ce_rst signals. It's really up to you >>>>> if you need those signals. But your IP needs to be clocked and probably >>>>> reset by something, and you need to make sure the generated noc_shell uses >>>>> the same clock domains you're expecting to use. >>>>> >>>>> >>>>> Wade >>>>> >>>>> On Wed, May 18, 2022 at 10:10 PM Jeffrey Cuenco < >>>>> jeffrey.cue...@gmail.com> wrote: >>>>> >>>>>> Neel recommended I use UHD v4.1.0.5 and GRC v3.8.5.0 so that’s what >>>>>> I’ve been using - does this version not generate the right items? If not >>>>>> which version of UHD should I update to, and which version of GRC works >>>>>> best with it? Thanks! >>>>>> >>>>>> -Jeff >>>>>> >>>>>> On May 18, 2022, at 19:59, Wade Fife <wade.f...@ettus.com> wrote: >>>>>> >>>>>> >>>>>> If you want to customize the YAML and regenerate from your modified >>>>>> YAML, then I think you need to use rfnoc_create_verilog (part of UHD). So >>>>>> you could do something like: >>>>>> >>>>>> python3 uhd/host/utils/rfnoc_blocktool/rfnoc_create_verilog.py -c >>>>>> conv.yml -d ./rfnoc_block_conv >>>>>> >>>>>> However, I see ce_rst in the modtool templates: >>>>>> >>>>>> >>>>>> https://github.com/EttusResearch/gr-ettus/blob/master/python/rfnoc_modtool/templates.py#L994 >>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_EttusResearch_gr-2Dettus_blob_master_python_rfnoc-5Fmodtool_templates.py-23L994&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=1DdbigE2N0YgkBb5QwxGwLoaLzBicQiQrNdYgLIklkzVPw_RkRIL9bq4dINC9Cqd&s=fKouuct_wr3CdcChBQjBmaL6WDVq7l3U1zAVR7DcnDY&e=> >>>>>> >>>>>> https://github.com/EttusResearch/gr-ettus/blob/master/python/rfnoc_modtool/templates.py#L1384 >>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_EttusResearch_gr-2Dettus_blob_master_python_rfnoc-5Fmodtool_templates.py-23L1384&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=1DdbigE2N0YgkBb5QwxGwLoaLzBicQiQrNdYgLIklkzVPw_RkRIL9bq4dINC9Cqd&s=g8-XZVaLen6JS347_frcJqnHnCFTxWbAtw1WcLKrtzA&e=> >>>>>> >>>>>> Perhaps you're using an older version of modtool? >>>>>> >>>>>> Wade >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, May 18, 2022 at 12:33 PM Jeffrey Cuenco < >>>>>> jeffrey.cue...@gmail.com> wrote: >>>>>> >>>>>>> Spoke too soon - sent last one out too fast so apologies for the >>>>>>> message clutter: >>>>>>> >>>>>>> What I see in rfnoc_block_conv.v is ce_clk as an input wire within >>>>>>> the rfnoc_block_conv module declaration. >>>>>>> >>>>>>> However, I don't see ce_rst anywhere in either the noc_shell_conv.v >>>>>>> nor the rfnoc_block_conv.v files. >>>>>>> >>>>>>> Is this something I should be concerned about, or will I need to >>>>>>> manually add this wire in? Please advise - thanks! >>>>>>> >>>>>>> -Jeff >>>>>>> >>>>>>> >>>>>>> On Wed, May 18, 2022 at 10:26 AM Jeffrey Cuenco < >>>>>>> jeffrey.cue...@gmail.com> wrote: >>>>>>> >>>>>>>> To clarify - I see them in rfnoc_block_conv.v but not in >>>>>>>> noc_shell_conv.v - just want to ensure that is okay; I ended up >>>>>>>> regenerating from scratch as I had used the gain block as a base the >>>>>>>> first >>>>>>>> time and it seems it was generated with an older RFNoC 3.x codegen. >>>>>>>> >>>>>>>> Will proceed with this and let you know my results. Thanks! >>>>>>>> >>>>>>>> On Wed, May 18, 2022 at 7:55 AM Jeffrey Cuenco < >>>>>>>> jeffrey.cue...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Thanks Wade! >>>>>>>>> >>>>>>>>> I tried to regenerate using rfnocmodtool and noticed that the >>>>>>>>> ce_clk and ce_rst wires aren't present in the template code and the >>>>>>>>> yaml >>>>>>>>> files get overwritten - is there another command for rfnocmodtool >>>>>>>>> that I >>>>>>>>> should be using to regenerate after customizing the yaml? Thanks! >>>>>>>>> >>>>>>>>> -Jeff >>>>>>>>> >>>>>>>>> On Mon, May 16, 2022 at 11:07 AM Wade Fife <wade.f...@ettus.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> I was looking at your code to answer your question when I noticed >>>>>>>>>> that the noc_shell code doesn't seem to match your YAML, so I'm >>>>>>>>>> wondering >>>>>>>>>> if the YAML was modified after you generated your noc_shell? The >>>>>>>>>> noc_shell >>>>>>>>>> is missing the ce_clk declared in your YAML. >>>>>>>>>> >>>>>>>>>> To answer your question, I'm going to assume you want a ce_clk >>>>>>>>>> that's different from rfnoc_chdr_clk and rfnoc_ctrl_clk and you want >>>>>>>>>> your >>>>>>>>>> DSP and the registers to use ce_clk. In that case: >>>>>>>>>> >>>>>>>>>> 1. Regenerate your block to get a new noc_shell_conv. This >>>>>>>>>> will add a ce_clk input and a ce_rst output to noc_shell_conv. >>>>>>>>>> Again, be >>>>>>>>>> careful to not overwrite your existing code when regenerating >>>>>>>>>> your block. >>>>>>>>>> 2. In rfnoc_block_conv, connect the ce_clk input port to the >>>>>>>>>> ce_clk input port of noc_shell_conv. >>>>>>>>>> 3. In rfnoc_block_conv, declare a ce_rst wire at the top and >>>>>>>>>> connect it to the ce_rst output port of your noc_shell. >>>>>>>>>> 4. Update your registers and custom logic to use ce_clk and >>>>>>>>>> ce_rst. >>>>>>>>>> >>>>>>>>>> The answer is slightly different if you want to use the current >>>>>>>>>> noc_shell. But in general, you say what clocks you want to use in >>>>>>>>>> the YAML >>>>>>>>>> file. When the noc_shell is generated, it will take as inputs the >>>>>>>>>> clocks >>>>>>>>>> you declared in the YAML, it will output resets that you can use for >>>>>>>>>> those >>>>>>>>>> clock domains, and it will output on ctrlport_clk and axis_data_clk >>>>>>>>>> whatever clocks you said in the YAML that you wanted to use for those >>>>>>>>>> interfaces. This can be a bit confusing because it means you can have >>>>>>>>>> multiple versions of the same clock under different names (e.g., >>>>>>>>>> ce_clk, >>>>>>>>>> ctrlport_clk, and axis_data_clk might all be the same clock, just on >>>>>>>>>> different signal names). >>>>>>>>>> >>>>>>>>>> Wade >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, May 13, 2022 at 1:09 PM Jeffrey Cuenco <jcue...@ucsd.edu> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Thanks Wade! >>>>>>>>>>> >>>>>>>>>>> I went ahead and restored the signal sizes to 32-bit as you >>>>>>>>>>> suggested. >>>>>>>>>>> >>>>>>>>>>> For using ce_clk, does it suffice for me to create a wire for >>>>>>>>>>> ce_clk in the .v file and then reference it from the yaml? Is >>>>>>>>>>> ordering >>>>>>>>>>> important or just ensuring the name matches the wire? Thanks! >>>>>>>>>>> >>>>>>>>>>> -Jeff >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On May 12, 2022, at 10:29, Wade Fife <wade.f...@ettus.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Hi Jeff, >>>>>>>>>>> >>>>>>>>>>> I took a look and noticed a couple things. >>>>>>>>>>> >>>>>>>>>>> - There are some signal width mismatches in >>>>>>>>>>> rfnoc_block_conv.v. Take a look at s_rfnoc_ctrl_tdata, >>>>>>>>>>> m_rfnoc_ctrl_tdata, >>>>>>>>>>> m_in_payload_tdata, s_out_payload_tdata. They have different >>>>>>>>>>> widths than >>>>>>>>>>> what the noc_shell expects. I think it's possible to change the >>>>>>>>>>> payload_tdata width to 8 on the noc_shell by changing the >>>>>>>>>>> item_width in >>>>>>>>>>> your YAML, but you'll want to regenerate the noc_shell to do >>>>>>>>>>> that (be >>>>>>>>>>> careful not to overwrite your other files if you do this). But >>>>>>>>>>> the ctrl bus >>>>>>>>>>> must be 32-bit. >>>>>>>>>>> - The ctrlport_clk has no driver. It looks like you >>>>>>>>>>> specified ce_clk as the clock domain in your YAML, so perhaps >>>>>>>>>>> that's the >>>>>>>>>>> clock you want to use? >>>>>>>>>>> >>>>>>>>>>> Try resolving these issues and see where that gets you. >>>>>>>>>>> >>>>>>>>>>> Wade >>>>>>>>>>> >>>>>>>>>>> On Wed, May 11, 2022 at 2:19 PM Jeffrey Cuenco < >>>>>>>>>>> jeffrey.cue...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Wade, >>>>>>>>>>>> >>>>>>>>>>>> Please see attached. Thanks! >>>>>>>>>>>> >>>>>>>>>>>> -Jeff >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On May 11, 2022, at 08:42, Wade Fife <wade.f...@ettus.com> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Can you also share your block's YML and the noc_shell you >>>>>>>>>>>> generated? >>>>>>>>>>>> >>>>>>>>>>>> Wade >>>>>>>>>>>> >>>>>>>>>>>> On Wed, May 11, 2022 at 4:27 AM Jeffrey Cuenco < >>>>>>>>>>>> jcue...@ucsd.edu> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> 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 >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>> >>>> >>>> >>>> Jeffrey Cuenco >>>> Tech & Marketing Specialist | Cooperative Capitalist >>>> (619) 840-4508 >>>> jeffrey.cue...@gmail.com >>>> >>>> LinkedIn: >>>> https://www.linkedin.com/in/jeffrey-g-cuenco/ >>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.linkedin.com_in_jeffrey-2Dg-2Dcuenco_&d=DwMFaQ&c=-35OiAkTchMrZOngvJPOeA&r=Y3cOHwFMBDXttsqnINKoCyXB-ta6yD08QrmMzW9aeZY&m=iWIZIMJmjHh1GpWVAWXO6iGs641IqKVp_sQbEVackRZ-O08h4pR3Yi11Ui9cE0vs&s=ZGYCaHwWOMjpAqMmR-3m3IR5aUs6l32qanEYTxW5gwU&e=> >>>> >>>>
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com