• Content Count

  • Joined

  • Last visited

About xc6lx45

  • Rank
    Prolific Poster

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
  • Interests
    RF / DSP / algorithms / systems / implementation / characterization / high-speed PA test and creative abuse of Pedal Steel Guitars

Recent Profile Visitors

3456 profile views
  1. Yes, it's just a roundabout way to express it via the speed of light (usually with the effective epsilon_r of the dielectric as extra parameter, then it's really a physical line length). For AD frequency range, using time seems a good choice, IMHO. For example, taking a random Rohde manual: https://cdn.rohde-schwarz.com/pws/dl_downloads/dl_common_library/dl_manuals/gb_1/z/zvl_1/ZVL_Operating_en_09.pdf Page 137 "Phase Delay/El. Length"
  2. The red "X" in "Inter-clock" paths is a dead giveaway ("inter", latin, "from one to the other"): There are two clocks. they aren't simply coperiodic therefore any timing analysis between them will be ... difficult. The solution is, get rid of the unintended clock.
  3. OK I think I got your point. You want to zero out some baseline delay with a phase that's linear with frequency. On a RF VNA the feature would be labeled "electrical length correction" or the like, if that's of any use to locate the parameter.
  4. >> The docs say NF value of FFT is the sum of rms noise in all the bins OK strictly speaking about the math (not AD's implementation), one problem here is we want the readings to be consistent regardless whether a sine signal is exactly on a FFT bin frequency or just halfway between two bins. The typical solution is to use a time domain windowing function before the FFT that "blurs" the FFT's output power spectrum. But when the instrument is calibrated to give accurate spot frequency readings (so the power of a sine wave is accounted for by a single point from the FFT, not an integ
  5. Hi, if I had to solve the problem, I would definitely calibrate with a test signal, for example a sine wave at -20 dBfs and a bandpass noise signal with an equivalent power (I'd leave maybe 20 dB headroom for peaks, starting from Gaussian noise e.g. randn() in Octave. This is a differential measurement so it can be done with near-unlimited accuracy. The math has so many possible pitfalls that I would always run a measurement (if only to validate the calculation).
  6. Actually I'm wondering what you consider "misleading" about your result. This is what a network analyzer will show when you set it up as you did. Some thoughts: - use a linear frequency axis instead of logarithmic (and a linear frequency sweep, at least on a conventional CW-swept VNA) - you need a higher density of points so the eye can unwrap the phase in the 6 kHz region (for an algorithm this might be even enough but it's visually distracting). Right now, it looks like the direction changes but that's a visual artifact from connecting the dots within a single 360-degree zone.
  7. Hi, based on the information from the picture, the lowpass at V_P/V_N has a cutoff frequency of around 560 kHz, then -6 dB / octave. Unless the manual is wrong, I'd guess there is your anti-aliasing filter. My first thought would be to tune it down with e.g. 2x1 kOhms resistors, depending of the highest frequency of interest. Otherwise it's not very effective at the first alias frequency (but good to suppress general high-frequency noise)
  8. Now that is serious business :-) If I approach it from that corner, you'll find an FPGA a breadboard the size of a basketball court but without the wiring delay. But, heed my warning about "synchronous logic". Some of the breadboard thinking doesn't easily translate to FPGA, or it becomes a topic for specialized experts (say, in ASIC emulation). Keywords here for a systematic approach: "Moore / Mealy machines" but forget any "entry-level" textbook material that e.g. builds flipflops from logic gates...
  9. ... and finally: Be aware that any ideas about connecting logic gates like 4000 or 7400-series circuits will most likely send you on a path to nowhere. Modern FPGA design is based on the "synchronous logic" paradigm: Signals are guaranteed to arrive before a clock edge and remain valid for a given time (setup- and hold concept, see static timing analysis) BUT what they are doing in-between is unspecified. Ignore this fact and FPGA design will become dark voodoo and implementation-dependent non-determinism.
  10. BTW what you're describing might happen to someone who never bothers to dig deeper, for example studying the output from the tool, say warnings and timing analysis, and making sense of it. For example, BRAM at higher frequencies requires use of hardware registers, a DSP even multiple levels. This can have serious architectural implications (if you port e.g. a Xilinx J1 design to Lattice you'll run into a few of those). Still, I'd argue that the "partnership" with the tool is much more efficient than reaching the same conclusions from low-level design work. And maybe we shouldn't overestimate o
  11. You might have a look at the open-source Lattice toolchain. It'll probably work in a Linux virtual box on any host (haven't tried). Fighting the tools is, unfortunately, a large part of the FPGA experience. In principle, you should be able to instantiate the hardware-level primitives e.g. LUTs (CLBs) see UG474. You will not have direct control over the routing, though, but that's understandable (e.g. prevent hardware damage from conflicting driver assignments). For an example, check what has been written about the Picoblaze implementation. I think that IP block may be pretty clos
  12. OT but yes I think that is generally the idea. Usually you scale devices down (start with a big one for faster build cycle, ILA etc). Then squeeze the design into the smallest device possible in volume production. If you scale up, it obviously puts more stress on DC / thermal design.
  13. Going through FMC just for 1.8 V IO seems a bit like overkill (depends ultimately on your application). But you may find boards better suited to the application. One such board is Trenz TE0725. You can provide the bank voltages through pins on the header, solder a wire to the on-board 1.8 V regulator (a bit of a hack but easily done, it has a large capacitor where you can take the voltage from). To emulate a PMOD port you may use two insulation-displacement connectors and a SCSI-style ribbon cable. Separate individual wires on one end and push them into connector blades according to
  14. Hint: You can also download the Zynqberry design files from git and use free Altium viewer to look inside.
  15. Hi, did you check the boot mode configuration section (QSPI vs SD)? See https://reference.digilentinc.com/reference/programmable-logic/zybo-z7/reference-manual section 2 - Is the jumper set correctly? - if QSPI, is there a valid FSBL in one board and not the other? I wouldn't be surprised if there a default FSBL in the working board that tries multiple options until it finds the first bootable image. An easy way to check is to clear the flash of the working board. If it stops working, you've found the root cause (obviously it'll "break" the working board temporarily but b