From 47cc74e0d0c69433c27c5e1946f88fed5f725fca Mon Sep 17 00:00:00 2001 From: Luca Cuzzocrea Date: Sat, 17 Aug 2019 18:45:31 +0200 Subject: [PATCH] Aggiunto controllo risultato NaN --- IEEE754Adder.gise | 32 +++--- IEEE754Adder.xise | 21 ++-- SpecialCasesCheck.cmd_log | 3 + SpecialCasesCheck.ngc | 3 + SpecialCasesCheck.ngr | 3 + SpecialCasesCheck.prj | 1 + SpecialCasesCheck.stx | 0 SpecialCasesCheck.syr | 203 ++++++++++++++++++++++++++++++++++--- SpecialCasesCheck.vhd | 80 ++++++--------- SpecialCasesCheck_xst.xrpt | 47 ++++++++- TypeCheck.vhd | 43 ++++++++ webtalk_pn.xml | 31 +++--- xst/work/hdllib.ref | 6 +- xst/work/hdpdeps.ref | 16 ++- xst/work/sub00/vhpl00.vho | Bin 751 -> 743 bytes xst/work/sub00/vhpl01.vho | Bin 2662 -> 2654 bytes xst/work/sub00/vhpl02.vho | Bin 0 -> 841 bytes xst/work/sub00/vhpl03.vho | Bin 0 -> 3182 bytes 18 files changed, 380 insertions(+), 109 deletions(-) create mode 100644 SpecialCasesCheck.ngc create mode 100644 SpecialCasesCheck.ngr create mode 100644 SpecialCasesCheck.stx create mode 100644 TypeCheck.vhd create mode 100644 xst/work/sub00/vhpl02.vho create mode 100644 xst/work/sub00/vhpl03.vho diff --git a/IEEE754Adder.gise b/IEEE754Adder.gise index 47f567c..dce5a88 100644 --- a/IEEE754Adder.gise +++ b/IEEE754Adder.gise @@ -24,7 +24,10 @@ + + + @@ -83,11 +86,11 @@ - + - + @@ -95,7 +98,7 @@ - + @@ -103,21 +106,22 @@ - + - + - - + + + + + + + + - - - - - @@ -125,11 +129,15 @@ + + + + diff --git a/IEEE754Adder.xise b/IEEE754Adder.xise index 44bea3f..e2972ab 100644 --- a/IEEE754Adder.xise +++ b/IEEE754Adder.xise @@ -17,6 +17,10 @@ + + + + @@ -142,8 +146,9 @@ - - + + + @@ -207,7 +212,7 @@ - + @@ -222,10 +227,10 @@ - - - - + + + + @@ -251,7 +256,7 @@ - + diff --git a/SpecialCasesCheck.cmd_log b/SpecialCasesCheck.cmd_log index 4fe0e25..1168b5f 100644 --- a/SpecialCasesCheck.cmd_log +++ b/SpecialCasesCheck.cmd_log @@ -2,3 +2,6 @@ xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" +xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" +xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" +xst -intstyle ise -ifn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.xst" -ofn "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.syr" diff --git a/SpecialCasesCheck.ngc b/SpecialCasesCheck.ngc new file mode 100644 index 0000000..129b4db --- /dev/null +++ b/SpecialCasesCheck.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$bfx55=4:3CE\XZ5X=12>58682996D@_UU8Z867=87>0:=>?2::30>>78920NX]PIODL=>EHEDC_XHJ8;BPFEQCC92O?7HONA39EA1=ANOO:7J=4GOF2?L40CO[Ic:R-657499;8SA:4P@PWe>VNFVH^_DJWb:RJJZDR[GKFI;5\OTP@A47<[yohelbLargpGmcdc=1_U]Kl;TQFVZPN[@HGI45YIDU\P\VB<2R7<3;4X=33:0=_48;596V313<6?]:6;7?0T1?;>49[8439=2R7=;0:;Y>23;3^;97?0T149[8779=2R7>?0:;Y>17;3^;:?4>7U2=7?78\94?6<1S0?714:Z?6;35:1=_4>4?7U27>59[8<86l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO13QY_@DL8;YQW[BHC02RT^X9?UBNXH6;Y]23ZOE]O30TR?7_H@VB<=_W83TEO[I8:Z\5ZOE]O30TR3QU9;RGMUG;8\Z4?W@H^J45W_3;\MGSA02RT>RGMUG;8\Z57W@H^J45W_23\MGSA02RT?RGMUG:8\Z2XAK_M46VP5^KAQC>^X1VCIYK84Xe`\Ma773QnfS@oeosTfvvohf8:0TicPMhllvScu{`ee?6V|t59Z85823P6:<3;4Y=32:0=^488596W312<6?\:6<7?0U1?:>49Z8409=2S7=:0:;X>2<;3>49Z8749=2S7>>0:;X>10;3285V<34=1>_;:>4>7T2=8?78]94>6=1R0?0:;X>04;105;2_;07>0U1718:[\4ZOE]O30UR??_H@VB<=^W8;TEO[I9:[\57YNJ\L27TQ>3^KAQC?3PU:;RGMUG;8]Z7?W@H^J45V_0;\MGSA02ST=RGMUG;8]Z47W@H^J45V_33\MGSA12ST>?QFBTD:?\Y5;VCIYK74Y^07[LDRN01RS?;PICWE=>_X:?UBNXH6;X]13ZOE]O30UR<7_H@VB<=^W;3TEO[I8:[\6ZOE]O30UR=?_H@VB<=^W:;TEO[I8:[\7ZOE]O20UR:PICWE<>_X=VCIYK64Y^4\MGSA02ST;RGMUG:8]Z>XAK_M46WP9^KAQC3?7;hqMek708j1bCoa162\WR6?3`yEmc?7399jwKgi91237d}Aao03=f=n{Gke>=7PSV24?luIig8=n6g|N`l12ZUP8>1bCoa3448mvHff==0e~@nn524?luIig>:;6g|N`l552=n{Gke4884irLbj<1n;hqMekYHJ\L=7d}Uesma?lu]m{eTCO[Ie:z`7v37%<'{}?>79:{@l`el'N>27tMgebi,C<{GHy8ho6NOx369B?4=9rY<6;h51g827171>8094?>>{o4g>4=i>l0=7)8l:5;8yV0=>o0:j7?<40455?4?:990h?:50;395~U02?l1=k4>353524<50;::7{Z=3;295?7=1hqX;78i:0d95626>?;1>56?u?:08~kg7=831do54?::k75?6=,;818=5a2083?>o4n3:1(?<5419m64<632c8h7>5$30905=i:80976g<4<;:k0f?6=,;818=5a2087?>o4i3:1(?<5419m64<232c857>5$30905=i:80=76g<8;29 74=<91e><48;:k03?6=,;818=5a208;?>o4>3:1(?<5419m64<>32c897>5$30905=i:80j76g<4;29 74=<91e><4m;:k06?6=,;818=5a208`?>o493:1(?<5419m645$30905=i:80n76g=f;29 74=<91e><4i;:k1a?6=,;818=5a20824>=n:m0;6)<=:528j77=9810e?m50;&16?273g8:6<<4;h0a>5<#:;0?<6`=1;30?>o5i3:1(?<5419m64<6<21b>44?:%01>16;7c<>:048?l20290/>?4;0:l15?7032c?:7>5$30905=i:80:465f4483>!452=:0b??51898m12=83.9>7:?;o02>4g<3`>86=4+23874>h593;i76g;2;29 74=<91e><4>c:9j7`<72-8969>4n3395a=o??3:1(?<5899m64<632c397>5$309<==i:80976g74;29 74=011e><4<;:k;7?6=,;81455a2087?>o?:3:1(?<5899m64<232c3=7>5$309<==i:80=76g70;29 74=011e><48;:k4b?6=,;81455a208;?>o0m3:1(?<5899m64<>32c5$309<==i:80j76g8c;29 74=011e><4m;:k4e?6=,;81455a208`?>o013:1(?<5899m645$309<==i:80n76g87;29 74=011e><4i;:k42?6=,;81455a20824>=n?<0;6)<=:9:8j77=9810e::50;&16?>?3g8:6<<4;h50>5<#:;0346`=1;30?>o0:3:1(?<5899m64<6<21b;<4?:%01>=>:048?l>a290/>?478:l15?7032c3i7>5$309<==i:80:465f8e83>!452120b??51898m=e=83.9>767;o02>4g<3`2i6=4+238;<>h593;i76g7a;29 74=011e><4>c:9j<3<72-896564n3395a=h1<7*=2;:;?k4628o07d9?:18'67N3i2B9:6*>4;68mc<722c:<7>5;h32>5<>{ekj0;684?:1y'60<602B?m6F=6:&20?20;29?l762900e<<50;9l5a<722wio=4?:483>5}#:<0:46F;a:J12>"6<3h0ek4?::k24?6=3`;:6=44i0094?=h9m0;66smc483>0<729q/>84>8:J7e>N5>2.:87l4ig83>>o683:17d?>:188m44=831d=i4?::afc<72<0;6=u+2482<>N3i2B9:6*>4;`8mc<722c:<7>5;h32>5<>{ek80;684?:1y'60<602B?m6F=6:&20?d0;29?l762900e<<50;9l5a<722wio?4?:283>5}#:<0::6F;a:J12>"6<320ek4?::k24?6=3f;o6=44}ca0>5<2290;w)<::0:8L1g<@;<0(<:5b:ke>5<>o6:3:17b?k:188yge3290>6=4?{%06>4><@=k0D?84$069f>oa2900e<>50;9j54<722c:>7>5;n3g>5<2;29?j7c2900qol=:187>5<7s-8>6<94H5c8L70<,8>1m6gi:188m46=831b=<4?::m2`?6=3thi?7>55;294~"5=3;37E:n;I05?!732k1bj7>5;h33>5<>i6l3:17plm4;291?6=8r.997?7;I6b?M413-;?6o5ff;29?l772900e5;|`a1?6==3:1d;29?xde>3:197>50z&11?7?3A>j7E<9;%37>g=nn3:17d??:188m47=831b=?4?::m2`?6=3thi57>55;294~"5=3;37E:n;I05?!732=1bj7>5;h33>5<>i6l3:17plma;291?6=8r.997?7;I6b?M413-;?695ff;29?l772900e5;|`50?6=:3:14?:383>5}#:<0:?6F;a:J12>ob2900ct$37956=O;5fe;29?j7c2900qo8?:181>5<7s-8>6<=4H5c8L70d;29?xd2n3:1>7>50z&11?743A>j7E<9;hg94?=h9m0;66sm5d83>7<729q/>84>3:J7e>N5>2cn6=44o0f94?=zj5<5290;w)<::018L1g<@;<0eh4?::m2`?6=3th>n7>52;294~"5=3;87E:n;I05?lc=831d=i4?::a1d<72;0;6=u+24827>N3i2B9:6gj:188k4b=831vn8750;094?6|,;?1=>5G4`9K63=nm3:17b?k:188yg3?29096=4?{%06>45<@=k0D?84id83>>i6l3:17pl:6;296?6=8r.997?<;I6b?M413`o1<75`1e83>>{e=<0;6?4?:1y'60<6;2B?m6F=6:kf>5<5;n3g>5<5;|`66?6=:3:15}#:<0:?6F;a:J12>ob2900ct$37956=O;5fe;29?j7c2900qo:i:181>5<7s-8>6<=4H5c8L70d;29?xd3m3:1>7>50z&11?743A>j7E<9;hg94?=h9m0;66sm4e83>7<729q/>84>3:J7e>N5>2cn6=44o0f94?=zj?h1<7<50;2x 73=9:1C8l5G279ja?6=3f;o6=44}c4b>5<5290;w)<::018L1g<@;<0eh4?::m2`?6=3th=57>52;294~"5=3;87E:n;I05?lc=831d=i4?::a2=<72;0;6=u+24827>N3i2B9:6gj:188k4b=831vn;950;094?6|,;?1=>5G4`9K63=nm3:17b?k:188yg0129096=4?{%06>45<@=k0D?84id83>>i6l3:17pl95;296?6=8r.997?<;I6b?M413`o1<75`1e83>>{e>;0;6?4?:1y'60<6;2B?m6F=6:kf>5<5;n3g>5<h6=4=:183!422890D9o4H348m`<722e:h7>5;|`b=?6=:3:15}#:<0:?6F;a:J12>ob2900ct$37956=O;5fe;29?j7c2900qoo::181>5<7s-8>6<=4H5c8L70d;29?xdf<3:1>7>50z&11?743A>j7E<9;hg94?=h9m0;66sma283>7<729q/>84>3:J7e>N5>2cn6=44o0f94?=zjh81<7<50;2x 73=9:1C8l5G279ja?6=3f;o6=44}cc2>5<5290;w)<::018L1g<@;<0eh4?::m2`?6=3thj<7>52;294~"5=3;87E:n;I05?lc=831d=i4?::a=c<72;0;6=u+24827>N3i2B9:6gj:188k4b=831vn4k50;094?6|,;?1=>5G4`9K63=nm3:17b?k:188yg?c29096=4?{%06>45<@=k0D?84id83>>i6l3:17pl6b;296?6=8r.997?<;I6b?M413`o1<75`1e83>>{e1h0;6?4?:1y'60<6;2B?m6F=6:kf>5<5;n3g>5<5;|`:3?6=:3:15}#:<0:?6F;a:J12>ob2900ct$37956=O;5fe;29?j7c2900qo7;:181>5<7s-8>6<=4H5c8L70d;29?xd>;3:1>7>50z&11?743A>j7E<9;hg94?=h9m0;66sm9383>7<729q/>84>3:J7e>N5>2cn6=44o0f94?=zjk:1<7<50;2x 73=9:1C8l5G279ja?6=3f;o6=44}cce>5<5290;w)<::018L1g<@;<0eh4?::m2`?6=3thji7>52;294~"5=3;87E:n;I05?lc=831d=i4?::aea<72;0;6=u+24827>N3i2B9:6gj:188k4b=831vnlm50;094?6|,;?1=>5G4`9K63=nm3:17b?k:188ygge29096=4?{%06>45<@=k0D?84id83>>i6l3:17plna;296?6=8r.997?<;I6b?M413`o1<75`1e83>>{ei>0;6?4?:1y'60<6;2B?m6F=6:kf>5<5;n3g>5<5;|``3?6=:3:15}#:<0:i6F;a:J12>ob2900ct$3795==O;5+158a?l`=831b==4?::k25?6=3`;96=44o0f94?=zjkn1<7;50;2x 73=911C8l5G279'51>o693:17d?=:188k4b=831vno650;794?6|,;?1=55G4`9K63=#9=097dh50;9j55<722c:=7>5;h31>5<1;29?l752900c1<7>t$37952=O;5+1580?l`=831b==4?::k25?6=3f;o6=44}c`a>5<2290;w)<::0:8L1g<@;<0(<:59:ke>5<>o6:3:17b?k:188yv7>2909w0lj:0f89gb=9;1v=9m16n:4>2:p5g<72;q6nn4>d:?af?`7}Y:h168h4j;|q1f?6=:rT9n63;f;g8yv4d2909wS`=z{;n1<7h4?:3y]6`=:=;0n7p}=f;296~X5n27>?7k4}r13>5<5sW9;70;;:d9~w67=838pR>?4=479a>{t;;0;6?uQ339>1352z\07>;2?3o0q~=;:181[5334?36h5rs2794?4|V:?01875e:p73<72;qU?;525`8f?xu4?3:1>vP<7:?6f?c750;0xZ6?<57}Y;h169h4j;|q0f?6=:rT8n63:f;g8yv5d2909wS=l;<43>`=z{:n1<7;0n7p}5<5sW>:708;:d9~w14=838pR9<4=779a>{t<:0;6?uQ429>2352z\70>;1?3o0q~:::181[2234<36h5rs5494?4|V=<01;75e:p02<72;qU8:526`8f?xu303:1>vP;8:?5f?ch6=4={<`1>47<5=i1=i5rs5f94?4|5k81==524e82`>{t;3m3;o7p};f;296~;d>3;;70:i:0f8yv372909w0m9:g9>15<6l2wx9<4?:3y>g1<6:27>=7?k;|q66?6=:r7h87?>;<71>4b46<5<91=i5rs4694?4|5j>1j63:4;3g?xu2=3:1>v3m2;d8903=9m1v8850;0x9g3=98169;4>d:p12<72;q6o;4>1:?63?7c3ty>47>52z?a1?7734?365<5s4h>6k525882`>{t=h0;6?u2b5826>;2i3;o7p}:b;296~;ei3;970;m:0f8yv3d2909w0ln:03890e=9m1v8j50;0x9gg=99169i4>d:p1`<72;q6nl4i;<7f>4b44<5{t>80;6?u2b8824>;193;o7p}92;296~;e<3;:708=:0f8yv042909w0l6:g9>26<6l2wx:94?:3y>21<6l27i47h4}r46>5<5s4h?6<>4=7795a=z{?<1<7;1>3;o7p}97;296~;d>3;97088:0f8yv0?2909w0l<:03893>=9m1v;750;0x9g5=9916:44>d:p2d<72;q6n>4i;<4b>4b44<5?h1=i5rs6294?4|V>:014?5e:p34<72;qU;<52938f?xu0:3:1>vP82:?:7?c7}Y?<165;4j;|q42?6=:rT<:6367;g8yv102909wS98;<;;>`=z{>21<75<5sW=i707l:d9~w2e=838pR:m4=8f9a>{t?m0;6?uQ7e9>=`52z\4a>;>n3o0q~9i:181[1a34k;6h5rs9294?4|V1:01l?5e:p<4<72;qU4<52a38f?xu?:3:1>vP72:?b7?c7}Y0<16m;4j;|q;2?6=:rT3:63n7;g8yv>02909wS68;`=z{131<75<5sW2h70ol:d9~w=b=838pR5j4=`f9a>{t0l0;6?uQ8d9>e`52z\;b>;fn3o0q~7?:181[?734h;6h5rs8394?4|5j;1==529082`>{t1;0;6?u2c08e?8?528n0q~7<:1818da288014=51e9~w<2=838p14:51e9>fa52z?:1?7c34ho6<>4}r;5>5<5s43=603;o70lj:028yv?>2909w0m>:0089d:p=g<72;q6o84>1:?:f?7c3ty2o7>52z?:g?7c34hn65<5s4i>6<>4=8f95a=z{0o1<7;>m3;o7p}6f;296~;d83;9707i:0f8yvg72909w0ml:g9>e5<6l2wxm<4?:3y>gf<6827j=7?k;|qb6?6=:r7ho7?>;4b44<5h91=i5rs`694?4|5jh1j63n4;3g?xuf=3:1>v3lb;33?8g228n0q~o9:1818ee28;01l851e9~wd1=838p1n>5109>e2<6l2wxm54?:3y>gg<6:27j47?k;|qb=?6=:r7j57?k;<`;>4646<5hk1=i5rs``94?4|5j:1j63nb;3g?xufk3:1>v3nc;3g?8db2880q~ok:1818da28;01lj51e9~wdc=838p1oh5119>e`<6l2wxmk4?:3y>fc5<5s4i>6<<4=c295a=z{k;1<7464b<5k<1=<5rsc794?4|5k?1=i52b7826>{tj?0;6?u2b782`>;e?3l0q~l8:1818d028n01ol5119~wg?=838p1o751e9>fg<692wxnl4?:3y>fd<6l27in7?=;|qa`?6=:r7h?7?>;<`g>4b4b<5j81j6s|c183>7}:k90:h63l3;d8yve62909w0m>:0f89f4=991vn<50;0x9f4=9m16o>4>2:pg6<72;q6o>4>d:?ag?`4b<5k=1==5rsb794?4|5j?1=i52c2824>{tk?0;6?u2c782`>;e?3;:7p}l7;296~;d?3o01ol51e9~wf>=838pRn64=b;95a=z{j31<7;d13o0q~mm:1808ee28n01o65109>ff<682wxon4?:2y>gf<6l27i47?=;<``>47{I05?xh61h0;6;5rn0;g>5<6sA8=7p`>9d83>4}O:?1vb<7i:182M413td:m=4?:0yK63=zf8k:6=4>{I05?xh6i;0;6;5rn0c6>5<6sA8=7p`>a783>4}O:?1vb{I05?xh6ih0;6;5rn0cg>5<6sA8=7p`>ad83>4}O:?1vb{I05?xh6j;0;6;5rn0`6>5<6sA8=7p`>b783>4}O:?1vb{I05?xh6jh0;6;5rn0`g>5<6sA8=7p`>bd83>4}O:?1vb{I05?xh6k;0;6;5rn0a6>5<6sA8=7p`>c783>4}O:?1vb{I05?xh6kh0;6;5rn0ag>5<6sA8=7p`>cd83>4}O:?1vb{I05?xh6l;0;6;5rn0f6>5<6sA8=7p`>d783>4}O:?1vb{I05?xh6lh0;6;5rn0fg>5<6sA8=7p`>dd83>4}O:?1vb{I05?xh6m;0;6;5rn0g6>5<6sA8=7p`>e783>4}O:?1vb{I05?xh6mh0;6;5rn0gg>5<6sA8=7p`>ed83>4}O:?1vb{I05?xh6n;0;6;5rn0d6>5<6sA8=7p`>f783>4}O:?1vb{I05?xh6nh0;6;5rn0dg>5<6sA8=7p`>fd83>4}O:?1vb{I05?xh58;0;6;5rn326>5<6sA8=7p`=0783>4}O:?1vb?>8:182M413td9<54?:0yK63=zf;:26=4>{I05?xh58h0;6;5rn32g>5<6sA8=7p`=0d83>4}O:?1vb?>i:182M413td9==4?:0yK63=zf;;:6=4>{I05?xh59;0;6;5rn336>5<6sA8=7p`=1783>4}O:?1vb??8:182M413td9=54?:0yK63=zf;;26=4>{I05?xh59h0;6;5rn33g>5<6sA8=7p`=1d83>4}O:?1vb??i:182M413td9>=4?:0yK63=zf;8:6=4>{I05?xh5:;0;6;5rn306>5<6sA8=7p`=2783>4}O:?1vb?<8:182M413td9>54?:0yK63=zf;826=4>{I05?xh5:h0;6;5rn30g>5<6sA8=7p`=2d83>4}O:?1vb?{I05?x{zuIJHw?ml:b2;27>4;tJKNv>r@ARxyEF \ No newline at end of file diff --git a/SpecialCasesCheck.ngr b/SpecialCasesCheck.ngr new file mode 100644 index 0000000..8e3b39e --- /dev/null +++ b/SpecialCasesCheck.ngr @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$ccx74=(`fgn#A{la.KPA*OBML=>8Ljkes-Pt`enieIjh}Lhdah*snc9918>7GAPTV9J956294:<6==:HLSQQ<_4:;1<3??;209MKVR\3S7?<4?>`906?H;;80;2l5<2;Z?74<76h18>7W33083:g=4{<:{}?>7-468EKB5>2KEH?L>6:CM@1D6<2KEH564BTQ\MK@H12IDA@G[TDF4?FTBI]OO=6I<;FLG<>AXadzTK<<4I108M44<4I508M040B1>15:L?55823G6:=3;4N=31:0=I489596@315<6?K:6=7?0B1?9>49M8419=2D7=50:;O>2=;249M8759=2D7>90:;O>11;3H;:14>7C2=9?68J949=2D7?=08;O>05?69=2D7?<0;;O>0:1=I4=4?7C2:>59M83833G6<295A<9<7?K:>6:1EmCm4N`L\mhvXFhD:=6A<;NP17>IU;:1D^9=4OS:`?U(5889:<<=PL59SEWRf3YCESO[\IEZa?UOIWK_XBLCJ3:PWHg=TANH^_RGAFNc8WLAXJ\YBHUl4SHE\FPUIIDO:=6]ebkbhFgtmzIcine>;U68P\VB02^Te`~PT0a8PZrjxVey<=>?d:V\phvXg{:;<=?k;U]wiuYhz9:;4T^vntZiu89:;Sdcc:V\phvXg{:;<^;87?0T1??>49[8479=2R7=?0:;Y>27;3^;9?4>7U2>7?78\97?6<1S0<714:Z?5;3^;:;4>7U2=3?78\9436<1S0?;15:Z?63823Q69;3;4X=0;:0=_4;3586V32?78\9576>1S0>?50?78\9566=1S0>0;;Y>7:1=_4<4?7U29>59[82833Q63295W<8<2`>^ND@DS!UJM 1,2$VRRJ):%=-O\CHK5?]USD@H<7U][_FLG5`=_[]UBA]BJMDLWEQOHFVIDB^Z]AHLWW462RonRGk119[`hYJiceyZh||inl24>^ceVGbbb|Yesqjkk549Z8459=2S7=90:;X>21;3_;914>7T2>9?68]979=2S7>=0:;X>15;3_;:=4>7T2=5?78]9416<1R0?915:[?6=823P6953:4Y=0=1>_;;94<7T2<1;2=1>_;;84?7T2<>59Z81833P6>295V<7<7?\:06=1R050;;X>::0=n{Gkeh6g|N`l\ekb789:9<6g|N`l\ekb789:Te`~PirLbjZgil9:;<4irLbjZgil9:;=Rgbp^kpJdhXign;<=?>119jwKgiW`g{Sd}Aao35?lu]m{em7~azrbg\bljbfhgnh6}`usaf[ioimgh=7uMgebi7?}Oin=1sBl`j;ya0w06*=$zz>=69;xAkafm33pCej95vN`l~DEv5:;1KLu67:G81>4}Tm32<69851262237=:18;=v`75;38j=0=>2.3879i;|Qg>=1=n6=4>:0yPa?>02=<1=>:>67396=4792|M8l4?:082>5}Tm32<69851262237=:18;=6*:d;3g?!202>1i8h4?:5092?2?sE296{K0:0:w)l>:19~ 06=6;4ro`c94?=hj90;66g87;29 1?=??1e854?;:k41?6=,=31;;5a4982?>o0;3:1(975779m0=<532c<>7>5$5;933=i<10876g81;29 1?=??1e854;;:k44?6=,=31;;5a4986?>o1n3:1(975779m0=<132c=i7>5$5;933=i<10<76g9d;29 1?=??1e8547;:k5g?6=,=31;;5a498:?>o1j3:1(975779m0=5$5;933=i<10i76g98;29 1?=??1e854l;:k53?6=,=31;;5a498g?>o1>3:1(975779m0=5$5;933=i<10m76g94;29 1?=??1e854>0:9j26<72->26:84n5:954=:18'0<<0>2d?47?<;:k54?6=,=31;;5a49820>=n=o0;6):6:648j1>=9<10e:k50;&7=?113g>36<84;h5g>5<#<00<:6`;8;34?>o0k3:1(975779m0=<6021b;o4?:%6:>20290/84486:l75$5;933=i<10:o65f7583>!2>2><0b9651e98m3?=83.?5799;o6;>4c<3`?n6=4+48842>h303;m76gn2;29 1?=i81e854?;:kb4?6=,=31m<5a4982?>o>m3:1(975a09m0=<532c2h7>5$5;9e4=i<10876g6c;29 1?=i81e854;;:k:f?6=,=31m<5a4986?>o>i3:1(975a09m0=<132c257>5$5;9e4=i<10<76g68;29 1?=i81e8547;:k:3?6=,=31m<5a498:?>o>>3:1(975a09m0=5$5;9e4=i<10i76g63;29 1?=i81e854l;:k:6?6=,=31m<5a498g?>o>93:1(975a09m0=5$5;9e4=i<10m76g7f;29 1?=i81e854>0:9j<`<72->26l?4n5:954==n0h0;6):6:`38j1>=9<10el750;&7=?g63g>36<84;hc;>5<#<00j=6`;8;34?>of?3:1(975a09m0=<6021bm;4?:%6:>d75$5;9e4=i<10:o65f9g83>!2>2h;0b9651e98m<2=83.?57o>;o6;>4c<3`226=4+488b5>h303;m76l71;295?6=8r.><7??;I:3?j`=831vno=50;01>3<5=rF3>7?tH0a8yI>42;qen?4>d:&a5?65<!2>2:<0b9650:9j70<72->26>84n5:95>=n;:0;6):6:248j1>=:21b??4?:%6:>60!2>2:<0b9654:9j75<72->26>84n5:91>=n:o0;6):6:248j1>=>21b>h4?:%6:>60!2>2:<0b9658:9j6f<72->26>84n5:9=>=n:k0;6):6:248j1>=i21b>l4?:%6:>60!2>2:<0b965c:9j62<72->26>84n5:9`>=n:?0;6):6:248j1>=m21b>84?:%6:>60!2>2:<0b9651198m75=83.?57=9;o6;>47<3`896=4+48802>h303;976g=1;29 1?=;?1e854>3:9j65<72->26>84n5:951=2d?47?9;:k0`?6=,=31?;5a49823>=n;j0;6):6:248j1>=9110e>l50;&7=?513g>36<74;h1b>5<#<008:6`;8;3b?>o413:1(975379m0=<6j21b?54?:%6:>60290/844<6:l75$5;973=i<10:j65m5783>f<42lq/9=4:6:m66?6=3`8h6=44i3`94?=n:h0;66g=8;29?l402900e?850;9j60<722c987>5;h00>5<>d2;3:157>50z&64?223A2;7d?=:188m45=831b=94?::k21?6=3`;=6=44i0594?=n910;66g>9;29?j262900qo;;:187>5<7s-?;69=4H928m44=831b=>4?::k20?6=3f>:6=44}c76>5<4290;w);?:508L=6>i393:17p}:2;296~X2:27>97:>;|q1g?6=:rT9o63:3;30?xu5j3:1>vP=b:?67?753ty9m7>52z\1e>;2;3;?7p}=8;296~X5027>?7?9;|q13?6=:rT9;63:3;36?xu5>3:1>vP=6:?67?703ty997>52z\11>;2;3;27p}=4;296~X5<27>?7?7;|q17?6=:rT9?63:4;30?xu5:3:1>vP=2:?60?753ty9=7>52z\15>;2<3;?7p}:3;296~;2;3>:70;::008yv332909w0;;:538903=9:1vqo;m:18`>6k50;9j7a<722c8o7>5;h1a>5<>o403:17d=;:188f0>=8331<7>t$42900=O091b=?4?::k27?6=3`;?6=44i0794?=n9?0;66g>7;29?l7?2900e<750;9l04<722wi944?:583>5}#=90??6F70:k26?6=3`;86=44i0694?=h<80;66sm5`83>6<729q/9=4;2:J;4>o6:3:17d?<:188k17=831v8950;0xZ01<54=4:957=z{8l1<7=9=1v>k50;0xZ6c<5<21=;5rs2f94?4|V:n01865149~w6e=838pR>m4=4:952=z{:h1<7=901v>o50;0xZ6g<5<21=55rs2;94?4|V:301875129~w6>=838pR>64=4;957=z{:>1<7=<8169l4>2:p1<<72;q6944;1:?6e?743twi8=4?:283>5}#=9037E6?;h31>5<>{e980;644?:1y'159;29?j262900qo;>:187>5<7s-?;69=4H928m44=831b=>4?::k20?6=3f>:6=44}c3a>5<4290;w);?:89K<5=n9;0;66g>3;29?j262900q~=i:181[5a34>;69?4}r3b>5<5sW;j70?m:538yv`=839p19>5139>54<3927:n7?<;|q7b?6=;r7?<7?<;<72>17<58h1=?5rs4094?4|5<<19?525c866>{t=>0;6?u25c863>;293;97p}<5;296~X4=27:=7?=;%6g>607}Y;:16=<4>3:&7`?513g>h6?5rs2094?4|V:8012d?o7=4}r12>5<5sW9:70?>:078 1b=;?1e8n4;;|q04?6=:rT8<63>1;35?!2c2:<0b9m55:p6c<72;qU>k5210823>"3l39=7c:l:79~w7c=838pR?k4=0395==#4?<,=n1?;5a4b8;?xu5k3:1>vP=c:?62?4d3->o6>84n5a9=>{t:k0;6?uQ2c9>13<5j2.?h7=9;o6`>d=z{;k1<752z\13>;2>38<7):k:248j1e=l2wx>;4?:3y]63=:=?09:6*;d;15?k2d2l1v?;50;0xZ73<5<<1>85+4e802>h3k3l0q~<;:181[4334?=6?:4$5f973=i7}Y::169;4=3:&7`?513g>h65<5sW8970;9:308 1b=;?1e8n4>2:p64<72;qU><5257815>"3l39=7c:l:018yv472909wS76<,=n1?;5a4b820>{t9o0;6?uQ1g9>1g<6n2.?h7=9;o6`>432wx?i4?:3y]7a=:=k08h6*;d;15?k2d28=0q~=l:181[5d34?i6>m4$5f973=i7}Y;k169o4h6<74}r1b>5<5sW9j70;m:2c8 1b=;?1e8n4>a:p7<<72;qU?4525c80=>"3l39=7c:l:0`8yv5?2909wS=7;<7a>6><,=n1?;5a4b82g>{t;=0;6?uQ359>1g<4<2.?h7=9;o6`>4b{K0:09wcl=:0d8 g7=82w/9=4:c:X`>4}62tP?n7?t4;l7c<722e:m7>5;h14>5<#<008:6`;8;28?l52290/844<6:l7h303807d==:18'0<<4>2d?47=4;h12>5<#<008:6`;8;68?l57290/844<6:l7h303<07d2d?4794;h0g>5<#<008:6`;8;:8?l4d290/844<6:l7h303k07d2d?47l4;h0;>5<#<008:6`;8;a8?l40290/844<6:l7h303o07d<::18'0<<4>2d?47h4;h07>5<#<008:6`;8;33?>o5;3:1(975379m0=<6921b>?4?:%6:>605$5;973=i<10:965f3d83>!2>2:<0b9651798m6b=83.?57=9;o6;>41<3`9h6=4+48802>h303;376g9:9j7d<72->26>84n5:95d=2d?47?l;:k00?6=,=31?;5a4982`>=n:00;6):6:248j1>=9l10e365n4?::k1f?6=3`8j6=44i3:94?=n:>0;66g=6;29?l422900e?:50;9j66<722c9>7>5;h02>5<>o6;3:17d?;:188m43=831b=;4?::k23?6=3`;36=44i0;94?=h<80;66sm5583>1<729q/9=4;3:J;4>o6:3:17d?<:188m42=831d8<4?::a10<72:0;6=u+51876>N?82c:>7>5;h30>5<1v?;50;0xZ73<5<91=45rs3694?4|V;>018=5199~w75=838pR?=4=46956=z{;81<71=95rs4194?4|5<918<5254826>{t==0;6?u255875>;2=3;87psm5c83>f<42lq/9=4:b:m63?6=3`?96=44i3294?=n9o0;66gm50;9j7g<722c8m7>5;h1:>5<>d203:157>50z&64?223A2;7d?=:188m45=831b=94?::k21?6=3`;=6=44i0594?=n910;66g>9;29?j262900qo;6:187>5<7s-?;69=4H928m44=831b=>4?::k20?6=3f>:6=44}c7b>5<4290;w);?:508L=6>i393:17p}:7;296~X2?27>m7:>;|q66?6=:rT>>63:8;30?xu583:1>vP=0:?652z\2b>;203;?7p}47?9;|q0`?6=:rT8h63:8;36?xu4k3:1>vP52z\0f>;203;27p}47?7;|q0=?6=:rT8563:9;30?xu403:1>vP<8:?6=?753ty887>52z\00>;213;?7p}:8;296~;203>:70;n:008yv3>2909w0;6:53890g=9:1vqo:?:180>5<7s-?;655G819j57<722c:?7>5;n62>5<>o6;3:17d?;:188m43=831b=;4?::k23?6=3`;36=44i0;94?=h<80;66sm5083>1<729q/9=4;3:J;4>o6:3:17d?<:188m42=831d8<4?::a5g<72:0;6=u+518:?M>73`;96=44i0194?=h<80;66s|3g83>7}Y;o168=4;1:p5d<72;qU=l521c875>{tn3:1?v3;0;31?8762=;015129>14<3927:n7?=;|q66?6=:r7>:7;=;<7a>0401<5<;1=?5rs2794?4|V:?012d?o7?4}r10>5<5sW9870?>:018 1b=;?1e8n4=;|q06?6=:rT8>63>1;37?!2c2:<0b9m53:p74<72;qU?<5210821>"3l39=7c:l:59~w66=838pR>>4=03953=#41<,=n1?;5a4b85?xu5m3:1>vP=e:?25?7?3->o6>84n5a93>{t:m0;6?uQ2e9>54<612.?h7=9;o6`>==z{;i1<752z\1e>;2>38j7):k:248j1e=j2wx>54?:3y]6==:=?0946*;d;15?k2d2j1v?950;0xZ71<5<<1>:5+4e802>h3k3n0q~<9:181[4134?=6?84$5f973=i:7<:;%6g>607}Y:=169;4=4:&7`?513g>h6<>4}r00>5<5sW8870;9:318 1b=;?1e8n4>1:p67<72;qU>?5257816>"3l39=7c:l:008yv462909wS<>;<75>77<,=n1?;5a4b827>{t:90;6?uQ219>1g<582.?h7=9;o6`>42j4$5f973=i7}Y;j169o4h6<64}r1a>5<5sW9i70;m:2`8 1b=;?1e8n4>9:p7d<72;qU?l525c80e>"3l39=7c:l:0c8yv5>2909wS=6;<7a>6?<,=n1?;5a4b82f>{t;10;6?uQ399>1g<402.?h7=9;o6`>4e0(9j5379m0f<6l2wx>44?:3y]6<=:=80:?6*;d;15?k2d28o0q~?j:181[7b34?:6<:4$5f973=i5459K<5=n9;0;66g>3;29?l732900e<;50;9l04<722wimn4?:483>5}#=90j7E6?;h31>5<>o6=3:17b:>:188yggb290>6=4?{%73>d=O091b=?4?::k27?6=3`;?6=44i0794?=h<80;66s|a`83>7}Yih16mk4;1:pf5<72;qUn=52808e?xue=3:1>v3m3;1e?8ga2880q~l7:1808d028k01lm5149>e`<6<2wxmo4?:3y>ec<6<27jo7:>;|qb`?6=:r7jj7?:;174g<5hi1=>52ad827>{tj00;6?u2b680b>;fn3;87p}87;290~X0?27i?7=8;42<5ho1=?5+4e842>h3k3:0q~9::181[1234h86>;4$5f933=i206s|7383>7}Y?;16n>4<2:&7`?113g>h6>5rs6394?4|V>;01o=5309'0a<0>2d?o7:4}r53>5<5sW=;70l<:228 1b=??1e8n4:;|q5b?6=:rT=j63m3;0e?!2c2><0b9m56:p2`<72;qU:h52b281a>"3l3==7c:l:69~w3b=838pR;j4=c196a=#7e<,=n1;;5a4b8:?xu1j3:1>vP9b:?a7?4e3->o6:84n5a9e>{t>h0;6?uQ6`9>f6<5i2.?h799;o6`>g=z{?21<752z\52>;e;38=7):k:648j1e=m2wx:84?:3y]20=:j:0996*;d;55?k2d2o1v;:50;0xZ32<5k91>95+4e842>h3k3;;7p}93;296~X1;27i?7<<;%6g>202d?o7?=;|q55?6=:rT==63m3;02?!2c2><0b9m5129~w36=838pR;>4=c1965=#vP:f:?a7?7a3->o6:84n5a950=z{>o1<752z\4`>;e;39o7):k:648j1e=9>1v:m50;0xZ2e<5k91?n5+4e842>h3k3;37p}8b;296~X0j27i?7=m;%6g>20k01o=53`9'0a<0>2d?o7?n;|q4=?6=:rT<563m3;1:?!2c2><0b9m51c9~w2>=838pR:64=c197==#vP84:?a7?533->o6:84n5a95a=z{?31<7i7>52z\6a>;e;3;n7):k:648j1e=9o1vl<50;6xZd4<5k=1?:52ab826>;fm3;>7):k:`38j1e=82wxm=4?:3y]e5=:j>0896*;d;c2?k2d281v4k50;0xZ5+4e8b5>h3k380q~7k:181[?c34h<6><4$5f9e4=ik27i;7=>;%6g>d77}Y1k16n:4<0:&7`?g63g>h685rs8c94?4|V0k01o952g9'0a5<5sW3270l8:3g8 1b=i81e8n48;|q:"3l3k:7c:l:89~w<0=838pR484=c596g=#7g<,=n1m<5a4b8a?xu>;3:1>vP63:?a3?4?3->o6l?4n5a9g>{t1;0;6?uQ939>f2<5?2.?h7o>;o6`>a=z{0;1<752z\;b>;e?38?7):k:`38j1e=991v5k50;0xZ=c<5k=1>>5+4e8b5>h3k3;:7p}7d;296~X?l27i;7<=;%6g>d7vPn9:?a3?5b3->o6l?4n5a953=z{h21<752z\b3>;e?39h7):k:`38j1e=911vl850;0xZd0<5k=1?o5+4e8b5>h3k3;27p}n5;296~Xf=27i;7=n;%6g>d701o95389'0a<3:1>vP64:?a3?4>3->o6l?4n5a95`=z{131<7 Parameter xsthdpdir set to xst Total REAL time to Xst completion: 0.00 secs -Total CPU time to Xst completion: 0.04 secs +Total CPU time to Xst completion: 0.05 secs --> Reading design: SpecialCasesCheck.prj @@ -107,20 +107,199 @@ Slice Utilization Ratio Delta : 5 ========================================================================= * HDL Compilation * ========================================================================= +Compiling vhdl file "/home/Luca/ISE/IEEE754Adder/TypeCheck.vhd" in Library work. +Architecture typecheckarch of Entity typecheck is up to date. Compiling vhdl file "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" in Library work. -Entity compiled. -Entity (Architecture ) compiled. -ERROR:HDLParsers:3312 - "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" Line 49. Undefined symbol 'std_logic_vector'. -ERROR:HDLParsers:1209 - "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" Line 49. std_logic_vector: Undefined symbol (last report in this block) -ERROR:HDLParsers:3312 - "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" Line 51. Undefined symbol 'std_logic'. -ERROR:HDLParsers:1209 - "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" Line 51. std_logic: Undefined symbol (last report in this block) -ERROR:HDLParsers:3010 - "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd" Line 55. Entity SpecialCasesCheck does not exist. +Entity compiled. +Entity (Architecture ) compiled. + +========================================================================= +* Design Hierarchy Analysis * +========================================================================= +Analyzing hierarchy for entity in library (architecture ). + +Analyzing hierarchy for entity in library (architecture ). + + +========================================================================= +* HDL Analysis * +========================================================================= +Analyzing Entity in library (Architecture ). +Entity analyzed. Unit generated. + +Analyzing Entity in library (Architecture ). +Entity analyzed. Unit generated. + + +========================================================================= +* HDL Synthesis * +========================================================================= + +Performing bidirectional port resolution... + +Synthesizing Unit . + Related source file is "/home/Luca/ISE/IEEE754Adder/TypeCheck.vhd". +WARNING:Xst:647 - Input > is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. +Unit synthesized. + + +Synthesizing Unit . + Related source file is "/home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd". +Unit synthesized. + + +========================================================================= +HDL Synthesis Report + +Found no macro +========================================================================= + +========================================================================= +* Advanced HDL Synthesis * +========================================================================= + + +========================================================================= +Advanced HDL Synthesis Report + +Found no macro +========================================================================= + +========================================================================= +* Low Level Synthesis * +========================================================================= + +Optimizing unit ... + +Mapping all equations... +Building and optimizing final netlist ... +Found area constraint ratio of 100 (+ 5) on block SpecialCasesCheck, actual ratio is 1. + +Final Macro Processing ... + +========================================================================= +Final Register Report + +Found no macro +========================================================================= + +========================================================================= +* Partition Report * +========================================================================= + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +========================================================================= +* Final Report * +========================================================================= +Final Results +RTL Top Level Output File Name : SpecialCasesCheck.ngr +Top Level Output File Name : SpecialCasesCheck +Output Format : NGC +Optimization Goal : Speed +Keep Hierarchy : No + +Design Statistics +# IOs : 66 + +Cell Usage : +# BELS : 24 +# GND : 1 +# LUT2 : 1 +# LUT3 : 2 +# LUT4 : 20 +# IO Buffers : 66 +# IBUF : 64 +# OBUF : 2 +========================================================================= + +Device utilization summary: +--------------------------- + +Selected Device : 3s50pq208-5 + + Number of Slices: 13 out of 768 1% + Number of 4 input LUTs: 23 out of 1536 1% + Number of IOs: 66 + Number of bonded IOBs: 66 out of 124 53% + +--------------------------- +Partition Resource Summary: +--------------------------- + + No Partitions were found in this design. + +--------------------------- + + +========================================================================= +TIMING REPORT + +NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE. + FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT + GENERATED AFTER PLACE-and-ROUTE. + +Clock Information: +------------------ +No clock signals found in this design + +Asynchronous Control Signals Information: +---------------------------------------- +No asynchronous control signals found in this design + +Timing Summary: +--------------- +Speed Grade: -5 + + Minimum period: No path found + Minimum input arrival time before clock: No path found + Maximum output required time after clock: No path found + Maximum combinational path delay: 13.307ns + +Timing Detail: +-------------- +All values displayed in nanoseconds (ns) + +========================================================================= +Timing constraint: Default path analysis + Total number of paths / destination ports: 72 / 1 +------------------------------------------------------------------------- +Delay: 13.307ns (Levels of Logic = 7) + Source: Y<8> (PAD) + Destination: isNan (PAD) + + Data Path: Y<8> to isNan + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + IBUF:I->O 1 0.715 0.976 Y_8_IBUF (Y_8_IBUF) + LUT4:I0->O 1 0.479 0.976 isNan35 (isNan35) + LUT2:I0->O 1 0.479 0.704 isNan41 (isNan41) + LUT4:I3->O 1 0.479 0.976 isNan61 (isNan61) + LUT3:I0->O 1 0.479 0.976 isNan209_SW0 (N6) + LUT4:I0->O 1 0.479 0.681 isNan209 (isNan_OBUF) + OBUF:I->O 4.909 isNan_OBUF (isNan) + ---------------------------------------- + Total 13.307ns (8.019ns logic, 5.288ns route) + (60.3% logic, 39.7% route) + +========================================================================= + + +Total REAL time to Xst completion: 3.00 secs +Total CPU time to Xst completion: 3.05 secs + --> -Total memory usage is 584420 kilobytes +Total memory usage is 606300 kilobytes -Number of errors : 5 ( 0 filtered) -Number of warnings : 0 ( 0 filtered) +Number of errors : 0 ( 0 filtered) +Number of warnings : 1 ( 0 filtered) Number of infos : 0 ( 0 filtered) diff --git a/SpecialCasesCheck.vhd b/SpecialCasesCheck.vhd index 996bb0a..f74787a 100644 --- a/SpecialCasesCheck.vhd +++ b/SpecialCasesCheck.vhd @@ -1,59 +1,43 @@ library IEEE; use IEEE.STD_LOGIC_1164.ALL; -entity TypeCheck is +entity SpecialCasesCheck is port( - N: in std_logic_vector(31 downto 0); - NaN, INF: out std_logic + X, Y: in std_logic_vector(31 downto 0); + isNan, isZero: out std_logic ); -end TypeCheck; +end SpecialCasesCheck; -architecture TypeCheckArch of TypeCheck is - signal G_Bus: std_logic_vector(7 downto 0); - signal T_Bus: std_logic_vector(22 downto 0); - signal G: std_logic := '1'; - signal T: std_logic := '0'; + +architecture SpecialCasesCheckArch of SpecialCasesCheck is + component TypeCheck is + port( + N: in std_logic_vector(31 downto 0); + NaN, INF: out std_logic + ); + end component; + + signal xNan: std_logic; + signal xInf: std_logic; + signal xSign: std_logic; + signal yNan: std_logic; + signal yInf: std_logic; + signal ySign: std_logic; + signal isSameAbsValue: std_logic; + begin - G_Bus <= N(30 downto 23); - T_Bus <= N(22 downto 0); + xCheck: TypeCheck + port map (N => X, NaN => xNan, INF => xInf); + yCheck: TypeCheck + port map (N => Y, NaN => yNan, INF => yInf); + + xSign <= X(31); + ySign <= Y(31); - G_compute: process (G_Bus) - variable G_tmp: std_logic; - begin - G_tmp := '1'; - for i in G_Bus'range loop - G_tmp := G_tmp and G_Bus(i); - end loop; - G <= G_tmp; - end process; + isSameAbsValue <= '0'; -- TODO - T_compute: process (T_Bus) - variable T_tmp: std_logic; - begin - T_tmp := '0'; - for i in T_Bus'range loop - T_tmp := T_tmp or T_Bus(i); - end loop; - T <= T_tmp; - end process; - - NaN <= G and T; - INF <= G and (not T); -end TypeCheckArch; + isNan <= xNan or yNan or (xInf and xSign and yInf and (not ySign)) or (xInf and (not xSign) and yInf and ySign); + isZero <= (xSign and (not ySign) and isSameAbsValue) or ((not xSign) and ySign and isSameAbsValue); +end SpecialCasesCheckArch; - ---entity SpecialCasesCheck is --- port( --- X, Y: in std_logic_vector(31 downto 0); --- isNan, isZero: out std_logic --- ); ---end SpecialCasesCheck; --- --- ---architecture SpecialCasesCheckArch of SpecialCasesCheck is --- ---begin --- ---end SpecialCasesCheckArch; - diff --git a/SpecialCasesCheck_xst.xrpt b/SpecialCasesCheck_xst.xrpt index 2f03108..2217582 100644 --- a/SpecialCasesCheck_xst.xrpt +++ b/SpecialCasesCheck_xst.xrpt @@ -5,7 +5,7 @@ The structure and the elements are likely to change over the next few releases. This means code written to parse this file will need to be revisited each subsequent release.--> - +
@@ -117,9 +117,50 @@ +
+
+
+
+
+
+
+
+
+ + + + + +
+
+ +
+
+ + + + + + + + + + +
+
+
+ + + + + +
+
+
+
- - + +
diff --git a/TypeCheck.vhd b/TypeCheck.vhd new file mode 100644 index 0000000..8d95d1e --- /dev/null +++ b/TypeCheck.vhd @@ -0,0 +1,43 @@ +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; + +entity TypeCheck is + port( + N: in std_logic_vector(31 downto 0); + NaN, INF: out std_logic + ); +end TypeCheck; + +architecture TypeCheckArch of TypeCheck is + signal G_Bus: std_logic_vector(7 downto 0); + signal T_Bus: std_logic_vector(22 downto 0); + signal G: std_logic := '1'; + signal T: std_logic := '0'; +begin + G_Bus <= N(30 downto 23); + T_Bus <= N(22 downto 0); + + G_compute: process (G_Bus) + variable G_tmp: std_logic; + begin + G_tmp := '1'; + for i in G_Bus'range loop + G_tmp := G_tmp and G_Bus(i); + end loop; + G <= G_tmp; + end process; + + T_compute: process (T_Bus) + variable T_tmp: std_logic; + begin + T_tmp := '0'; + for i in T_Bus'range loop + T_tmp := T_tmp or T_Bus(i); + end loop; + T <= T_tmp; + end process; + + NaN <= G and T; + INF <= G and (not T); +end TypeCheckArch; + diff --git a/webtalk_pn.xml b/webtalk_pn.xml index 4c615a1..b32f26a 100644 --- a/webtalk_pn.xml +++ b/webtalk_pn.xml @@ -3,44 +3,37 @@ - +
- - + + - +
- - - + + - - - - - - - - - + + + + + - - - +
diff --git a/xst/work/hdllib.ref b/xst/work/hdllib.ref index c587bdc..c3b82a4 100644 --- a/xst/work/hdllib.ref +++ b/xst/work/hdllib.ref @@ -1,2 +1,4 @@ -EN typecheck NULL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd sub00/vhpl00 1566054138 -AR typecheck typecheckarch /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd sub00/vhpl01 1566054139 +AR specialcasescheck specialcasescheckarch /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd sub00/vhpl03 1566060236 +EN typecheck NULL /home/Luca/ISE/IEEE754Adder/TypeCheck.vhd sub00/vhpl00 1566060233 +AR typecheck typecheckarch /home/Luca/ISE/IEEE754Adder/TypeCheck.vhd sub00/vhpl01 1566060234 +EN specialcasescheck NULL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd sub00/vhpl02 1566060235 diff --git a/xst/work/hdpdeps.ref b/xst/work/hdpdeps.ref index a24de82..575f8eb 100644 --- a/xst/work/hdpdeps.ref +++ b/xst/work/hdpdeps.ref @@ -1,6 +1,12 @@ -V3 3 -FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd 2019/08/17.16:59:45 P.20131013 -EN work/TypeCheck 1566054138 FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd \ +V3 7 +FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd 2019/08/17.18:43:39 P.20131013 +EN work/SpecialCasesCheck 1566060235 \ + FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd PB ieee/std_logic_1164 1381692176 +AR work/SpecialCasesCheck/SpecialCasesCheckArch 1566060236 \ + FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd \ + EN work/SpecialCasesCheck 1566060235 CP TypeCheck +FL /home/Luca/ISE/IEEE754Adder/TypeCheck.vhd 2019/08/17.18:42:06 P.20131013 +EN work/TypeCheck 1566060233 FL /home/Luca/ISE/IEEE754Adder/TypeCheck.vhd \ PB ieee/std_logic_1164 1381692176 -AR work/TypeCheck/TypeCheckArch 1566054139 \ - FL /home/Luca/ISE/IEEE754Adder/SpecialCasesCheck.vhd EN work/TypeCheck 1566054138 +AR work/TypeCheck/TypeCheckArch 1566060234 \ + FL /home/Luca/ISE/IEEE754Adder/TypeCheck.vhd EN work/TypeCheck 1566060233 diff --git a/xst/work/sub00/vhpl00.vho b/xst/work/sub00/vhpl00.vho index f597501cbb197e8d83081e771137f9ec0f6a2b6c..e99f300e3108d4ffc0199f9f934fd8d67e25e6d0 100644 GIT binary patch delta 51 zcmaFQ`kZxw43l2fMmaGiMNR#T{M=N1pVH(+ea~Q5eNR_cS94Pn$CQ-RBK?rcg4D^e GOp^eeR}dfo delta 59 zcmaFP`kr-y43k*eMmaGiO+)>R{M=N1pVH(+ea~Q5eNR_cS94Pn$CQ-RBK_ck)a1;> O9OuO1)Z)pZOp^d5LlX)B diff --git a/xst/work/sub00/vhpl01.vho b/xst/work/sub00/vhpl01.vho index 65a8f37c621aec3bbc6fc087d93fc5591d05156f..a55a2816f64b1f10f0a1aeaa258b02eccfe77156 100644 GIT binary patch delta 51 zcmaDRa!+J}43l2R{M=N1pVH(+ea~Q5eNR_cS94Pn$CQ-RBK_ck)a1;> P9OuO1)Z)ogIZpxrHeM6l diff --git a/xst/work/sub00/vhpl02.vho b/xst/work/sub00/vhpl02.vho new file mode 100644 index 0000000000000000000000000000000000000000..8f670c9e62022bfb521af4b0ddfff47ba22e47d1 GIT binary patch literal 841 zcma)4Jx?1!5PinRfRI2IQYa`WB4h!QPe$Mf7YJh<$B{(*tQspP4L{yY?c{96bKu|EcoqIbwGdnZ;Vm!SciLu*FC%r}Z%3{^JLxdqlVkzT`KYLR3JOR5MjO5-VeNp%;KR`{|~Fza9IEV literal 0 HcmV?d00001 diff --git a/xst/work/sub00/vhpl03.vho b/xst/work/sub00/vhpl03.vho new file mode 100644 index 0000000000000000000000000000000000000000..d0175ece1df4394b98dea3be779a7d32e61bf64a GIT binary patch literal 3182 zcmb_eTWFj`6#gcc#;9oxG1eH0#42e@$+|UGQzT@q3Efg6$$DF~gx}4YEX{qJHY+G? zkzhj+DG;_AEfvoQK6&{g@_38L5PS@AA}SH&v$12-N~-qClCCyGiT2E z&Y5$W9aB+R1)y5KaU2GAT$Y*Au@~BZ4CgSPFXiV4W!9LOOs6uz=%FB+&K?>`r;f*_ zQzN3j0JFHFqB~@~9e6SW9O(oGYJub$5G(?j9559Ja!tV7=YUT(frfc2-`fxLwE)lF z0FGS&(iecS0GNpauNmOoDd5v}wE)xr=NEvF>VdD%06(+<*KWWh)?hvs8S#cBhpSly z?pW59?_VX*D!ThufP44KsrZqfI4>)0(bfkW#~Y6g$PyI z7YG;`9@t&>l(gQyuA(|P2~~^t_1YtERnx%STCMh(++L?4))7xoFxU8N!%A)o3?zLrKMz1<&9c86^iV{ioN*TrNnQS5$OUGW$J{OG6q-~#g z2>01ey9EMkQtFqbw)dv(C*e3QJA>WJE-P?Z66|Nk6@2Wnoy=}$2c6yk-dF|RT&7z7 zJk0;LSywIWWanj%@Erm%9oO@0|M#}bMb7h#cL{sHz@=xrT^yI5Nw@NT2|c@*1U`rX zm)le?w56WqoM*gWJkJ~gF&($t;(ocL7+o?-1R1?AR)DX>2cbE@?dy{FlTfpK59mzg zcq96>7603Q-E;Vi!8aM;yH4c_zT4L&?>-^o@79^hY310Zjt*aRn;Az(a%YmL`;g9X zwbs>)UFzs`6EM5>38Mn0dKsp60r)*ofduf&XLhIV98CR`tQU)S8j~ea||~z7^n~jbfySB`<$Pi!FCtf_eN5@OM-3&J!7!?tb8= zDc*Ui6XtM>ZzDYW(OQ_N<-f+Ps*Xg|`N1Xsfk;XDBu;g5o3V==Ic}qzn-#o;i>r6K z8_lwibB3ZCo{9C9%@DmS$0E z(L7&Lb&{_z0>t<7#aEsq&sr%i5mLEO)JOPF&%!8Cp{zCOzAys?S!O(pCb`V`9!_k$ zdIxl#A6&+HJIYO8bIrae2jqRr7ZqQPbCr5_tqq%Y;Z?D?T>a+Hpo#Hz?#do%BG?p*}eSD+p)WkFe#6|qin)Jtq ozb$(r7#|9zhqxhBnLWWNEpM0U;ON9~CN&t19_Zk%P!*%_FSB;RM*si- literal 0 HcmV?d00001