- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Hi, I have a simple question about transceiver toolkit commands.
I want t use some commands such as transceier_channel_rx_get_data , transcever_channel_rx_get_dcgan... in tcl console window. next to the command, I have to define argument <service-path>. Can you explain this argument and give me an example? Thanks.Ссылка скопирована
12 Ответы
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
--- Quote Start --- I have a simple question about transceiver toolkit commands. I want t use some commands such as transceier_channel_rx_get_data , transcever_channel_rx_get_dcgan... in tcl console window. next to the command, I have to define argument <service-path>. Can you explain this argument and give me an example? --- Quote End --- I had this same question yesterday ... Under Quartus 14.0, open the transceiver toolkit GUI, and click on the setup button. The setup page lets you create transmitter and receiver interfaces, and then links between transmitter and receiver interfaces. The transmitter interface consists of; a pattern generator, PHY, and reconfiguration interface. The receiver interface consists of a pattern checker, PHY, and reconfiguration interface. Once you have defined these transmitter and receiver interfaces, you can setup links, i.e., which transmitter and receiver are connected for link tests. At that point, you can exit the setup GUI, and save the setup to a Tcl script. That script will contain the Tcl commands required to setup a transmitter or receiver interface. The <service-path> in the Tcl commands you are interested in using are those transmitter and receiver interfaces you just defined. Here's the example I was using to test the Texas Instruments TSW14J56EVM evaluation board (which contains an Arria V GZ);
# Transceiver Toolkit setup for the x8 non-bonded design# # * Transceiver channels 0 to 3 are controlled by reconfig channels 0 to 3# * Transmitter PLLs 0 to 3 are controlled by reconfig channels 4 to 7# * Transceiver channels 4 to 7 are controlled by reconfig channels 8 to 11# * Transmitter PLLs 4 to 7 are controlled by reconfig channels 12 to 15#
design_load {C:\build\quartus\v14.0_full_64bit\tsw14j56evm\arria5\transceiver_native_phy\tsw14j56evm.sof}
add_service transceiver_channel_rx rx0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_200/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 0
add_service transceiver_channel_rx rx1 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_220/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 1
add_service transceiver_channel_rx rx2 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_240/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 2
add_service transceiver_channel_rx rx3 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_260/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 3
add_service transceiver_channel_rx rx4 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_280/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 8
add_service transceiver_channel_rx rx5 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_2A0/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 9
add_service transceiver_channel_rx rx6 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_2C0/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 10
add_service transceiver_channel_rx rx7 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_2E0/driver" "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/eyeQ/driver" 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig" 11
add_service transceiver_channel_tx tx0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_100/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 0
add_service transceiver_channel_tx tx1 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_120/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 1
add_service transceiver_channel_tx tx2 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_140/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 2
add_service transceiver_channel_tx tx3 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_160/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 3
add_service transceiver_channel_tx tx4 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_180/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 8
add_service transceiver_channel_tx tx5 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_1A0/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 9
add_service transceiver_channel_tx tx6 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_1C0/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 10
add_service transceiver_channel_tx tx7 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_1E0/driver" null 0 "/connections/USB-Blaster on localhost (USB-0)/5AGZME1E(2|3)|5AGZME1H(2|3)@1/(110:132 v1# 0)/phy_0/master/slave_400/reconfig/analog/driver" 11
add_service transceiver_debug_link link0 /design_instances/transceiver_channel_tx/tx0 /design_instances/transceiver_channel_rx/rx0
add_service transceiver_debug_link link1 /design_instances/transceiver_channel_tx/tx1 /design_instances/transceiver_channel_rx/rx1
add_service transceiver_debug_link link2 /design_instances/transceiver_channel_tx/tx2 /design_instances/transceiver_channel_rx/rx2
add_service transceiver_debug_link link3 /design_instances/transceiver_channel_tx/tx3 /design_instances/transceiver_channel_rx/rx3
add_service transceiver_debug_link link4 /design_instances/transceiver_channel_tx/tx4 /design_instances/transceiver_channel_rx/rx4
add_service transceiver_debug_link link5 /design_instances/transceiver_channel_tx/tx5 /design_instances/transceiver_channel_rx/rx5
add_service transceiver_debug_link link6 /design_instances/transceiver_channel_tx/tx6 /design_instances/transceiver_channel_rx/rx6
add_service transceiver_debug_link link7 /design_instances/transceiver_channel_tx/tx7 /design_instances/transceiver_channel_rx/rx7
An example of a <service-path> is /design_instances/transceiver_channel_rx/rx0. Cheers, Dave
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Succeed.Thanks.
But I have another question. I want to set the data pattern through using "transceiver_debug_link_set_pattern" command. As an argument of the command, there is <data pattern>. I wrote PRBS7 as the argument. However, there is an error that indicates as "The specified pattern, PRBS7, is not valid." Is there any form to write this argument?- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
--- Quote Start --- Succeed.Thanks. --- Quote End --- Great! --- Quote Start --- But I have another question. I want to set the data pattern through using "transceiver_debug_link_set_pattern" command. As an argument of the command, there is <data pattern>. I wrote PRBS7 as the argument. However, there is an error that indicates as "The specified pattern, PRBS7, is not valid." Is there any form to write this argument? --- Quote End --- Perhaps its the pattern register setting, eg., 1, 2, 4, 8, 16, 32. The data pattern generator component registers used to be in the "Embedded Peripheral IP Users Guide", but Altera have moved them ... perhaps into the Quartus handbook ... I've uploaded chapter 36. Try using the pattern type register values. Cheers, Dave
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Hi, I tried to find the correct argument from the pdf file you gave, and I tried 0, 1, ...
However, error message still shows up as before. Do I have to add additional mark at the register value? For reference about the command, additional information from "Debugging Transceiver Links" is as follow. "Sets the output pattern specified by the <pattern-name>. In all, 6 patterns are available, 4 are pseudo-random binary sequences (PRBS), 1 is high frequency and 1 is low frequency. The PRBS7, PRBS15, PRBS23, PRBS31, HF (outputs high frequency, constant pattern of alternating 0s and 1s), and LF (outputs low frequency, constant pattern of 10b’1111100000 for 10- bit symbols and 8b’11110000 for 8-bit symbols) pattern names are defined. PRBS files are clear text and you can modify the PRBS files" Thanks.- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
--- Quote Start --- Hi, I tried to find the correct argument from the pdf file you gave, and I tried 0, 1, ... However, error message still shows up as before. Do I have to add additional mark at the register value? --- Quote End --- You'll have to file a Service Request with Altera and get them to answer the question. As a work-around, you can just write to the pattern generator and checker registers directly. That is what I have been doing. I have not been using any of their debug toolkit Tcl commands, as they are poorly documented. I prefer code that I can read :) Cheers, Dave
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Hi, thank you so much for your answer.
I heard that PRBS7 signal pattern I want to use is default. So, I don't need to configure about that any more. Thanks.- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
--- Quote Start --- I heard that PRBS7 signal pattern I want to use is default. So, I don't need to configure about that any more. --- Quote End --- Why PRBS7 only? If you want to test your links, then you need to make sure you use multiple patterns, and data patterns that match your final application. PRBS7 may not expose all issues. For example, I had used AC-coupling capacitors that were too small (100pF instead of 0.1uF) and PRBS7 worked fine, but PRBS15 and 31 did not. Increasing the size of the AC-coupling capacitors fixed the issue. Cheers, Dave
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Thank you so much your help
But, we already found that PRBS7 is the most appropriate one. I have one more question. I want to use a tcl package (tcom) which is for arranging data (number of bits, error, and BER) in xlsx file I downloaded tcom in C:/altera/13.1/quartus/bin64/tcl8.5 C:/altera/13.1/quartus/bin64 C:/altera/13.1/quartus/lib However, when I tried "package require tcom", quartus indicated as Error:ERROR: Can't load library: C:\altera\13.1\quartus\bin64\tcl8.5\tcom\tcom.dll. The operating system reports the following error: ÀÛ¾÷À» ¿Ï·áÇß½À´Ï´Ù. or Error:can't find package tcom How can I solve this problem? Location that Tcl looks in when searching for libraries isn't right? or Is there any problem in dll file? Thanks.- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I'd recommend installing ActiveState ActiveTcl and install the tcom package with it. Altera's support for Tcl has been pretty poor, eg., most of their tools do not use "real" Tcl, but Java based Jacl. There are several applications where basic commands like "info nameofexecutable" do not work.
Cheers, Dave- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I tried and succeed.
However, ActiveTcl doesn't support transceiver toolkit commnad such as get_service_paths. I want to use transceiver toolkit to measure number of bits, errors, and BER and tcom to arrange them in xlsx file. How can I do it? Thanks.- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
--- Quote Start --- I tried and succeed. However, ActiveTcl doesn't support transceiver toolkit commnad such as get_service_paths. I want to use transceiver toolkit to measure number of bits, errors, and BER and tcom to arrange them in xlsx file. How can I do it? --- Quote End --- Ok, this confirms that there is nothing wrong with the Tcl package that you are trying to use. However, it does confirm that SystemConsole tool is not "real" Tcl. It does not support various Tcl commands, Tk does not work, and its difficult to integrate 3rd party packages. Unfortunately, because you want to use the Transceiver Toolkit commands, that forces you to use SystemConsole. You will need to find a work-around. Rather than using .xlsx format from Tcl, just use a file with comma-separated fields or tab-separated fields, and then read that using Excel. An alternative work-around is to control SystemConsole via a socket. I wrote a client-server application in Tcl for this tutorial; http://www.alterawiki.com/wiki/using_the_usb-blaster_as_an_sopc/qsys_avalon-mm_master_tutorial There is a version of the server that runs under SystemConsole. This allows you to execute any SystemConsole command from another client, eg., a C application or a Tcl/Tk application. Examples of clients are included. Cheers, Dave
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Succeed! Thanks.
I have another question. I used "siv_1ch_8b_1250mbps" among transceiver toolkit example files altera provides. And I want to use more channel than 1. And I tried "siv_4ch_10b_2500mbps". But In compilation, there are 2 errors. Error (12002): Port "xcvr_rx_serial_data_export" does not exist in macrofunction "link_test_sopc_sys_inst" Error (12002): Port "xcvr_tx_serial_data_export" does not exist in macrofunction "link_test_sopc_sys_inst" My quartus version is 13.1 Do I have to "xcvr_rx_serial_data_export" connect other using Qsys? Can I solve this problem? Thanks.
Ответить
Параметры темы
- Подписка на RSS-канал
- Отметить тему как новую
- Отметить тему как прочитанную
- Выполнить отслеживание данной Тема для текущего пользователя
- Закладка
- Подписаться
- Страница в формате печати