{"id":2299,"date":"2023-05-10T15:17:50","date_gmt":"2023-05-10T14:17:50","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=2299"},"modified":"2023-05-10T15:17:51","modified_gmt":"2023-05-10T14:17:51","slug":"identification-des-bitstreams-de-la-serie-7-avec-usr_access2","status":"publish","type":"post","link":"https:\/\/www.fabienm.eu\/flf\/identification-des-bitstreams-de-la-serie-7-avec-usr_access2\/","title":{"rendered":"Identification des bitstreams de la s\u00e9rie 7 avec usr_access2"},"content":{"rendered":"\n<p>Le processus de synth\u00e8se\/placement\/routage\/bitstream prenant beaucoup de temps, on est amen\u00e9 \u00e0 faire d&rsquo;autres activit\u00e9 pendant le traitement. Ce \u00abswitch\u00bb de t\u00e2che nous am\u00e8ne \u00e0 faire des erreurs fr\u00e9quentes de version de bitstream au moment de la configuration du FPGA.<\/p>\n\n\n\n<p>Il est fr\u00e9quent de passer des heures voir des jours sur un bug qui n&rsquo;en \u00e9tait finalement pas un puisque nous n&rsquo;avions pas mis \u00e0 jour la version du bitstream.<\/p>\n\n\n\n<p>Pour \u00e9viter ce probl\u00e8me il faut pouvoir lire la version du bitstream g\u00e9n\u00e9r\u00e9 de mani\u00e8re \u00e0 s&rsquo;assurer qu&rsquo;on travail bien avec la bonne.<\/p>\n\n\n\n<p>C&rsquo;est exactement l&rsquo;objet de la macro \u00ab<a href=\"https:\/\/www.xilinx.com\/content\/dam\/xilinx\/support\/documents\/application_notes\/xapp497_usr_access.pdf\">usr_access<\/a>\u00bb des FPGA de la s\u00e9rie 7 de Xilinx.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_usr_access.png\"><img loading=\"lazy\" decoding=\"async\" width=\"963\" height=\"423\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_usr_access.png\" alt=\"\" class=\"wp-image-2300\" srcset=\"https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_usr_access.png 963w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_usr_access-300x132.png 300w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_usr_access-768x337.png 768w\" sizes=\"auto, (max-width: 963px) 100vw, 963px\" \/><\/a><\/figure>\n\n\n\n<p>Cette macro est appel\u00e9e de la mani\u00e8re suivante en VHDL :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>library IEEE;\nuse IEEE.STD_LOGIC_1164.ALL;\nuse IEEE.numeric_std.all;\n\nEntity usr_accesse2 is\nport\n(\n  CFGCLK : out std_logic;\n  DATA : out std_logic_vector(31 downto 0);\n  DATAVALID : out std_logic\n);\nend entity;\n\nArchitecture usr_accesse2_1 of usr_accesse2 is\n\nbegin\n\n  CFGCLK &lt;= '1';\n  DATA &lt;= x\"00000E0F\";\n  DATAVALID &lt;= '1';\n\nend architecture usr_accesse2_1;\n<\/code><\/pre>\n\n\n\n<p>Et la valeurs de la sortie \u00abDATA\u00bb est r\u00e9-inscriptible jusqu&rsquo;\u00e0 la g\u00e9n\u00e9ration du bitstream avec l&rsquo;option <code>-g USR_ACCESS<\/code>.<\/p>\n\n\n\n<p>Pour y mettre la date et l&rsquo;heure on utilisera l&rsquo;option timestamp dans le menu <code>tools->edit device property<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"http:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp-1024x662.png\" alt=\"\" class=\"wp-image-2305\" srcset=\"https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp-1024x662.png 1024w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp-300x194.png 300w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp-768x496.png 768w, https:\/\/www.fabienm.eu\/flf\/wp-content\/uploads\/2023\/05\/xilinx_vivado_usr_timestamp.png 1187w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Cette action \u00e0 pour effet d&rsquo;ajouter la commande suivante dans le xdc :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set_property BITSTREAM.CONFIG.USR_ACCESS TIMESTAMP &#91;current_design]<\/code><\/pre>\n\n\n\n<p>Mais elle ne met pas la date chez moi pour le moment \ud83d\ude41<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le processus de synth\u00e8se\/placement\/routage\/bitstream prenant beaucoup de temps, on est amen\u00e9 \u00e0 faire d&rsquo;autres activit\u00e9 pendant le traitement. Ce \u00abswitch\u00bb de t\u00e2che nous am\u00e8ne \u00e0 faire des erreurs fr\u00e9quentes de version de bitstream au moment de la configuration du FPGA. Il est fr\u00e9quent de passer des heures voir des jours sur un bug qui n&rsquo;en &hellip; <a href=\"https:\/\/www.fabienm.eu\/flf\/identification-des-bitstreams-de-la-serie-7-avec-usr_access2\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Identification des bitstreams de la s\u00e9rie 7 avec usr_access2<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[1],"tags":[234,235,60,17],"class_list":["post-2299","post","type-post","status-publish","format-standard","hentry","category-non-classe","tag-usr_access","tag-version","tag-vhdl","tag-xilinx"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Fabien Marteau","author_link":"https:\/\/www.fabienm.eu\/flf\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Le processus de synth\u00e8se\/placement\/routage\/bitstream prenant beaucoup de temps, on est amen\u00e9 \u00e0 faire d&rsquo;autres activit\u00e9 pendant le traitement. Ce \u00abswitch\u00bb de t\u00e2che nous am\u00e8ne \u00e0 faire des erreurs fr\u00e9quentes de version de bitstream au moment de la configuration du FPGA. Il est fr\u00e9quent de passer des heures voir des jours sur un bug qui n&rsquo;en\u2026","_links":{"self":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=2299"}],"version-history":[{"count":7,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2299\/revisions"}],"predecessor-version":[{"id":2308,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2299\/revisions\/2308"}],"wp:attachment":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=2299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=2299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=2299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}