Max achievable frequency in HLS code

I am looking for the maximum frequency (smallest clock period) at which I could run the test code that I attach, targetted for Zynq (ZC702). It is the design of a very simple IP block with hls::stream input and output , with an s_axilite control.
It simply computes two multiplications and the expf function, all in single-precision floating point and inside a pipelined for loop with an initiation interval II=1.
1) If the solution is set with a clock period of 10.0ns, then synthesis and implementation (export) will meet the timing (I am using Vivado HLS 2014.3). But if I lower it to 5.0ns (as an example), then synthesis expects 4.36ns (uncertainty 0.62ns), but implementation will report 6.011ns and fail. (I am aware that synthesis only estimates the timing).
2) I have also read the post in the HLS forum regarding "registered stages" and the suggestion of trying "reg(...)" available in #include <hls/utils/x_hls_utils.h>. If I apply this idea, then synthesis estimates 5.29ns (uncertainty 0.62ns), but implementation reports 5.681ns.
2a) If I only compute the reg( expf (...) );  inside the for loop, then implementation will just achieve 4.990 ns.
Based on this behaviour, I cannot find a procedure to find out the minimum clock period (max clock frequency) at which the IP block will work. (I cannot keep running implementation (RTL export) for every idea I come up with)
QUESTION 1: Could you please provide guidance on this regard?
QUESTION 2: just because the depth of the pipelined for loop increases should not mean that the minimum clock period increases, am I right? (I would expect the tool to automatically register intermediate results accordingly in order to achieve the targetted clock period). Is there an alternative to reg(...), or any other approach I could follow?
Thanks in advance,
Javier
 

hello
In your code if you think that the FSM is the issue, then you should remove the for loop!
I'm not joking.. when you remove it, then your IP will have an II of 1 and a latency N; but from your integration perspective, this is almost the same: you still need AXIS IPs to push data to the VHLS IP.
The fact that your VHLS IP read an unknown number of samples and then stops and has to be restarted in SW doesn't help you. It's a bit of overhead actually.
If you remove the loop you should find that it goes faster.
Last point, I don't know what is the F max achievable in the ZC702 's programmable logic but I think that 200 MHz should already be plenty!?
What is the rest of the design going?

Similar Messages

  • 500 Kbps Max Achievable Speed

     Hi there
    I had great broadband for the first couple of weeks until my wireless router stopped working now replaced and never been the same since.
    I have been getting similer speeds for the last 3 weeks I believe help is needed.
    Downloads slow and impossible to watch you tube or ITV player Buffer Buffer Buffer (-:
    Lorraine
    FAQ
    Test1 comprises of two tests
    1. Best Effort Test:  -provides background information.
    Download Speed
    162 Kbps
    0 Kbps
    500 Kbps
    Max Achievable Speed
     Download speedachieved during the test was - 162 Kbps
     For your connection, the acceptable range of speedsis 100-500 Kbps.
     Additional Information:
     Your DSL Connection Rate :574 Kbps(DOWN-STREAM), 440 Kbps(UP-STREAM)
     IP Profile for your line is - 350 Kbps
    The throughput of Best Efforts (BE) classes achieved during the test is - 0.42:7.42:92.68 (SBE:NBEBE)
    These figures represent the ratio while sententiously passing Sub BE, Normal BE and Priority BE marked traffic.
    The results of this test will vary depending on the way your ISP has decided to use these traffic classes.
    2. Upstream Test:  -provides background information.
    Upload Speed
    359 Kbps
    0 Kbps
    440 Kbps
    Max Achievable Speed
    >Upload speed achieved during the test was - 359 Kbps
     Additional Information:
     Upstream Rate IP profile on your line is - 440 Kbps
    We were unable to identify any performance problem with your service at this time.
    It is possible that any problem you are currently, or had previously experienced may have been caused by traffic congestion on the Internet or by the server you were accessing responding slowly.
    If you continue to encounter a problem with a specific server, please contact the administrator of that server in the first instance.
    Please visit FAQ section if you are unable To understand the test results.

    can you post the adsl stats from your router may need to 'show detail' to get all stats (if hub enter 192.168.1.254 in your browser and navigate to adsl or use a-z, if netgear enter 192.168.0.1)
    Someone may then be able to offer help/assistance/suggestions to your problem
    If you like a post, or want to say thanks for a helpful answer, please click on the Ratings star on the left-hand side of the post.
    If someone answers your question correctly please let other members know by clicking on ’Mark as Accepted Solution’.

  • How to achieve Incremental deployment of Code Files to different environments of windows azure using TFS and Visual Studio ?

    Hi
    We are new to Windows azure and are developing a web application. In the beginning of the project , we have deployed complete code using Sitefinity Thunder to different environments which actually publish complete code. But now as we are in the middle of development
    , we are just required to upload any new files created which can be quite less in numbers (1 or 2 or maybe few). Now if we deploy with thunder , it publishes all files and then deploys complete code which takes good amount of time. Hence we are thinking to
    attach each Azure Cloud Service which is actually a different environment like staging, UAT to a TFS branch and then just check in code from local development machine to TFS and then deploy only checked in files to azure environment linked to TFS.
    I hope this possible but if you can help send some links where I can see how to achieve this , that will be helpful. 
    Also I would like to know whether a single cloud service can be linked to a single TFS branch or multiple cloud service can be linked to a single TFS repository? Why I am asking is – because we want to deploy a checked in files revision number to a staging
    cloud service and then will test there and then if everything works well then will be required to deploy these revision files to the next cloud UAT cloud service and then production cloud service. Please help.

    Hi,
    We can use TFS to manage our azure cloud service application code, refer to the following to get more information about how to deploy sitefinity to azure.
    #http://www.sitefinity.com/documentation/documentationarticles/manually-deploying-your-project-to-windows-azure
    #http://www.youtube.com/watch?v=E2aZ7lE1JUA
    #http://www.sitefinity.com/documentation/documentationarticles/sitefinity-azure-configuration
    If any question about sitefinity, please redirect to sitefinity forum:
    http://www.sitefinity.com/developer-network/forums if the issue was related with azure, welcome to post again.
    Best Regards
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Selecting max date for specific 'operation' code

    I have the following scenario: a history table that keeps track of the 'operation' and the date of the operation. For example, the operation field can have a code of U (for update), C (for closed), O (for re-opened), A (for approved), etc.
    The goal of this history table is to keep track of all of the modifications made. Hence, a particular record of interest can have more than one 'U' operation documented, C operation, etc.
    How can I choose the max date for each operation.
    I was diong the following in my PL/SQL:
    BEGIN
    SELECT operation_code, o_date, user INTO lv_operation_code, lv_date, lv_user FROM table1 WHERE unique_id = pv_id AND operation_code = U' AND o_date = (SELECT max(o_date) FROM table1 WHERE unique_code = pv_id);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN NULL;
    END;
    I then have another begin statement for the 'C' operation, etc.

    Hi,
    OraclePolzovatel wrote:
    ... I was diong the following in my PL/SQL:
    BEGIN
    SELECT operation_code, o_date, user INTO lv_operation_code, lv_date, lv_user FROM table1 WHERE unique_id = pv_id AND operation_code = U' AND o_date = (SELECT max(o_date) FROM table1 WHERE unique_code = pv_id);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN NULL;
    END;
    I then have another begin statement for the 'C' operation, etc.Are you sure that's what you're doing? There seem to be errors, such as unmatched quotes.
    Instead of doing a single SELECT with something like "operation_code = 'U'" in the WHERE-clause, you could write a cursor with "GROUP BY operation_code".

  • Can't set max\min frequencies with CPUpower

    Hi all ! And happy easter to everyone !
    I'm having a problem with CPU Frequency Scaling... I want to set maximum and minimum frequencies according to mi CPU specs, but I'm unable to do this.
    Well, starting from the beginning :
    I've a Samsung NP535U3C laptop, with and AMD A6-4455 APU. I've two boost pstates, in fact TurionPowerControl tells to me 
    [alastor@NP535U3C ~]$ sudo TurionPowerControl -l
    TurionPowerControl 0.44-rc2 (export)
    Turion Power States Optimization and Control - by blackshard
    Main processor is Family 15h (Bulldozer/Interlagos/Valencia) Processor
    Family: 0xf Model: 0x0 Stepping: 0x1
    Extended Family: 0x15 Extended Model: 0x10
    Package Type: 0x0 BrandId: 0x0
    Machine has 1 nodes
    Processor has 1 cores
    Processor has 7 p-states
    Processor has 2 boost states
    Power States table:
    -- Node: 0 Core 0
    core 0 pstate 0 (pb0) - En:1 VID:80 FID:10 DID:0.00 Freq:2600 VCore:0.5500
    core 0 pstate 1 (pb1) - En:1 VID:80 FID:7 DID:0.00 Freq:2300 VCore:0.5500
    core 0 pstate 2 (p0) - En:1 VID:90 FID:5 DID:0.00 Freq:2100 VCore:0.4250
    core 0 pstate 3 (p1) - En:1 VID:96 FID:2 DID:0.00 Freq:1800 VCore:0.3500
    core 0 pstate 4 (p2) - En:1 VID:108 FID:14 DID:1.00 Freq:1500 VCore:0.2000
    core 0 pstate 5 (p3) - En:1 VID:114 FID:10 DID:1.00 Freq:1300 VCore:0.1250
    core 0 pstate 6 (p4) - En:0 VID:116 FID:2 DID:1.00 Freq:900 VCore:0.1000
    --- Node 0:
    Processor Maximum PState: 6
    Processor Startup PState: 4
    Processor Maximum Operating Frequency: 2600 MHz
    Minimum allowed VID: 123 (0.0125V) - Maximum allowed VID 0 (1.5500V)
    Processor AltVID: 58 (0.8250V)
    Done.
    This is confirmed also by cpupower :
    [alastor@NP535U3C ~]$ sudo cpupower frequency-info
    analisi della CPU 0:
    modulo acpi-cpufreq
    CPU che operano alla stessa frequenza hardware: 0 1
    CPU che è necessario siano coordinate dal software: 0
    latenza massima durante la transizione: 4.0 us.
    limiti hardware: 1.30 GHz - 2.10 GHz
    frequenze disponibili: 2.10 GHz, 1.80 GHz, 1.50 GHz, 1.30 GHz
    gestori disponibili: conservative, ondemand, performance
    gestore attuale: la frequenza deve mantenersi tra 1.30 GHz e 2.10 GHz.
    Il gestore "ondemand" può decidere quale velocità usare
    in questo intervallo.
    la frequenza attuale della CPU è 1.50 GHz (ottenuta da una chiamata diretta all'hardware).
    boost state support:
    Supported: yes
    Active: yes
    Boost States: 2
    Total States: 7
    Pstate-Pb0: 2600MHz (boost state)
    Pstate-Pb1: 2300MHz (boost state)
    Pstate-P0: 2100MHz
    Pstate-P1: 1800MHz
    Pstate-P2: 1500MHz
    Pstate-P3: 1300MHz
    Pstate-P4: 900MHz
    So, my question is, why the ondemand governor can switch only between 2.10GHz and 1.3Ghz ? Should'nt switch between 2.6Ghz and 900MHz ?
    I've tried to set lower frequency to 900 MHz whit the command :
    cpupower frequency-set -d 900MHz
    but nothing changed, the lower frequency still remained 1.3Ghz
    I've also tried to set the maximum and minimum frequencies in /etc/default/cpupower :
    # Define CPUs governor
    # valid governors: ondemand, performance, powersave, conservative, userspace.
    governor='ondemand'
    # Limit frequency range
    # Valid suffixes: Hz, kHz (default), MHz, GHz, THz
    min_freq="900MHz"
    max_freq="2600MHz"
    # Specific frequency to be set.
    # Requires userspace governor to be available.
    # Do not set governor field if you use this one.
    #freq=
    # Utilizes cores in one processor package/socket first before processes are
    # scheduled to other processor packages/sockets.
    # See man (1) CPUPOWER-SET for additional details.
    #mc_scheduler=
    # Utilizes thread siblings of one processor core first before processes are
    # scheduled to other cores. See man (1) CPUPOWER-SET for additional details.
    #smp_scheduler=
    # Sets a register on supported Intel processore which allows software to convey
    # its policy for the relative importance of performance versus energy savings to
    # the processor. See man (1) CPUPOWER-SET for additional details.
    #perf_bias=
    # vim:set ts=2 sw=2 ft=sh et:
    but again, nothing canged.
    I've tried ondemand and userspace governors but the situation is the same whit both of them, I always get hardware limits 1.30 - 2.10 GHz.
    I've also tried to set the processor.ignore_ppc=1 boot flag, but it was selfish.
    Someone could help me ? At least to set the lower frequacy to 900MHz so I can save a bit of battery.
    Thank you.

    Hi ! And thank you for your reply !! I'm always on conservative when I'm on battery to save some power. At this point I think I should report the problem to AMD. However here is my /proc/cpuinfo :
    [alastor@NP535U3C ~]$ cat /proc/cpuinfo
    processor : 0
    vendor_id : AuthenticAMD
    cpu family : 21
    model : 16
    model name : AMD A6-4455M APU with Radeon(tm) HD Graphics
    stepping : 1
    microcode : 0x6001119
    cpu MHz : 1300.000
    cache size : 2048 KB
    physical id : 0
    siblings : 2
    core id : 0
    cpu cores : 1
    apicid : 16
    initial apicid : 0
    fpu : yes
    fpu_exception : yes
    cpuid level : 13
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold bmi1
    bogomips : 4193.77
    TLB size : 1536 4K pages
    clflush size : 64
    cache_alignment : 64
    address sizes : 48 bits physical, 48 bits virtual
    power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro
    processor : 1
    vendor_id : AuthenticAMD
    cpu family : 21
    model : 16
    model name : AMD A6-4455M APU with Radeon(tm) HD Graphics
    stepping : 1
    microcode : 0x6001119
    cpu MHz : 1300.000
    cache size : 2048 KB
    physical id : 0
    siblings : 2
    core id : 1
    cpu cores : 1
    apicid : 17
    initial apicid : 1
    fpu : yes
    fpu_exception : yes
    cpuid level : 13
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold bmi1
    bogomips : 4193.77
    TLB size : 1536 4K pages
    clflush size : 64
    cache_alignment : 64
    address sizes : 48 bits physical, 48 bits virtual
    power management: ts ttp tm 100mhzsteps hwpstate cpb eff_freq_ro

  • How can I achieve this with less code or faster?

    Hi Folks,
    I have 2 database tables, 'products' and 'products_staging'.
    Every day, the 'products_staging' table is updated with a fresh
    batch of products (which are imported from xml files in a seperate
    process using Navicat software). I need to somehow compare this
    database with the 'products' database to look for specific changes
    - i.e changes in price, deleted products, or new products. As some
    of the fields in the 'products' database are manually altered, such
    as the product name, I cannot do a straight sync with them.
    Therefore, I use the only field that will remain unchanged as the
    comparison field.
    The somewhat crude method I have come up with is to loop
    through the 'products_staging' table, looking for that specific
    field against the 'products' table. If it finds it, it then checks
    for a change in the price field (i.e has the price of that product
    changed). If there is a change, the 'products' table is updated.
    Likewise, if it's not found, it's treated as a new product and
    inserted as such and so on. At the end of the loop, the record is
    deleted from the 'products_staging' table - therefore at the end of
    the process, the table is empty ready for the next import the
    following day.
    At the moment, the database handles around 300,000 rows - but
    at some point I'm likely to be dealing with many more than that.
    It's working as it is, but taking a considerable time to do so -
    around 4 hours to go through the lot.
    Any suggestions on a better way of accomplishing this? My
    existing crude code is pasted below (the use of maxrows and the
    redirect is to prevent time-outs - parse2.cfm is virtually
    identical to this);

    Firstly, if possible, get the DBs to talk to each other
    without involving
    CF. That will just be slowing things down. CF's for
    generating HTML
    pages, and whilst it CAN interact with databases, it's not
    the best tool
    for the job.
    If that's not possible, use CF as a bridge between them, but
    only to bulk
    insert all the staging data into a temporary table (either
    literally a
    temporary table, or a permanent one used for holding data
    temporarily ;-)
    on the production DB, and then use a DB procedure to process
    all the data,
    again using only the DB server to do so.
    Lastly, if you MUST use CF to do the data manipulation, then
    minimise your
    hits to the DB. Instead of doing single hits to the
    production DB in your
    prodconnect query, get ALL the data you're likely to need for
    updates in
    one hit, then use CF to generate a payload for a bulk update;
    similarly any
    missing data from production can be inferred from that the
    difference
    between the staging and update data, and that can be used as
    your source of
    payload for a bulk insert.
    As a rule of thumb, if I find myself needing to perform
    single-row queries
    within a loop of another query, I start thinking I'm doing
    something wrong.
    Oh, yeah: when dealing with large amounts of queries like
    that, ALWAYS use
    <cfqueryparam> tags instead of static SQL strings.
    Every non-parameterised
    query you pass to the DB engine will need to be compiled
    first, and then
    it's also cached. Which slows you down, and eats memory on
    the DB server.
    This will leave the problem that you're not going to be
    generating your
    report as you go. However I imagine that's a "nice to have"
    compared to
    ensuring the thing actually works. You can generate your
    report
    separately, after the data processing has been done. I'm
    fairly certain
    you would be able to coerce a log out of the DB server,
    somehow, anyway.
    Adam

  • Max. sample frequency with "Modulus Breakpoint (on-board re-enable).vi"

    Hi all,
    I'm using the PCI-7344 board and I'd like to trigger an external device. The trigger frequency should be very high (> 4 kHz).
    Is it possible to realize such a sample rate with breakpoints and an onboard program like: "Modulus Breakpoint (on-board re-enable).vi".
    I don't need a visual indicator and so I don't need the 10 ms delay in the second part.
    What is the timeout in the first part for?
    Thanks in advance for your help.
    Best regards
    Attachments:
    Modulus_Breakpoint_(on-board_re-enable).vi ‏114 KB

    Depending on the movement of a xy - stage (controlled by the motion controller) I'd like to trigger a pulsed laser. Maybe every 2 µm I need a short TTL pulse to release a laser pulse.
    I tried a software based solution as well as a on-board solution. Both ways are working well but unfortunately the software based solution is limited to 20 Hz and the on-bord solution is limited to 50 Hz.
    Because of that I have to decrease Vmax in my application to 100µm/s.
    Well , it would be much easier to trigger the laser with an adjusted frequency. The problem is the acceleration and deceleration of the stage. Because of that the pulses will overlap much more at the edges and that's the fact I wanna avoid.
    Thanks for your help. Best regards

  • What is the max sampling frequency of a BNC-2120

    my windows platform is NT and i have labview 6.1

    Hi Ulises,
    I don't quite undersatnd what you mean? The BNC-2120 is a connector block which interfaces to E-Series and 671x boards. The BNC-2120 simplifies the connection of real world signals to the DAQ device. There is no sampling rate you can set. The limiting factor of the samplingrate is the DAQ Device you're using, not the BNC-2120.
    I hope I haven't misunderstood your question.
    Regards,
    Luca
    Regards,
    Luca

  • Max Achievable Speed is lower than few moths ago

    Hi guys,
    last days I noticed drop of my speed. I checked just once it, right after activating.
    Had 12mb download. All in my topic about stability from november LINK
    For last 2 weeks (or more, maybe?) its about 4mb download.
    Can anyone explain whould could happened and what could I do to back my high download speed?
    Have Hub5
    Cheers!
    Matt.

    Hi Welcome to the community forums
    Here is a basic guide to getting help from the community members done by CL Keith Please read through the link posted http://forumhelp.dyndns.info/speed/first_steps.html
    once you have posted the information asked for then the community members can help you more
    if using a hub 4 locate these lines located in the hub logs
    Lines should look like this
    19:11:29, 07 Nov. (2290101.460000) DSL noise margin: 7.00 dB upstream, 6.10 dB downstream
    19:11:29, 07 Nov. (2290101.390000) DSL line rate: 448 Kbps upstream, 288 Kbps downstream
    Thank You
    This is a customer to customer self help forum the only BT presence here are the forum moderators
    If you want to say thanks for a helpful answer,please click on the Ratings star on the left-hand side If the reply answers your question then please mark as ’Mark as Accepted Solution’

  • 6120 counter max frequency

    I am trying to set the max frequency for PCI-6120 counter. By the card specification, the counter's max source frequency is 20MHz. However, on MAX software test panel, if the counter frequency is set greater than 5MHz, program pops up an error stating the max valid value is 5e6 MHz.. Attached is the error message. Did I do anything wrong? Or special card setting is needed. Please help. Thanks very much.
    Attachments:
    NI 6120 counter error message.jpg ‏36 KB

    Hi windwalker,
    The max source frequency is 20 MHz. The source is an input to the counter which is divided down to produce the output signal:
    The default behavior is that the counter will count to N, and then toggle its output.  N must be at least 2, so the maximum frequency you can generate with the default (toggle) mode is 5 MHz (2 ticks high, 2 ticks low of the 20 MHz maximum source).
    The other mode is "pulse" mode, where the counter will count to N and then a pulse its output.  You can end up getting a pulse every 2 ticks of the source, which could give you a 10 MHz clock.  You can't set this mode in the test panels, but here's an example in LabVIEW showing how to get a 10 MHz output (the "External Clock" can be the 20 MHz timebase).
    However, if you're just trying to generate a 10 MHz continuous output, then I suggest using the Frequency Output which is a 4-bit counter that can output a small set of frequencies including 10 MHz -- {10 MHz,100 kHz} / {1:16}.  It is programmed similar to the other counters.
    Best Regards,
    John Passiak

  • SDRAM Frequency for 845E MAX?

    In my bios I've noticed the setting, SDRAM Frequency. There are 3 settings to chose from 200MHz, 266MHz, and Auto which is the default. Which setting will give me the best preformance? Also my board (845E MAX) says it excepts up to PC2100, will using say PC2700 or higher result in better OC numbers?

    I would leave the SDRAM Frequency to auto. Wouldn't matter if you were running a 533mhz FSB CPU because you are Maxing the frequency for that board. If you get PC2700 it would only be useful for overclocking. Other than that itll act as PC2100 at default.

  • Vivado HLS 2015.x config_interface -register_io

    Hello!
    In VHLS 2015.x there is new option: config_interface -register_io. From User guide it is not clear to what types of interface this option can be applied though. Can you confirm that this option can be applied to ap_bus m_axi interface signals? If yes does this mean that AXI Register Slice core is additiobally inserted on this m_axi interface? 
    I am using Virtex-7 2000t device and trying to fight timing issues in my hls core by flourplanning hls core to different SLR. HLS core has AXI master interface to AXI bus with external DDR memory. All AXI bus components including AXI Interconnect IP and DDR3 MIG core are flourplanned to SLR1 and HLS core to SLR2. I know that it is critical to register all nets that cross SLR boundary on both sides of it. I can insert AXI register slice on AXI Interconnect IP  port and I what to do the same on HLS side. 
    If config_interface -register_io can not do what I want my second thought was to add one more AXI Interconnect IP on HLS side inserting AXI register slice on port that is to connect to main AXI Interconnect.
    What can you suggest?  
     

    Thanks for the reply.
    Took a while to test your suggestion.
    axi mmu was not enough to change the behavior of the address editor.
    Still, I failed to have my AXI master interfaces capable of 64 bit addressing.
    The axi master should support 64 bits for the axi_mmu to map 64bit addresses.
    Though, Vivado (address editor) thinks my module has only 32bit aw_addr / ar_addr channels, even though I do have 64bit aw_addr / ar_addr channels.
    Actually,
    My goal was to provide a DMA64 (high memory DMA in other cases)capability to a prototype DRAM based SSD on the VC709 board.
    This function was required in order to eliminate the need of bounce buffers (bouncing high memory buffers into DMA'able addresses via memcpy & stuff) in the host side.
    In this case, the AXI master is my module, accessing to the axi pcie axi slave port, looking at axi2pci apertures.
    I had to access axi2pci apertures which has axi addresses mapped way above 0xFFFF_FFFF (something like 0x0001_0000_0000_0000 ~ 0x0001_FFFF_FFFF_FFFF axi2pci apertures, to access host side DMA addresses such as 0x0000_0003_EC0B_0000)
    During the way, I failed to address axi2pci above 32 bits even though I gave "config_interface -m axi_addr64" with my HLS module.
    Eventually I managed to use the axi datamover IP, or axi cdma IP in order to achieve my goals, since the IPs were capable of addressing 64 bit axi addresses.
    Though I am still wondering about 64 bit address generation in HLS.  Actually what happens when we apply "config_interface -m axi_addr64" directive. 
    If it worked as I intended, I could have made AXI4 mm transactions directly from my HLS code.
    Regards,
    Woong.
     

  • Frequency sweep with peak frequency

    Hi guys, I need some help here. I´m using a NI 9215 to do a frequency sweep from 30 to 90 Hz.
    So far so good. Now I need a resulting resonance frequency at highest voltage.
    I tried a max peak frequency VI but couldn´t get it to work.
    Any idea what to do?
    mfg, Andi
    ok, here is my sweep.vi for better understanding
    Message Edited by andinew on 08-11-2009 04:14 AM
    Attachments:
    sweep.vi ‏216 KB
    create_log_frequencies.vi ‏15 KB

    Hi Andi,
    one thought first off: looking at your "create_log_frequencies.vi", I realized that it generates linear frequency hops, not logarithmic ones...
    But on to your question: to find the frequency with the highest amplitude (this will be your resonace, I guess), you will have to look at the entire signal - your "sweep.vi" code iterates the measurement and interpretation five times per second, independantly of the speed of the sine sweep.
    My advice would be to generate one waveform containing the whole sweep run, and writing this sweep block for block with a constant sample rate onto the output. You could then read back the response with blocks of the same size as your output, do the single tone measurement on this block and store the resulting frequency and amplitude in an array preserved trough a shift register or simply into two auto-indexing tunnels. The latter is okay as you don't need a "while loop" in the measurement loop (you know how long the analog output loop runs - why not use this information to configure a "for loop").
    After your analog input "for loop" has finished, search your amplitude array for the maximum - then use the found element's index to index the frequencies array and return the corresponding resonance frequency.
    A good starting point could be the example I wrote a couple of month ago: it runs continuously the same "sweep" (you'd have to adjust the waveform, I know) and reads back the stimulus and the response (wire the output to your probe and parallely to ai0, your response signal will be connected to ai1). You can then insert tone measurements etc.  at the marked section...
    When trying to open the example, you will be prompted to find a VI called "_Get Terminal Name....vi" - you can find this VI at the following location: C:\Programme\National Instruments\LabVIEW 8.5\examples\DAQmx\_Utility\_Utility.llb
    As an afterthought: the "phase difference" you are calculating between every other sample of the analog measurement array is a bit confusing: if oyu need the phase difference between the original signal and the stimulus response, you will need to wire the stimulus to a second input and compare the phases of the two separate signals...
    Best regards,
    Sebastian
    Message Edited by SFK on 08-12-2009 04:12 PM
    Attachments:
    Multi-Function-Synch AI-AO mit Signalgeneration.vi ‏91 KB

  • Wave Frequency

    The Level of Wave Frequency
    https://www.reddit.com/3f086t/
    https://www.reddit.com/3f0908/

    Hello
    First I would like to thank for your reply
    I am sampling far beyond Nyquist frequency so, as you say, there shouldn't be problems...
    Answering your questions:
    1) As I mentioned, I'm doing tests, so I'm using a domestical electrical plug - 220V and 50Hz -, but I'm not looking to the spectrum. Another question: What is your suggestion to analyze the spectrum? What command should I use?
    2) No filters. Just a simple voltage divider with 1/100 relation to connect it to the DAQ
    Assuming that domestic plugs really have 50Hz, I verififed the influence of sampling freq, but, for phase I don't have a clue if it is correct or not.  
    I attached the code as bitmap. I connected the DAQ Assistant dialog box to Tone Measurement box, where I take max Amplitude, Frequency and Phase.
    Thanks for your help
    Attachments:
    e.JPG ‏120 KB

  • Image processing - doubling frequency?

    There's some image processing commands in photoshop, like high pass and blur (i.e. low pass). I want more. Is there a way to achieve frequency doubling, or better yet, frequency x N where N is any number the user can specify?
    This may be useful for making coarse skin texture look finer. It can be implemented by diving the selected area into small squares, and then shrink each squares to half their original sizes. This would make the details look finer grain (hence frequency doubling). It would open up gaps between the squares, which can be filled in by taking additional samples and shrinking them to fill the gaps. This is similar to frequency doubling in audio processing.
    I'm using cs4 extended. Is there an add-on to do this?

    Yes there is a retouching method that uses "so called" high frequency and low frequency layers. There is a great discussion in the retouching section on a site called Model Mayhem. Some pretty clever retouchers hang out there. You can use this effect to smooth skin for portraits, and you can vary the smooting from just a small amount to some of the images used in makeup advertising where the model has a perfect yet sort of plastic looking skin. I use this technique now and again working on portrait subjects that have less than perfect skin.
    Basically you make two copies of your opening layer, name the first layer "Low Frequency" and the second layer "High Frequency".
    Select the Low Frequency Layer and apply a small amount of Gaussian Blur around 2.9 is a good starting point
    Now go to the High Frequency Layer and go to Image and select apply image. In the drop down select your low frequency layer and check the invert box and set the blending mode to add with a scale of 2 offset 0 and apply then change the Layer Mode to Linear Light. You now have two retouch layers you can work on and you still maintain some texture in the skin.
    To finish off, select the Low Frequency Layer and duplicate and name as smooth skin. Apply a blur, surface blur works best with a starting point of Radius = 7 and Threshold = 6 apply and then create a black mask, Now painting with white over selected parts of the image will smooth out the skin.
    Experiment with the settings to get the effect you are looking for. Also, when cloning and healing on the high and low frequency layers look to see what is effected which will give you a better idea on the seperation technique.
    Here is a quick example of this technique
    The Before Image
    The After Image
    Mike

Maybe you are looking for

  • Regarding ALV GRID

    Hi all, i am having one issue regarding ALV GRID. my issue is after executin  report O/P in grid format is ok, but the same format i want to display when u click print preview or when u execute it in back ground, it is displaying as same as ALV LIST,

  • Errors by creating new logical Port

    Hy experts, i have a Problem with creating a logical port for an SAP standard Web- service. We need to use a web- service in our Projekt. Because this, i try to create a test-system, using webservice. The real webservice, i have to use, is still unde

  • Server 2012 with AD

    Hello Guys and Girls, my name is Chuck. I am not a wizard when it comes to Server 2012. I recently acquired a job for a company that needed Active Directory and a VPN. The previous IT guy set up Active Directory already. I couldn't get Server Manager

  • Changing backround color

    I cant change the backround color for my pages poster document, does anybody know how I can do it or if I can for that matter?

  • How to open .pbd file in PowerBuilder IDE?

    Hi I am bit new to powerbuilder. There is an application build in powerbuilder now I have to look to which data source its pointing to. The only file I have .pbd file. But when I open it with notepad++ it show data in some wired manner. Is there a wa