Hi Morag and Dave, Morag, I would like to thank you for your detailed explanation of my questions. I have gained a lot!
Thank you Dave. I didn't understand EQ at first, but your explanation helped me. Also thank you for your PAPER correlator file, which is very helpful to me. Cheers, Wang David Harold Edward MacMahon <[email protected]> 于2022年8月31日周三 21:40写道: > Hi, Wang, > > Morag is right about the mask parameter and BRAM sizing relationship. The > subsystem you showed is used to provide each frequency channel with its own > “equalization” coefficient. In the “round” block, I think “din” and the > output of “coeffs” get multiplied together and then the 4 most significant > bits are kept. The idea was that the coefficients could be set to > flatten out any variation in amplitude across the passband. In practice > we ended up setting all the coefficients to the same value (rather than > individually tailoring them) because that was easier to keep track of. > > One other detail that the lower comment block is trying to make (I think) > is that the data presented at “din” is all the frequency channels for one > input followed by all the frequency channels of another input. I think > this was/is the normal output of the real-to-complex biplex FFT block being > used. > > HTH, > Dave > > On Aug 31, 2022, at 1:07 PM, Morag Brown <[email protected]> wrote: > > Hi Wang, > > It looks like that block is just a bram and it's surrounding logic that's > been wrapped up as a subsystem to make things a bit easier/neater? See > here <https://www.mathworks.com/help/simulink/ug/creating-subsystems.html> for > details on subsystems in simulink. I guess that the "number of fft > channels" parameter is linked to the bram *address width* parameter that > specifies the size of the memory. And then I would guess that the > coefficients for the fft itself are then written to this bram at run time. > If you want to change any parameters of the blocks within this subsystem, > you should just be able to double click on any block (eg. the counter, > delays, bram etc) and change them there, but the subsystem itself was only > set up to have that one parameter, so that is the only one you'd be able to > change in that window. > > Hope that clears things up, > Morag > > > > On Wed, Aug 31, 2022 at 12:47 PM 王钊 <[email protected]> wrote: > >> Hi Jack, >> >> Thanks for your reply. I will read this document carefully. >> >> Cheers >> Wang >> >> Jack Hickish <[email protected]> 于2022年8月31日周三 16:35写道: >> >>> Hi Wang, >>> >>> If you haven't seen it already, this memo is probably useful -- >>> https://github.com/casper-astro/publications/blob/master/Memos/files/Black_box_memo.pdf >>> >>> The PCORE yellow block doesn't contain anything because it doesn't >>> actually do anything in FPGA logic. All it does is tells the toolflow to >>> include extra source files in your build, which should have been >>> pre-generated. The memo above explains how to do this. >>> >>> Cheers >>> Jack >>> >>> On Wed, 31 Aug 2022 at 09:00, Morag Brown <[email protected]> wrote: >>> >>>> Hi Wang, >>>> >>>> I can't answer the first question, and your third is a bit confusing. >>>> Can you send a screenshot of the block you mean? >>>> >>>> As for the shared_bram - this instantiates bram on hardware that is >>>> exposed to the axi/wishbone (depending on the hardware) bus. You can write >>>> values (*vals*) to this block via casperfpga by packing your data >>>> using "*buf = struct.pack('>1024i', *vals)"*, and then write to the >>>> bram using* "fpga.write('memory device name', buf, offset)"*. To read >>>> from the bram you would do a "*struct.unpack('>1024i', >>>> fpga.read('memory device name',1024*4,0))"* call - the values 1024, 4 >>>> and *i* will change depending on the depth of you bram and your data >>>> width. Within the design, you need to have a counter on the address line to >>>> iterate through the addresses that you are writing to, and if you are >>>> planning on writing to the block via casperfpga then you should set *write >>>> enable *and *data input* to 0; and if you are planning to write in >>>> over the data line, then *write enable* should be set high with the >>>> data line tied to wherever your values are coming from. In simulation, you >>>> can write an array of values (for simulation only) to the "initial values" >>>> text box within the block that opens when you double click. Then to see >>>> what the output is doing, you can add a simulink scope block to the bram >>>> output. >>>> >>>> Hope this helps a bit! >>>> >>>> Morag >>>> >>>> On Wed, Aug 31, 2022 at 7:48 AM Wang <[email protected]> wrote: >>>> >>>>> Hello CASPER, >>>>> >>>>> I am currently looking at David's simulink model of PAPER correlator >>>>> and some other people built simulink models. >>>>> >>>>> I met some questions in the process of looking at it. >>>>> I have been exposed to simulink for a short time and it is not clear >>>>> how some modules work. >>>>> >>>>> The first question.Double-click on the PCORE block and prompt me for a >>>>> path. I imitate David's input, but no response. Then I check David's PCORE >>>>> block inside also nothing, may I ask what is wrong with my operation? >>>>> >>>>> The second question.I see Share_BRAM blocks used a lot. I want to >>>>> understand the details of this block, the official website does not seem >>>>> to >>>>> have Share_BRAM description. Also, I want to see what is happening to >>>>> Share_BRAM during simulation. What blocks can I do this with? >>>>> >>>>> The third question.I see that a yellow block (not the same color as >>>>> Casper-libary's block) does not have a library link. A window appears >>>>> after double-click : >>>>> Function Block Parameters: block's name >>>>> Subsystem (mask) >>>>> Parameters >>>>> Number of fft channels (same ad fft prompt)(2^?) >>>>> Is it a Subsystem block? If yes, how to add the function of double >>>>> click setting parameter? >>>>> >>>>> I really hope you can reply to me, I will be very grateful! >>>>> >>>>> BW >>>>> Wang >>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "[email protected]" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/ebeaaba6-c293-4e8b-b874-6ee82b6e387an%40lists.berkeley.edu >>>>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/ebeaaba6-c293-4e8b-b874-6ee82b6e387an%40lists.berkeley.edu?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "[email protected]" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0Te8H4j7OH87VyJB%2BmEC%3DhO4aAmX_DnGG6RQKYMEUhxJAA%40mail.gmail.com >>>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0Te8H4j7OH87VyJB%2BmEC%3DhO4aAmX_DnGG6RQKYMEUhxJAA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "[email protected]" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKS%3D2mgGySMho%2B2%3D8n0fnW-a2hAtmYaFgEGTmj3A5pUt-XQ%40mail.gmail.com >>> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAG1GKS%3D2mgGySMho%2B2%3D8n0fnW-a2hAtmYaFgEGTmj3A5pUt-XQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "[email protected]" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAEq%3DE3G7Rc80HFjCwopc0yyBBNMOC7OeKLQJ7yHDvdrUAuXO9A%40mail.gmail.com >> <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAEq%3DE3G7Rc80HFjCwopc0yyBBNMOC7OeKLQJ7yHDvdrUAuXO9A%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > > -- > You received this message because you are subscribed to the Google Groups " > [email protected]" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TchsyzGj3ig9NsWw3Tuw8PJH4oorWqQJn6i50LSX1uS%2Bg%40mail.gmail.com > <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAGH-0TchsyzGj3ig9NsWw3Tuw8PJH4oorWqQJn6i50LSX1uS%2Bg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups " > [email protected]" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/70DC62B0-0D7D-4AD8-90AB-70AC37392F99%40berkeley.edu > <https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/70DC62B0-0D7D-4AD8-90AB-70AC37392F99%40berkeley.edu?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/lists.berkeley.edu/d/msgid/casper/CAEq%3DE3EgDukgErqQSkG9Fq192z7FKx6KjG23SJyj%2B%3DsAseTO5A%40mail.gmail.com.

