{"id":379,"date":"2014-08-22T12:20:09","date_gmt":"2014-08-22T12:20:09","guid":{"rendered":"http:\/\/www.struck.de\/blog\/?p=379"},"modified":"2014-08-22T12:20:09","modified_gmt":"2014-08-22T12:20:09","slug":"sis8300-l-mlvds-inputoutput-control-register-firmware-bug","status":"publish","type":"post","link":"https:\/\/www.struck.de\/blog\/?p=379","title":{"rendered":"SIS8300-L MLVDS Input\/Output Control register firmware bug"},"content":{"rendered":"<p>MLVDS Input\/Output Control register 0x12 below release 0x1007 has a copy&amp;paste bug in the top level VHDL code, which is affecting triggering of MLVDS input 7.<\/p>\n<p>The bug is fixed in macro and synthesized versions from 0x1007 on.<\/p>\n<p>Thanks to ESS\/COSYLAB for bringing the bug to our attention and assistance in tracking it down.<\/p>\n<p>Find the section below in case you would like to fix it in your code, which is based on our macro.<\/p>\n<p>if rising_edge(sys_ad9510_no1_bufg_clk) then\u00a0 &#8212;<\/p>\n<p>external_ored_trigger_signal &lt;=<\/p>\n<p>(ext_trigger_harlink_rising_pulse(1)\u00a0 and addr_0x13_reg_q(8)\u00a0 and not addr_0x13_reg_q(12) )<\/p>\n<p>or (ext_trigger_harlink_falling_pulse(1) and addr_0x13_reg_q(8)\u00a0 and\u00a0\u00a0\u00a0\u00a0 addr_0x13_reg_q(12) )<\/p>\n<p>or (ext_trigger_harlink_rising_pulse(2)\u00a0 and addr_0x13_reg_q(9)\u00a0 and not addr_0x13_reg_q(13) )<\/p>\n<p>or (ext_trigger_harlink_falling_pulse(2) and addr_0x13_reg_q(9)\u00a0 and\u00a0\u00a0\u00a0\u00a0 addr_0x13_reg_q(13) )<\/p>\n<p>or (ext_trigger_harlink_rising_pulse(3)\u00a0 and addr_0x13_reg_q(10) and not addr_0x13_reg_q(14) )<\/p>\n<p>or (ext_trigger_harlink_falling_pulse(3) and addr_0x13_reg_q(10) and\u00a0\u00a0\u00a0\u00a0 addr_0x13_reg_q(14) )<\/p>\n<p>or (ext_trigger_harlink_rising_pulse(4)\u00a0 and addr_0x13_reg_q(11) and not addr_0x13_reg_q(15) )<\/p>\n<p>or (ext_trigger_harlink_falling_pulse(4) and addr_0x13_reg_q(11) and\u00a0\u00a0\u00a0\u00a0 addr_0x13_reg_q(15) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(0)\u00a0 and addr_0x12_reg_q(8) and not addr_0x12_reg_q(0) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(0) and addr_0x12_reg_q(8) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(0) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(1)\u00a0 and addr_0x12_reg_q(9) and not addr_0x12_reg_q(1) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(1) and addr_0x12_reg_q(9) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(1) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(2)\u00a0 and addr_0x12_reg_q(10) and not addr_0x12_reg_q(2) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(2) and addr_0x12_reg_q(10) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(2) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(3)\u00a0 and addr_0x12_reg_q(11) and not addr_0x12_reg_q(3) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(3) and addr_0x12_reg_q(11) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(3) )<\/p>\n<p>&nbsp;<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(4)\u00a0 and addr_0x12_reg_q(12) and not addr_0x12_reg_q(4) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(4) and addr_0x12_reg_q(12) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(4) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(5)\u00a0 and addr_0x12_reg_q(13) and not addr_0x12_reg_q(5) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(5) and addr_0x12_reg_q(13) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(5) )<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(6)\u00a0 and addr_0x12_reg_q(14) and not addr_0x12_reg_q(6) )<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(6) and addr_0x12_reg_q(14) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(6) )<\/p>\n<p>&#8212;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 or (ext_trigger_mlvds_rising_pulse(7)\u00a0 and addr_0x12_reg_q(14) and not addr_0x12_reg_q(7) )<\/p>\n<p>&#8212;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 or (ext_trigger_mlvds_falling_pulse(7) and addr_0x12_reg_q(14) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(7) ) ;<\/p>\n<p>or (ext_trigger_mlvds_rising_pulse(7)\u00a0 and addr_0x12_reg_q(15) and not addr_0x12_reg_q(7) )\u00a0\u00a0 &#8212; mod. 22.08.2014<\/p>\n<p>or (ext_trigger_mlvds_falling_pulse(7) and addr_0x12_reg_q(15) and\u00a0\u00a0\u00a0\u00a0 addr_0x12_reg_q(7) ) ; &#8212; mod. 22.08.2014<\/p>\n<p>&nbsp;<\/p>\n<p>end if;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MLVDS Input\/Output Control register 0x12 below release 0x1007 has a copy&amp;paste bug in the top level VHDL code, which is affecting triggering of MLVDS input 7. The bug is fixed in macro and synthesized versions from 0x1007 on. Thanks to &hellip; <a href=\"https:\/\/www.struck.de\/blog\/?p=379\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,19],"tags":[],"class_list":["post-379","post","type-post","status-publish","format-standard","hentry","category-digitizer","category-firmware"],"_links":{"self":[{"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=379"}],"version-history":[{"count":1,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":380,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/379\/revisions\/380"}],"wp:attachment":[{"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.struck.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}