From ad403fb3704ce1343fd8e149a137ab8c358c0427 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Sat, 16 Aug 2014 17:15:13 -0700 Subject: [PATCH] CPLD: Add TX Q invert mechanism. --- firmware/cpld/sgpio_if/default.xsvf | Bin 37629 -> 37629 bytes firmware/cpld/sgpio_if/top.jed | 138 ++++++++++++++-------------- firmware/cpld/sgpio_if/top.vhd | 6 +- 3 files changed, 74 insertions(+), 70 deletions(-) diff --git a/firmware/cpld/sgpio_if/default.xsvf b/firmware/cpld/sgpio_if/default.xsvf index 873eb2d20122527b9364726b92dc7222684be3db..9b912c7dc1f17e19a54369346c75dff46fb969b7 100644 GIT binary patch delta 1439 zcmeHFOK1~O6!py{nWjyXOlGpM+Jqz~F|AEnQa_Y7vvU(am4b*+x@f?SSfPj;H7!L& zK}7FDT0~GObt8yR5Db_a!EU-Ktz=`W(1ms3ho&J7l6lTdK5uHowF}?oea?C39`3p2 zS*AS8Jo7OeA$daNB-}w>IChE)2JL1vQ5s0Umq=xOC*;d&vU<@riO82~e0a==0wEW# z{H!tLZ_2XOa8+-|+fogz?B$P1{X_ou`tvG3ODUxXdVVUEdPVC4`$8zMo}*-v%jG^$ ze9F+)O2NE*yygs+w;?1(|M-jn#MXJ^#(AYnk|Huye;YN4LV+ZyFi~AmZEV_U)q!M# zinCk*rfp#pexneIc$njmNlq&n)O!Zd07GX26=9fbhi(s#?{z*xjGP9~kP`;GE;E~H7#tAs zS{IK{0r`N{m6t88+LWiAo$_q^#&!CfY*EGkXGqoG!I7)L}8(K t1Tk7RN_~8Ke+9ORg)kCb`<^G?~znssf-SGOZ^b6E)OE~}l delta 1021 zcmeH@O=uHA9L1R=o82_AO}cGTN|QF5n3%-PM?W+PQG1GLL0dg2LXpyd7cq(!Jg8|X zqCNQ4hgQK$)Z$4}T%n$t8V^PA5J8C^tb&KCmmnUrmSml5(pvE5**VO-{l7Pl*|4I*IQVb<+7>d5%Yj@+A6)u5{+%U_mKimZLny>f0XkNc_?uKYpq zSCLhR+n=wjWou{Ml;s>UZQC3R)PA%f@w3`pnqQT3bg#}gbVL0FyZL@x(wIpFSD6Tk zROL|NB5*STnOJ|tX=Z_~D6Q)C*{HS!#$Fy#y@)w&D=FbU69vl(xYOj|ORZg_x1yi=K3^!aKLSi_K#YtV`0 zHePw{m^AwF!;n|b&IeK9xn`jY0k))=%4ftTJYMQu%wi?{{X7`^qa z+X~s0CKFQH{g_beMAU)-Pm+>yV##xcQpyb2aLSv;)>tz%z67!!4hhzbpxq=*`|c^Y zvOyk$;&}}3F-xCB6T#j{D|CSb3NAfP#+|qu7>6&$OM&1dL1WB{>j!x0bLb&aYBN3G zF)LbeA#TQE?@<)ILUk@3>8k}KetTWK3{!Efr&+oft&5#8Tjzgr|3>a(2j-`C{RS3v B-QNHJ diff --git a/firmware/cpld/sgpio_if/top.jed b/firmware/cpld/sgpio_if/top.jed index 5a8731c0..cf7e4a32 100755 --- a/firmware/cpld/sgpio_if/top.jed +++ b/firmware/cpld/sgpio_if/top.jed @@ -1,5 +1,5 @@ Programmer Jedec Bit Map -Date Extracted: Mon Aug 4 21:44:14 2014 +Date Extracted: Sat Aug 16 17:13:17 2014 QF25812* QP100* @@ -17,7 +17,7 @@ L000016 1110101011111111* L000032 1111111011110011* L000048 1111111111111111* L000064 1111111111111111* -L000080 1111111011100111* +L000080 1111111011010111* L000096 1110101011111111* L000112 1111111111111111* L000128 1110101011111111* @@ -33,7 +33,7 @@ L000272 1111111111111111* L000288 1111111011010111* L000304 1111111111111111* L000320 1111111111111111* -L000336 1111111111111111* +L000336 1111111011100111* L000352 1111111111111111* L000368 1111111111111111* L000384 1111111111111111* @@ -63,12 +63,12 @@ L001040 111110111111111111111111111111111111111111111111111111111111111111111111 L001120 01111111111111110111110111111111111111111111111111111111111111111111111111111111* L001200 10111111111111111011110111111111111111111111111111111111111111111111111111111111* L001280 01011111111101110111111111111111111111111111111111111111111111111111111111111111* -L001360 11110111111001111111110111111111111111111111111111111111111111111111111111111111* -L001440 11010111111001110111111111111111111111111111111111111111111111111111111111111111* -L001520 11110111110110111111110111111111111111111111111111111111111111111111111111111111* +L001360 11110111111101111111110111111111111111111110111111111111111111111111111111111111* +L001440 11010111111101110111111111111111111111111110111111111111111111111111111111111111* +L001520 11110111111110111111110111111111111111111101111111111111111111111111111111111111* L001600 11010111111110110111111011111111111111111111111111111111111111111111111111111111* -L001680 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L001760 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L001680 11111011110111111111111111111111111111111111111111111111111111111111111111111111* +L001760 11111111110111111111111111111111111101111111111111111111111111111111111111111111* L001840 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L001920 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L002000 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -125,8 +125,8 @@ L005264 1111111111111011* L005280 1111111111111011* L005296 1111111111111011* L005312 1111111111111011* -L005328 1111111111111111* -L005344 1111111111111111* +L005328 1111111111101111* +L005344 1111111111101111* L005360 1111111111111111* L005376 1111111111111111* L005392 1111111111111111* @@ -182,7 +182,7 @@ L006205 000001111001111110011111100* L006232 000001111001111110011111100* L006259 000001111001111110011111100* L006286 000001111001111110011111100* -L006313 000001111001111110011111100* +L006313 000001111001100110011111101* L006340 000001111001100111011111101* L006367 000101111101110110011111100* L006394 000101111101110111111111100* @@ -193,25 +193,25 @@ Note Block 1 ZIA * L006448 1111111111111111* L006464 1111111011010111* L006480 1111111011010111* -L006496 1111111011010111* +L006496 1110101011111111* L006512 1111111011010111* L006528 1111111011010111* L006544 1111111111111111* L006560 1111111111111111* -L006576 1111111111111111* +L006576 1111111011010111* L006592 1111111011010111* L006608 1111111011100111* L006624 1111111111111111* L006640 1111111111111111* L006656 1111111111111111* L006672 1111111011100111* -L006688 1111111111111111* +L006688 1111111011110011* L006704 1111111011100111* L006720 1111111111111111* L006736 1111111111111111* L006752 1111111111111111* L006768 1111111111111111* -L006784 1111111111111111* +L006784 1111111011010111* L006800 1111111111111111* L006816 1111111111111111* L006832 1111111111111111* @@ -232,32 +232,32 @@ L007056 1111111111111111* L007072 1111111111111111* Note Block 1 PLA AND array * -L007088 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007168 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007248 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007328 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007408 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007488 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007568 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007648 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007728 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007808 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007888 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L007968 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008048 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008128 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008208 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008288 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L007088 11111111110111111011111111111101011111111111111111111111111111111111111111111111* +L007168 11111101111111111111111111111111101111111111111111111111111111111111111111111111* +L007248 11111111110111111011011111111101111111111111111111111111111111111111111111111111* +L007328 11111101111111111111101111111111111111111111111111111111111111111111111111111111* +L007408 11111111110111111001111111111101111111111111111111111111111111111111111111111111* +L007488 11111101111111111110111111111111111111111111111111111111111111111111111111111111* +L007568 11111111110111111011111111111101111111111101111111111111111111111111111111111111* +L007648 11111101111111111111111111111111111111111110111111111111111111111111111111111111* +L007728 11111111010111111011111111111101111111111111111111111111111111111111111111111111* +L007808 11111101101111111111111111111111111111111111111111111111111111111111111111111111* +L007888 11110111110111111011111111111101111111111111111111111111111111111111111111111111* +L007968 11111001111111111111111111111111111111111111111111111111111111111111111111111111* +L008048 11011111110111111011111111111101111111111111111111111111111111111111111111111111* +L008128 11101101111111111111111111111111111111111111111111111111111111111111111111111111* +L008208 11111111110111111011111111110101111111111111111111111111111111111111111111111111* +L008288 11111101111111111111111111111011111111111111111111111111111111111111111111111111* L008368 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008448 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008528 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008608 11111111110111111111111111110111111111111111111111111111111111111111111111111111* +L008608 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008688 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008768 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L008848 11011111110111111111111111111111111111111111111111111111111111111111111111111111* +L008848 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L008928 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009008 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L009088 11110111110111111111111111111111111111111111111111111111111111111111111111111111* +L009088 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009168 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009248 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009328 11111111111111111111111111111111111111111111111111111111111111111111111111111111* @@ -266,46 +266,46 @@ L009488 111111111111111111111111111111111111111111111111111111111111111111111111 L009568 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009648 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009728 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L009808 11111111010111111111111111111111111111111111111111111111111111111111111111111111* +L009808 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009888 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L009968 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010048 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010128 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010208 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L010288 11111101110111111111111111111111111111111111111111111111111111111111111111111111* +L010288 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010368 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010448 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L010528 11111111110111111101111111111111111111111111111111111111111111111111111111111111* +L010528 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010608 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010688 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L010768 11111111110111111111011111111111111111111111111111111111111111111111111111111111* +L010768 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010848 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L010928 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L011008 11111111110111111111111111111111011111111111111111111111111111111111111111111111* +L011008 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011088 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011168 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L011248 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L011248 11111101111111111111111111111111111111111111111111111111111111111111111111111111* L011328 11111111111111111111111111111111111111111111111111111111111111111111111111111111* L011408 11111111111111111111111111111111111111111111111111111111111111111111111111111111* -L011488 11111111111111111111111111111111111111111111111111111111111111111111111111111111* +L011488 11111101111111111111111111111111111111111111111111111111111111111111111111111111* Note Block 1 PLA OR array * -L011568 1111111111111111* -L011584 1111111111111111* -L011600 1111111111111111* -L011616 1111111111111111* -L011632 1111111111111111* -L011648 1111111111111111* -L011664 1111111111111111* -L011680 1111111111111111* -L011696 1111111111111111* -L011712 1111111111111111* -L011728 1111111111111111* -L011744 1111111111111111* -L011760 1111111111111111* -L011776 1111111111111111* -L011792 1111111111111111* -L011808 1111111111111111* +L011568 1111111111111011* +L011584 1111111111111011* +L011600 1111111111110111* +L011616 1111111111110111* +L011632 1111111111101111* +L011648 1111111111101111* +L011664 1111111111011111* +L011680 1111111111011111* +L011696 1111111101111111* +L011712 1111111101111111* +L011728 1111101111111111* +L011744 1111101111111111* +L011760 1111011111111111* +L011776 1111011111111111* +L011792 1110111111111111* +L011808 1110111111111111* L011824 1111111111111111* L011840 1111111111111111* L011856 1111111111111111* @@ -352,19 +352,19 @@ N Aclk ClkOp Clk:2 ClkFreq R:2 P:2 RegMod:2 INz:2 FB:2 InReg St XorIn:2 RegCom O L012464 000001111001111110011111100* L012491 000001111001111110011111100* L012518 000001111001111110011111100* -L012545 000101111001111101000000011* -L012572 000101111001111100100000011* -L012599 000101111001111100100000011* +L012545 000101111001111100000000011* +L012572 000101111001111101100000011* +L012599 000101111001111101100000011* L012626 000001111001111110011111100* L012653 000001111000011100011111100* -L012680 000101111001111100100000011* +L012680 000101111001111101100000011* L012707 000001111001111100011111100* -L012734 000101111001111100100000011* -L012761 000101111001111100100000011* -L012788 000101111001111100100000011* -L012815 000101111001111100100000011* -L012842 000101111001111101100000011* -L012869 000101111001111101100000011* +L012734 000101111001111101100000011* +L012761 000101111001111101100000011* +L012788 000101111001111101100000011* +L012815 000101111001111101100000011* +L012842 000101111001111100100000011* +L012869 000101111001111100100000011* Note Block 2 * Note Block 2 ZIA * @@ -753,5 +753,5 @@ L025810 0* Note I/O Bank 1 Vcco * L025811 0* -C0459* -AA99 +CFB9B* +AA89 diff --git a/firmware/cpld/sgpio_if/top.vhd b/firmware/cpld/sgpio_if/top.vhd index a3e45d38..b93de6cf 100755 --- a/firmware/cpld/sgpio_if/top.vhd +++ b/firmware/cpld/sgpio_if/top.vhd @@ -137,7 +137,11 @@ begin begin if rising_edge(host_clk_i) then if transfer_direction_i = to_dac then - dac_data_o <= (data_from_host_i xor X"7f") & "11"; + if codec_clk_i = '1' then + dac_data_o <= (data_from_host_i xor q_invert_mask) & q_invert_mask(0) & q_invert_mask(0); + else + dac_data_o <= (data_from_host_i xor X"80") & "00"; + end if; else dac_data_o <= (dac_data_o'high => '0', others => '1'); end if;