- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How do the internals work on the filter block, and are they accessible for other uses? For instance, can I implement delay lines with it?
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Digital Filter Block is a 24-bit fixed-point, programmable limited scope DSP engine with a 32-bit AHB-Lite DMA capable
slave interface. DFB contains multiple single port SRAMs and standard cell flops.
Regarding delay lines, are you talking about the bidirectional delay lines for solving differential equations? Can you explain your requirement?
- srim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The DFB component is expected to be available to all users with PSoC Creator v2_0 component pack (CP) 2.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all
Is possible make in new DFB component simple delay, comb filter, chaotic oscillators and other dynamical and DSP function. Please more examples (new component only one example - matrix multiplication).
Is chance for new release - gui editor for filter, feedback, delay, math operation ..... ?
Thanks info and more example
P.S. DFB assembler is very hard and abstract (GUI will be better)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi JLS,
Yes, you can implement the DSP functions using the DFB component. Currently there are no plans of providing a GUI interface or implementing some predefined operations with it. Currently an integrated simulator is provided with the component.
- srim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The DFB IS already availlable. Sit down, take some time and study the datasheet. Is is a rather complex module, but a VERY mighty one, provided with an own state-machine, an integrated assembler and simulator. At first glance I suspect that even algorithms like FFT are possible to be progrqammed into the Digital Filter Block.
Happy Datasheet-Reading
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any news about example for this great module ?
Many thanks help
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi JLS1,
PDF format of the example project which shows the use of DFB is attached for your reference.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The attached pdf is concerned with the Filter-module and not with the Digital Filter Block, which is a different module. Any other PDFs concerning the DFB-module availlable?
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bob,
At present there is no application note which describes the use of Digital Filter Block (DFB) by using assembly. The Filter component which is available with Creator is implemented using the DFB. The GUI will allow the user to set the appropriate frequencies.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any idea when there will be applicatipon notes using the DFB assembler 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oh yess! Waiting for an application note too 🙂
Well even smaller code snipplets (e.g. multiply two values, shift one value und add many values) would realy satisfy me 🙂
Franz, waiting, waiting, waiting .... for dfb 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes math and basic dsp examples - many thanks !
Kamil
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, really want to do some DSP type programming with PSOC5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No one did some dfb assembler yet? 😞
Bye
Franz
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Following is the code snippet for getting values (filter coefficients) from Staging registers A and B; multiplying these values and writing the output values to Holding regsiters A and B.
Please note that all DFB registers are 24 bit. The filter coefficients should be converted to the appropriate format and loaded in the 24 bit Staging registers. If all the coefficients are less than +/-1, then all the calculations will result in 23 bits for decimal points and one for sign format. This simplifies the calculations inside DFB as no shift operation is needed at intermediate nodes so as to align the data in the same format for addition.
// Clear ACU modflag and clear ACU
initial:
acu(clear, clear) dmux(sa,sa) alu(set0) mac(hold)
acu(setmod, setmod) dmux(sa,sa) alu(hold) mac(clra) jmp(eob, waitForData)
// Wait for data to be written to Staging Registers
waitForData:
acu(hold,hold) dmux(sa,sa) alu(hold) mac(hold) jmpl(in1,in2,dataRead)
// Read New Data from Staging Register and multilpy and put dat to holding register B
dataRead:
acu(hold, hold) addr(1) dmux(ba,sa) alu(seta) mac(hold) //Move data from staging register A to ALU o/p
acu(hold, hold) dmux(sa,sa) alu(hold) mac(hold) //Wait for ALU output
acu(hold, hold) addr(0) dmux(sa,ba) alu(hold) mac(clra) //Multiply staging register B & ALU o/p
acu(hold, hold) dmux(sm,sa) alu(seta) mac(hold) //Move MAC o/p to ALU
acu(hold, hold) dmux(sa,sa) alu(hold) mac(hold) //Wait for ALU output
acu(hold, hold) addr(1) dmux(sa,sa) alu(hold) mac(hold) write(bus) // Write the result to holding register A
acu(hold, hold) dmux(sa,sa) alu(hold) mac(hold) //Wait for ALU output
acu(hold, hold) addr(0) dmux(sa,sa) alu(hold) mac(hold) write(bus) jmp(eob,waitForData) // Write the result to holding register B
Regards,
Aniruddha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Not more examples ?
Is possible make karplus strong algoritm in DFB block ?
Thanks info and examples 🙂
Kamil