01-25-2019 05:05 PM
Hi I am looking for a 1 pulse per second physical output driven from the internal IOPLL, which is being used as a ptp clock and is sampled by the TSU in GEM ethernet controller. The controller will generate an interrut for tsu_seconds_register_increment, which I can use to fire a software pps. But I am looking for hardware way to route that interrupt to a physical port (such as a GPIO on board) so that i can feed the pps to a oscilloscope. I am Vivaldo dumy but I figure it can be done through FPGA design. Can someone share a insight? Thanks
01-31-2019 05:17 PM
Correction to my earlier post: Enable the PSU EMIO GPIO port. Take an output from that interface and connect it to your unconnected input.
-Joe G.
01-25-2019 06:01 PM
You can configure the PSU to expose PTP and TSU signals to the PL.
-Joe G.
01-28-2019 07:47 PM
Thanks for answering. I did what you said and I found I can simply exposed the bits from emio_enet0_enet_tsu_timer_cnt that we need from probing (bit 45 and 46
for 1PPS) to an output header. I.E., tsu_timer_cnt[93:0] → Inverse of bit 45 is the 1PPS signal.
On the other hand, since I am new to this, I don't quite get what emio_enet0_enet_tsu_timer_cnt is. I know it is a 94 bit EMIO signal. But at this stage, is it already assigned to 94 GPIO pins? Where are these pins? And if I want to expose bit 45 to a existing pin on ZCU102, what do I do? Thanks
01-28-2019 08:12 PM
EMIO pins on the PSU only expose signals to the PL; they're not connected to external PL I/O unless you do that yourself, explicitly.
If you want only one bit of the 94-bit tsu_timer_cnt bus:
You're now free to connect the Slice output to whatever you want, including a top-level I/O port to externalize it.
-Joe G.
01-29-2019 10:51 AM
Hi Thanks for your help
So I added the slice ip. How am I supposed to connect the slice's output to an top-level I/O port, say MIO23. Or PL I/O device pins.
Thanks
Min
01-29-2019 11:08 AM
PL signals cannot be sent to PS/PSU MIO pins. They must leave the chip using PL I/O.
Select the Slice IP's output pin. Press <Ctrl+T>. That will create an external I/O port.
That port will pass through a top-level wrapper to become a system I/O. After you run synthesis, open the synthesized design, in IO Planning format.
In the I/O Ports tab at the bottom of the Synthesized Design window, find the new port and assign it a technology/level and a pin location.
-Joe G.
01-30-2019 05:13 PM
Hi, I was finally able to assign PIN AG14 (which is a user LED on ZCU102) to the slice output, the input is bit 45 of emio_enet0_enet_tsu_timer_cnt[0:93]. I was basing my design on the ps_emio_eth_1g from xapp1305 reference design with Vivaldo 2018.1
On the other hand, after I loaded the bit file and the image to the board, the LED is not flashing in a 1pps rate. I did confirm that the ethnert is up and running find. I figured that I need to enable fmio_gem_tsu_clk_to_pl_bufg and fmio_gem_tsu_clk_from_pl for this to work, but after I got back to Vivaldo, I found the option of "tsu bufg and clock from pl" in PS-PL configuration is not available to choose. Do you have any idea why?
By the way, the pins are all configured LVCMOS18. Should I change them to LVCMOS33?
01-30-2019 06:06 PM
Yes; AG14 is in a 3.3-V powered bank, so you should change the IOSTANDARD to LVCMOS33.
How long is the 1PPS signal supposed to be active/asserted/high? The signal pulse needs to be long enough to turn the LED on, if you expect to see it that way.
Can you catch the signals on an ILA inside the FPGA?
-Joe G.
01-30-2019 06:28 PM
Yes the 1pps signal from IOPLL, which runs 250MHz, I guess it is too short the light up the LED.
I will have to hook up ILA tomorrow and let you know. Can you provide simple guidance about how to set up ILA for this test? Or if it is too complicated, can you recommend a tutorial?
Thanks
Min
01-30-2019 06:50 PM
Let me try, quickly:
Yeah... you'll have to seek out a tutorial for more details, I guess.
-Joe G.
01-31-2019 02:30 PM
Hi I have exposed emio_enet0_tsu_inc_ctrl[1:0] as a input, do you know how to force it to certain value from Vivaldo UI? Thanks.
01-31-2019 02:56 PM
I don't know much about a "Vivado UI", but I'd connect an input like that to an output.
Enable the PSU EMIO port. (If you set it up to be only 2 bits wide, you won't have to slice bits from it.) Connect the 2-bit 'o' outputs pins of the EMIO interface to the input pins you want to drive. After configuring the EMIO pins, you only need to write a data register to twiddle the bits.
-Joe G.
01-31-2019 04:22 PM
The emio port that I want to drive is input
01-31-2019 05:17 PM
Correction to my earlier post: Enable the PSU EMIO GPIO port. Take an output from that interface and connect it to your unconnected input.
-Joe G.
02-01-2019 11:32 AM
I was able to force the value by a constant ip. Now after the value is correctly set to the emio ctrl signal, I am able to get the pps signal and observe it through the DS38 LED on ZCU102. Thanks a lot for your help.
02-06-2020 07:24 AM
Hi @welcomelm ,
I am struggling with a similar setup. Which value did you assign to the emio ctrl signal?