• Content Count

  • Joined

  • Last visited

  • Days Won


Notarobot last won the day on June 14

Notarobot had the most liked content!

About Notarobot

  • Rank
    Prolific Poster

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Notarobot

    VHDL: Why are those 2 variants not equivalent?

    I don't believe this is a bug but rather a misunderstanding of VHDL. Unfortunately, VHDL process block is very vaguely described in textbooks. In VHDL statements within the process are carried out sequentially. Moving a statement from one position to another can produce a different outcome. However, it depends on a type of statement, for example, values assigned to signals are not carried out immediately but scheduled to occur at the end of the processor or on clock events. I would recommend to check how it works by simulating a piece of code in doubt.
  2. Notarobot

    CAN Data in PL

    Hi CodeMagics, Let me try to answer your questions. 1. Unless you require extremely low latency the PS can be suitable for real time. You just need to operate it in a standalone (or bare metal) mode. 2. To my knowledge CABbus does not have master-slave relationship between nodes. The user can define such by programming the messages' ID. Otherwise all nodes can send messages at any time. 3. Due to its complexity CAN bus requires substantial code overhead. To my knowledge there is no open source VHDL or Verilog library supporting CAN. However, there are plenty of IP for microcontrollers. Xilinx offers free IP for Zynq PS as well. You can find it in Vivado SDK, for example, in the folder Xilinx\SDK\2018.1\data\embeddedsw\XilinxProcessorIPLib\drivers\canps_v2_1 Since Zynq PS is equipped with two CAN controllers the only thing you would need is a PHY module, for example, SN65HVD230 CAN breakout board. Digilent offers CAN Pmod as well, however, it uses a chip with CAN controller which is redundant in that case. It is however, useful when you need to use FPGA board without the ARM core. I would recommend searching Digilent forums.
  3. Notarobot

    Zebo board: one connector missing

    The JF connector is physically connected to MIO ports. These ports allows to connect such peripheral as UART and CAN to PS. Configuration of such connections is done in the processing_system7_0 block in Vivado. In my understanding they are not present in the block design because there is no easy way to utilize it with PL. It is always helpful to check the schematic diagram of the board. Hope I've answered your question.
  4. Notarobot

    Has anyone ported GNU Radio to a zynq development board

    Tom, You can try to build GnuRadio on your board. There is a script that automates building it on ARM processor running Linux. Once I did it on Samsung chromebook running Ubuntu. In my recollections it took 2 to 3 hours for the completion but in the end it was usable. This Cromebook had 2GB of RAM and 4-core processor. I am not sure the it makes sense to build GnuRadio on Zynq 7000 with its limited resources. Also you will probably need to use remote desktop to graphical output.
  5. Notarobot

    Simple Dual Port BRAM

    Hi newkid_old, It is difficult to diagnoze your problem since the diagram is not complete and it is not clear what is the FPGA code. I assume that BRAM is used by both FPGA logic and Microblaze. Anyway, I would make two notes: 1. The signal wea should be either 8-bit or 4-bit depending your your BRAM configuration. 2. If you write to one port and read from the second you don't need to toggle wea or check it when writing. It can be set once only. Both ports A and B are independent. Make sure that in properties you set write_first for port A and read_first for port B. Since you are using Vivado block design no instantiation of BRAM is needed in the HDL code. It is very easy but for the price of very limited configuration options. It works for me though. Highly recommend to create and run workbench BRAM simulation. BTW, Vivado has help with RAM coding examples explaning proper usage.
  6. Notarobot

    How to read from SD card on ZYBO

    Hi shahbaz, I can't help you because information you provided is very sketchy. Did the example work for you? Did you follow the file operations sequence of the TestSD example? I suggest to spend some time learning how to work with the FAT file system. It is very simple.
  7. Mahdi, The idea of using mailbox is interesting but I am not sure that it is helping you to speed up data processing. It definitely adds extra overhead latencies which you wanted to reduce. In similar situations I conducted measurements of latencies using XScuTimer Timer; /* Cortex A9 SCU Private Timer Instance */ Xilinx provides examples of its utilization with Vivado. Obtaining accurate profiling information will make clear where is your bottleneck. Using it with Zybo board I've found that writing to micro SD card can be done at speeds over 10 MB/s, 32-bit RAM operations with AXI at about 30 MB/s. It should be noted that writing to SD card is faster in blocks of 32kB and SD card should be formatted with 32kB sectors aligned. Good luck!
  8. Notarobot

    Fpga XADc

    It is very similar to what you would do using any microprocessor, for example Arduino. The difference is in the hardware. I would recommend seaching this forum for relevant posts.
  9. Notarobot

    How to read from SD card on ZYBO

    shahbaz, Typically src folder contains C-code written by the person who design the project. It should contain the main function. You can try attached Xilinx test code. It's rudimentary but you can change it to your needs. Also you don't need to copy Xilinx files into src folder, they will be added to your project from the BSP. TestSD.c
  10. Notarobot

    How to read from SD card on ZYBO

    Hi shahbaz, If you are Ok using micro SD card adapter embedded in Zybo I would recommend to use it with the driver xsdps provided by Xilinx. Please note that it is connected and intended for use by PS not PL. The driver is located in Vivado library \embeddedsw\XilinxProcessorIPLib\drivers\sdps In Vivado the only thing is needed is enabling SD card in the processing system. Everything else is done in SDK. There you will need to add library xilffs to the BSP. File system and functions are described in here Good luck!
  11. Notarobot

    Zynq - data copy from PS to PL without importing IPs?

    Why don't you use BRAM for getting access to PS data? PS can write to BRAM directly.
  12. Notarobot

    stdin and stdout for uartlite

    I would recommend to check Xilinx IP located in Vivado in the folde embeddedsw\XilinxProcessorIPLib\drivers\uartlite\examples Typically, stdin/stdout are designated for system messaging.
  13. Notarobot

    FPGA for DSP on Adaptive Dynamic Vibration Absorber

    Derry, zygot and all who find this post, Having experience using all the above mentioned computer tools I wanted to share my opinion. Matlab is powerful and very good tool but it is overpriced and I am afraid will loose customers because very few small companies can afford paying license fee + annual maintenance fees. The problem that you never know how many toolboxes will be needed to get the required functionality. Working for a small company we've spent 14k for bare minimum. It was no substitution for Simulink and we bit the bullet. It is indespensible if you need time domain simulation of a system. Today Matlab itself can be completely replaced by Python 3. It has overlapping functionality and examples exist for pretty much everything. In fact processing of large data sets is done mostly in Python. Since everything is open source I can share Jupyter notebooks with others without requiring licenses. It is not difficult to create application distribution with GUI. From contributions from thousands developers Python is getting more powerful every day and its penetration into embedded is probably deeper than Matlab/Simulink which is geared mostly to car manufacturers. At this time I use only Python 3 and Matlb/Simulink. Octave and SCILAB are nice but Python can easilty replace both.
  14. Notarobot

    FPGA for DSP on Adaptive Dynamic Vibration Absorber

    I think it is important factor but might be not the first priority. However, we can see examples of people choosing careers with earning potential below the cost of college educations as well. In my experience in the EE field the best jobs are in the R&D area. The most valuable skill is creative system design. Knowing FPGA and being able to utilize FPGA multiply your abilities to implement ideas on time and on budget. Companies don't care how you do it, they care for customer to be happy with their product and to come back for more.
  15. Notarobot

    FPGA for DSP on Adaptive Dynamic Vibration Absorber

    Hi Derry, Let me try to answer some of your questions. First of all my personal recommendation is start on Zynq. There are plenty of development boards available either on Digilent or Avnet sites. I've started on Zybo and MicroZed. Zynq boards include ARM CPUs which will cut development time tremendously when you need to implement various communication functionality, use SD card memory, supervisory functions, Linux OS etc. Effort of implementing of all of these and glueing together in one application using just FPGA is probably possible but at significant cost. Personally, I find it unnecessary painful and wasteful. There are a lot of other reasons not to choose this way. However, opinions vary. Since Zynq is more complex it takes more time to get comfortable with it, that is to understand its architecture, learn HDL FPGA programming, learn Vivado development tool, design methodology, etc. Luckily, there are a lot of resources available at this time. I'd recommend watching video tutorials and get into one of online classes. I've started Zynq having VHDL FPGA experience in the past. It took some time for me to make the first demo of my project but the time was well spent. I would never accomplish that much without the Zynq. My personal recommendation is to use VHDL for FPGA programming because it is typed and well structured language. Stupid omissions are typically spotted before they propagate into the design. Noise issues and mitigation measures should be taken seriously. Using 24-bit ADC means that the input signal range floor is at sub uV levels. Obviously at this high sensitivity ADC will be able to pick up voltages induced from any surrounding sources, for example, computer, AC, monitor, DC-DC converters, etc. I recommend to start with materials published by Analog Devices. Good guidance you can get understanding designs of 24-bit evaluation boards from different manufacturers. For the project like yours I would use evaluation boards but add input low pass filters. I like and used Mathworks a lot, especially, Simulink. However, commercial license cost puts it out of reach for many small enterprises. Luckily, these days Python has functionality on par with Matlab (not Simulink). Take a look at the "PYNQ-Z1 Python Productivity for Zynq" on Digilent.