Florida State University Libraries

Size: px
Start display at page:

Download "Florida State University Libraries"

Transcription

1 Florida State University Libraries Electronic Theses, Treatises and Dissertations The Graduate School 2010 FPGA Implementation of Digital Filters Using MCM Abhijit Patil Follow this and additional works at the FSU Digital Library. For more information, please contact

2 ! "#$%!&'($(#'#%!"$%)%$%) %"#$#'&'&''%!& $*$%&!$ )$!& #$!&(%( )$+#$, $$-./0/

3 $!&(!#""$!1!&2#' &%!%#3-./0/ % #5$%%$ $!&!$$(%) (!$$%%$!$ %)!$ ""$!1, (!$$%%$-#$-"#$%!&'($(#'#%!"$%)%$%) %)6%%-#%-6!'')!&%)%$%) $# #(!!'#1$& #% #""$!1 #!16%# (!$5

4 +!' '7!8"$ "#""$(#!%!# 1$$5% #5$%%$- +!) #%(- ""!$#% %(!$#)%&$! 1$ #$' #)!& $#$(! &%#''1''"!#((!"'+!$75!1#''#%!"!$#%!+ &#% +% +#%!)%)$'5!%$#! &&$%+#!#""$!#(#$#$( "$!' #% %! "$%! #((!"' #% )!#'5 9! $ ) #%( #% "$%'"+!' #1%!"!'5 #%!$!$#%7%!+5 )$#&''#%7(!$$5(!$$%%$#% $-%)-+! )#1%)&'(!%#% $1+ +!$7!%#1$!$%!(5$($(#'(!% '"!#7!$1#'#'5 +!' '7!#%7'##(7!%#% $(#"$!%&!$"$!1 %)##%(+!(%#!%#% #'''""(#''#%!&#$5 +!' #'!'7!#%7 &$% #% $#$()$!"&!$$!$#'""!$5 #'-!&&$$)#$ #% '%)!#''!&!+!""!$ %#%$"( $%)(!"'!%!&"$!2(5

5 '#6)#!%1$$ )#''$ : 05:'"'!%#%'"'(#!%;< ' $!)$##'#$$#;< = 05>$)#%?#!%& @ A.50$!'#%!$ A.5.&&$%')!$&!$!'1%)$!' ''6#$$!(7! & ')!$;< %6%!%#' ( # $)$#";6%< :.5.5: >.5:&&$%( $$#" =.53!"#$!% A : :50$($#% )% :5."!%!&'$ :5:!&'"'!%#%'"'(#!%! "'%!!"'$ > A 350 "'%#!%!&+#$ A 1

6 35.#$)1(,B'%8$ :/ 35: "'%#!%(%* :3 35:50'$+)"$&!$#%( :C 35:5.'"'$# )% :C 353'#!%#% )%!&'$% :C 35350)% :C 3535.'#!% / 3535:%#'!&"'%#!% >&&(!&!%'$ "'%#!% A >5 9D >3 B >> B = CC D @0 1

7 )$050)#'#$(($&!$ '#6)#E.F )$05.'$"$!( : )$05:$!&'"'(!%#%'"'(#!% = )$053$(($!&E:/F C )$05> % #$(($!&(!%&)$#''!)('!(7E:/F @ )$.50'"'$'!( / )$.5.$#%"! &!$!&#% &'$%)'"'$'!( )$.5:#'?#!%!&(!&&(%G0-C-@-.:-3:H%) : )$.53#'?#!%!&(!&&(%G0-C-@-.:-3:H%)6% )$.5>$#"#&$$#'?#!%!&> @ )$.5=&$$)%)%! >#% C> A )$.5C$#"!+%)# $I&(!&!$ &&$%#')!$ / )$:50$#%"! &!$+0AA(!&&(% )$:5.'"'$'!(7 )%E:>F : )$:5:$*%($"!%!&'!!"&'$ )$3503@'(!%#%%)+!3@'(E0CF :0 )$35."'& 3@'(! 'E0@F :: )$35:$$#%)%!&'(%E0CF :3 1

8 )$353!%1%!%#'"$!(!$;$#'<E:.F := )$35># ;#$#'''<E:.F := )$35C $$ ($"!%'!)(#!% :A / )$35A' %)'!(7%'#!%"$!( )$350/'#!%$'&!$0AA(!&&(%&'$ )$3500$#'?#!%;%J<$#)6&!$+#$ )%#% "#$ )% : )$350.$#'?#!%;%J<&!$0AA(!&&(%&'$%)#% )$350:% > )$3503#'$)$$"!$ = )$350>''#) C )$350=%)(!%$#% )$350C1('?#!%#$ &'$ A )$350A(#(!&&'$ >/ )$35./$#'?#!%;%J<&!$00(!&&(%&'$ >0 )$35.0$#'?#!%;%J<&!$.>(!&&(%&'$ >. )$35..$#'?#!%;%J<&!$>0(!&&(%&'$ >. )$35.:$#'?#!%;%J<&!$0/0(!&&(%&'$ >: 1

9 1 #'.500/%!%6?$!(!&&(%!&'!!"&'$#% %)$$"$%#!% A #':50!&&(%#% *#%? (!&&(% #':5.! #% $$"(1 &&$%(I$"$%#!%!&)$#" = #'350$!&'("$&#'$E0CF :. #'35.)%#$&!$00(!&&(%)"#&'$ >0

10 "'%#!%!& )#'&'$ % ' $!)$##' # $$#;< $*$ #%'"'$-+( $('$'#!"'%#!%(!5$#$( 1!!+#$ &&(% "'%#!%!& )#' &'$ % %) '"'!%#% '"'(#!%;<5$+!$7$'%$ (%)#$#$*$!"'% )#'&'$ $ ( %$!&!%&)$#'!)('!(7;<#)5'"'(!%#%'"'(#!%! $#'? # %$!& (!%#% '"'(#!% %) % %$!& # $I $#(!$#% &5'"'$'!(7(#% )% %) &&$%#')!$5 $#$( %1!'1 %) 1#$! #')!$ #% $ &&(!% )#' &'$ "'%#!%%5$#((#'"'%#!%!&&&$%( $$#"; < #')!$8"'!$ %+!$75#$(#'!%(' &&(%"'%#!%!&'!!" &'$&!$ '#6)#(!%1$$&!$%! #"%) % ("5 '!#% % +!$7!+## &+$%$!&# $! )%#'"'$'!(7&!$!$'!!" &'$ #%!$ #')!$5 B'%8 $863 # #$) 1( &!$ "'%#!%!& '!!" &'$5 $863 1( "$!1 # )!! "'#&!$ &!$ #""'(#!%5 "'%#!%!& 1#$!!$ $ )"# &'$#$#'!#%#'? % +!$75 )"# &'$#$ )% % %) #')!$#% #$ %? %) $863 ("5 ' #(1 $!) $#$(!+ # "'%#!%!& )#'&'$%)$'%)%&(#%#$##1%)5 8

11 ! "! #! $ %!! &'( "&'( #! &'(! &'( ) ) * + ),+ --. ) ) ). + +/ $ ) ( 012 +/ +/ +/ /

12 +/ +/ "#)5 +/"#) "# $ +/ 6 +/ +/ +/ + + "# 789 1

13 +/ ( 1 13 * "# "# ) + :

14 "1# "# )4"# "# ) << )-/ +/ = +/ "# +/ /!"!"#$ % ( $& 4! + + / ) /!! % = % ) ( %! ) ) 4 ) ) >!?. 0<2) (' 0@2).> 0A2 ;

15 ('0:2C (' D (' (' (') ) / ( / / / / /- (' = + 4 ) ) /! )4/ E:A)1)<)-F: 4 :A4)14)<4-4$G)$G1)$G:$G; ; :A4)4 ; H4 14:A4/:A4)14)<4)-4 + :A4I;JJ4K":JJ4K""1JJ4K4#K:JJ4##":# 14I:JJ4K""1JJ4K4#K:JJ4#";# <4I"1JJ4K4#K1JJ4"B# -4IJJ"1JJ4K4#"H# 7JJ9 B

16 :3 &'()*$)% "&'( # ">G#) L>G &'( ($! &'( ($! 4 &'( M4L4; &'( "!G. #) %=!G. &'( )!G. "G?$# ( &'( & &'(!G. ; &'(%= H

17 ;3(&'(0:-2 B (!G. ))?M B ;) H ( B ) 4 4 A

18 B3 0:2 $ &'( $&M4 &'($& L4M4$6 0H201H201A2 +,-. /!1 + +! 4) >!?.(' (4 * ('!: ('C (G(.!; &'(

19 //0 // "! # + $ 4! "! # 4 +! D + ) 4 ) 4.> )(')>!?.('* >!?.(' 4 ('. ('* / ) + ) " # /! "! # (! 1 L 4!)!1)!:N!!4)!14)!:4N!4 <

20 13? ) + ) ) + 0<23 # 1#! 4 :# ( ;# 3 + +! $ "!$#.9 ( ). 0<2 -

21 !$6 ) ) 4 4!$!$ / ) $)9 4, ( + 0H2( 4 0@2 4!$6 / / + / >! (0: ( 1!#2 '-'.$1 %. > ".>(# 0H2! $ "!$#. > (0H2 3) ( ( (%

22 (% (% % 4 ) % % 0A2 ) $! "$! # 11 1: / E)A)@)1:);:F.> 113 1

23 1:3/ 0A23 & 4.> )!$ 1 &.> :!.> '!#''')".$)% ('"('#! 3 ) / / :

24 ('.>(.> ('.>(.> G ;-<H (' )? ( /( ( ) 1; / E)A)@)1:);:F : 1;3/ E)A)@)1:);:F (' ( 4 / ;

25 > / 1 + / / ) / ) ) 1 >!?.0<2 >!?. (' =.> (' < >!?. ('< < 0<2(' < >!?. 3 ('D (' ) 4 >!?. >!?.) (') = /) ) + C ) ( * G(' >!?. B

26 ) 4/+ "$! # 34 )> (M. ) >!? ) ( ( + ) ) + 4 )> (M. 4/ + ) >!?.) + 4O/ + >!?. (' :1-- ( 1-P ('0:A2 --#'')". ( (' (' "('# 0:2 (' (' + (' (' 4(' >!?. 0:2('>!?. (' (' 3 ( 1) 3 / + / / H

27 +/C+. + ) / / ) 1 L L1 + / + / / )+1+ / ) + ) + ) + + /4 ( + = / ( ( +1L L1 + + ( ) / / * / /) /4 (/ / ) +! "!$# / + + (+ ) +1! 4 EB) AB) -BF ) ) B/1QKIB+ A

28 1 B) AB) -H)BAB)B-B C ( / + =+ $B / ) + / ( 1B 1B3'/B,4BAB $B / AB/ ) ( ) /)

29 1H3( BAB &" 1A / B 1 13-/ ---- :1B -@AA -1B: -1B< --B1H --1H --B ---; ---;: :1AH@ ;:--@ HB- A-BB ;1B ;<B :; ;- (' A 1: 1; >!?. : 1 (' H <

30 1A3' % 1-

31 // = "# << = / /C! 4(' ( 4 = (' % H 0!#!' %( (% ) 02012= = 02! (, G",G# << -/ $ / : -/!$" # - 3 1

32 :3!!$+/ ; :@ A1 - <@ = ---- :1B -@AA -1B: -1B< --B1H --1H --B ---; ---;:!$ +/ ;:--@ HB1 A-BB ;1A ;<H :; ;- : << 4"# "# -<@ :3 << (' ) 3 R S - R S ( <A ) / 11

33 /<<, ) :1 (G(.,G /! C 4 (' :13 0:B2 1:

34 "-. C (G(. C + ) :: +! ::3+ 1;

35 -!"!"#"./" C ('! ( ) 3/ + / + ) / C +/ ( & 3E::B;1A<::;1BAAH<@BB;:B<A-BBF ( + 1 $) C /) /) :1,, ) :1 (G(.0:H2 1B

36 '2 : : : : : : : : : :B :B :B :B :B :B :B :B ;1A :13, % ' --#(3'2'' : )B)1:)1A)1< :B :)<)A):)::)<)1A)1< ;1A :)1<);-<B)1-H:)1-A<);-H:);-HB);):-:):HB):@A):<<<);<);1:);1B <: 1:)1<):B);A)H)AA)@B)@<)< 1BA )1<)1BB)<:)11B)1;)1;<)1B: AH< -A)H<):;:);1A)B<<)A1A)A<)@1:)@:<)@;A)@B)@B: ;: 1A)@)AB)1B):-:):HA):<<);B);1:);1A);1< A-BB ;;):A)A-:<)1<B<):B1A)B--A)H-:)H<1A)A-1:)A-;A)HB;:)HA<<)H<<)A-B)A-B: :B )::)1A ;1A )B<)1-A<);-HB)1;:)::B):@-<):H:):@A<);--: <: : :; <:)BB)1A)1A< 1BA <):)::)1:<)<B AH< :A)-:);;:)H-A):B<)A:)A<: ;: HB)1B)@:)1:):H<):-A A-BB ;:<)@@):-@A):B;:)B-A)H-H:)HBB<)H<:)H<<:)H@-A ;1A -1:)1-@):B:)@@A):--A):BHA):@;A);-BA):<@A <: )1:)1<);A :; ;A)H)1A)B:)1-)1< 1BA 1:)A:))A)@A AH< 1HB)BAB)1<B);;B)A@B)1-B)AB ;: 1<)<<)B)1::)1<):H A-BB <-B)1BAB)ABB):B;B)H<B);@B)B<:B)H;<B)HAAB)H<@B <: -BB)B)1-A)@1B)1H:<):<;)::@:):ABB 1H

37 '2 ;1A ;1A ;1A ;1A ;1A ;1A <: <: <: <: <: <: :; :; :; :; :; 1BA 1BA 1BA 1BA AH< ;: :1 ' --#(3'2'' :; 1BA B);-<A):A)<:B)1-A):-<<):H: ;-<)A-A)1;A)1;<)1A: ;: 1:)HA<)11A<):1HB)1;-:)1AH< :; :)BB)1A 1BA ;)A)B)AB ;: B<):)H<)1;B):: A-BB 1BA 1BA)B-<)A:)1<< ;: <:)1B);B A-BB AH< :<)A:)1<<):; ;: A-BB ;: AB)<:)H< A-BB ;: A)B:)H;: A-BB 1B)AAB):<BB)B:;B)HH1B):H:B A-BB B<)1-A):H-A):A;:)H<:)HA:A)B:: 1A

38 = :1 4) : E)B)1:)1A)1<F :B E:)<)A):)::)<)1A)1<F $:B/) :B / ( + /, 3E::B<:1BA:;;:AH<@BB;1AF ( + / )/ + H 1; )(' A 1 >!?. : 1 / / 3E::B;1A<::;1BAAH<@BB;:B<A-BBF 1@

39 & ) / &'( "&'( # $& 4) M4L4;&'(! "! # L4; $& $&;@ C! *! $&;@ / % )$&;@! (! $&;@ ) /! &'(! / $&;@ 4 -)1;)B--- & "0-3 M4$6- $ $6 M4) $ M4$6 )G ) ) CL>G M4$6 C %= & %= ) 1<

40 ) *( C ) C ( ) /) ))( ) ( )%= ) ) G? ) ( ) &'(? M4 O('0<2 &#45676& C M4L4;, G L4; ($! 4 4 L4; GM)$MML4;GM ) $M )M 0@2. $& L4;$M L4; ) ) ( 0H2 $&;@ &'( + 6 $& % 4 9 ;@ 4 4 D 9 :H)9 ( ;@9 ;@! $& &'( L4; ) :-

41 L4; $& & $& $& / L4; $&;@ / $& 4$& ;0A2; $& M4L4; ;3$&;@$&;@ 0A2 :

42 ;3,$& 0A2 M!;LGMB :1 M!;LGM1B M!;LGM;- H; M!;LGMH- M!;LGM-- <H M!;LGMH- <H M!;LGM1-- <H M!;!$M1B ; ; M!;!$M:B ; M!;LM1 :1 M!;LM1- :1 M!;LM;- ;@ M!;LMH- 1@ 1 M!;LM-- H- 1 M!;LM;- <1 1 ;1 $&;@ =& =6 ;@ 4 : % :H4 4 ;@. 1 =& =6)$?.(!)!(U,$6G)!,;1)(.@! ;@ $&;@ & ;@$&;@ :1

43 L4; L41$:.( ) + C :1VT ( * ( 4 ( ) 44( + )!G. "!G. # 6!G. $G!6G )$G!6 ) 4) ) =$G!6 6!G. 4 ;:!G.0H2 ::

44 ;:3(!G.0A2 ;"G? #L4;&'( (;. ; L4; &'( 4 ) 4)!G.!G.!GV) % 0A2 0@2 &)"#.8! ) ) "($!#) &'( LG$ &'( :;

45 ) &'( $& )($! 401H201A2 $& " (!#) (! >) (! &'(. &'( + ) &'( (! 4 ( / &'( ;;;B $& &'( C << 4! $& $&) << << (&'( << :B

46 ;;3!$& " #0:12 ;B3&'( $&"& #0:12 :H

47 & 3..."-# > +. ) > &'( + 01H2 &!"('' ( $ ) &'( ) ) ( G? G? +!G. "!G. # ) ) % 01H2 &&0!'-7/ && *C! L4;! 789 L>G M4$6! )! % L>G (G(. L>G) + +/ :A

48 ) L>G) 19! C (G(. L>G (G(. 3 3 ) )!"#"3 4 ) $3. $3.4 (G(., G (' ) ) ) ) ) ) ) (4( ;H L>G 4 ;H36 % ;A L>G ('! :@

49 7$M9 4 $ :W 1HW D (! ) ;A ;A3( (' ;A ( ;@) :<

50 / &&0! $ ) )4 ;-

51 ?, G $ ;<( ) C $ ;<3. ) C (G(. = ) / (G(.64+ ) ;

52 + ;- $ $ M4$6 C ) ;-3$ << $ ( 4) + ) ' ) 40B2(!G. ;G?$ C! &'( ;! $ ;1

53 ;3(/"P#! ; /!! $&;@ ) ;! )! ('! ;1 >!?.(' (') >!?. ;:

54 ;13(/"P#<< >!?.(' &&*-" ;: >G % 111B H ;;

55 ;:3>G ;; ;-1 : = ;1 D G? ;B

56 ;;3 ;B M4$6 ".6G$# B:%=9 4 ( H ;H

57 ;B3! ;H :A<: :B1A -1HH ;A / + :1<)!G. $G!6 < ;A

58 ;H3 ;A3/

59 &+--#- "! &'($!, )$& ) 4 /! 4 C ) C >!?.0<2! ( >!?.0<2 <! L>G % ;@ ;<! ) ;@ );< ;@3G ;<

60 ;<3G! ;1 $ - ( )! //$&;@ ;1- /! ); -) 1;)B---&'(!! ;1 ;1:( ) ( )! B-

61 ;13! %P $ ( %P, $ ;B<%:P 1B1%1P 1)1@@, ; <;@%AP )1;-%-P 1)1@@ G?, H);; $, ;@%1-P ;@%1-P 1;- =., % % :1.?'%.?'!G ;1-3(?/"P# B

62 ;13(?/"P#1B ;113(?/"P#B B1

63 ;1:3(?/"P#- L>G &'( 4 6! 4 / B:

64 + /009: )! C +! (' + (' >!?. (' ('.> (' >!?.! &'( &'( $& &'( $& ) $& L4; $& )$&;@! &'(! $&;@ C! (! + /)! C )! &'(! ) $&;@ / ) B;

65 5 7/// library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity matlabfilter is Port ( clk : in STD_LOGIC; e : in STD_LOGIC_VECTOR (17 downto 0); x : in STD_LOGIC_VECTOR (15 downto 0); y : out STD_LOGIC_VECTOR (17 downto 0)); end matlabfilter; architecture Behavioral of matlabfilter is -- Add Signal Declarations signal t1_sig : std_logic_vector(15 downto 0); signal t2_sig : std_logic_vector(17 downto 0); signal t3_sig : std_logic_vector(13 downto 0); signal t4_sig : std_logic_vector(15 downto 0); signal t5_sig : std_logic_vector(13 downto 0); signal t6_sig : std_logic_vector(13 downto 0); signal t7_sig : std_logic_vector(13 downto 0); signal t8_sig : std_logic_vector(15 downto 0); signal t9_sig : std_logic_vector(11 downto 0); signal t10_sig : std_logic_vector(11 downto 0); signal t11_sig : std_logic_vector(15 downto 0); signal t12_sig : std_logic_vector(16 downto 0); signal t13_sig : std_logic_vector(15 downto 0); signal t14_sig : std_logic_vector(15 downto 0); signal t15_sig : std_logic_vector(11 downto 0); signal t16_sig : std_logic_vector(12 downto 0); signal t17_sig : std_logic_vector(13 downto 0); signal t18_sig : std_logic_vector(14 downto 0); signal t19_sig : std_logic_vector(15 downto 0); signal t20_sig : std_logic_vector(16 downto 0); signal t21_sig : std_logic_vector(17 downto 0); BB

66 signal t22_sig : std_logic_vector(17 downto 0); signal t23_sig : std_logic_vector(17 downto 0); signal t24_sig : std_logic_vector(17 downto 0); signal t25_sig : std_logic_vector(17 downto 0); signal t26_sig : std_logic_vector(17 downto 0); -- Shift Register Type Declarations type shiftreg_t3_2 is array (0 to 1) of std_logic_vector(12 downto 0); type shiftreg_t4_3 is array (0 to 2) of std_logic_vector(14 downto 0); type shiftreg_t9_18 is array (0 to 17) of std_logic_vector(10 downto 0); type shiftreg_t10_2 is array (0 to 1) of std_logic_vector(10 downto 0); type shiftreg_t11_2 is array (0 to 1) of std_logic_vector(15 downto 0); type shiftreg_t15_30 is array (0 to 29) of std_logic_vector(11 downto 0); type shiftreg_t16_43 is array (0 to 42) of std_logic_vector(12 downto 0); type shiftreg_t17_37 is array (0 to 36) of std_logic_vector(13 downto 0); type shiftreg_t18_33 is array (0 to 32) of std_logic_vector(14 downto 0); type shiftreg_t19_26 is array (0 to 25) of std_logic_vector(15 downto 0); type shiftreg_t21_6 is array (0 to 5) of std_logic_vector(17 downto 0); -- Register Signal Declarations signal t1 : std_logic_vector(15 downto 0) := " "; signal t2 : std_logic_vector(17 downto 0) := " "; signal t3 : shiftreg_t3_2 := ( " ", " "); signal t4 : shiftreg_t4_3 := ( " ", " ", " "); signal t5 : std_logic_vector(12 downto 0) := " "; signal t6 : std_logic_vector(12 downto 0) := " "; signal t7 : std_logic_vector(12 downto 0) := " "; signal t8 : std_logic_vector(15 downto 0) := " "; signal t9 : shiftreg_t9_18 := ( " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", BH

67 signal t10 : shiftreg_t10_2 := ( " ", " ", " ", " ", " ", " "); " ", " "); signal t11 : shiftreg_t11_2 := ( " ", " "); signal t12 : std_logic_vector(15 downto 0) := " "; signal t13 : std_logic_vector(15 downto 0) := " "; signal t14 : std_logic_vector(15 downto 0) := " "; signal t15 : shiftreg_t15_30 := ( " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "); BA

68 signal t16 : shiftreg_t16_43 := ( signal t17 : shiftreg_t17_37 := ( " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "); " ", B@

69 signal t18 : shiftreg_t18_33 := ( " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "); " ", " ", " ", " ", " ", " ", " ", " ", " ", B<

70 signal t19 : shiftreg_t19_26 := ( " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "); " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", H-

71 " ", " ", " ", " ", " "); signal t20 : std_logic_vector(16 downto 0) := " "; signal t21 : shiftreg_t21_6 := ( " ", " ", " ", " ", " ", " "); signal t22 : std_logic_vector(17 downto 0) := " "; signal t23 : std_logic_vector(17 downto 0) := " "; signal t24 : std_logic_vector(17 downto 0) := " "; begin -- Process to register adder outputs and implement shift registers reg_logic : process(clk) begin if (rising_edge(clk)) then t1 <= x; t3 <= t3_sig(t3_sig'length-1 downto 1) & t3(0 to 1-1); t4 <= t4_sig(t4_sig'length-1 downto 1) & t4(0 to 2-1); t5 <= t5_sig(t5_sig'length-1 downto 1); t6 <= t6_sig(t6_sig'length-1 downto 1); t7 <= t7_sig(t7_sig'length-1 downto 1); t8 <= t8_sig; t9 <= t9_sig(t9_sig'length-1 downto 1) & t9(0 to 17-1); t10 <= t10_sig(t10_sig'length-1 downto 1) & t10(0 to 1-1); t11 <= t11_sig & t11(0 to 1-1); t12 <= t12_sig(t12_sig'length-1 downto 1); t13 <= t13_sig; t14 <= t14_sig; t15 <= t15_sig & t15(0 to 29-1); t16 <= t16_sig & t16(0 to 42-1); t17 <= t17_sig & t17(0 to 36-1); t18 <= t18_sig & t18(0 to 32-1); t19 <= t19_sig & t19(0 to 25-1); t20 <= t20_sig; t21 <= t21_sig & t21(0 to 5-1); t22 <= t22_sig; t23 <= t23_sig; t24 <= t24_sig; H

72 end if; end process; y <= t25_sig; begin -- Process to register adder outputs and implement shift registers reg_logic : process(clk) begin if (rising_edge(clk)) then t1 <= x; t3 <= t3_sig(t3_sig'length-1 downto 1) & t3(0 to 1-1); t4 <= t4_sig(t4_sig'length-1 downto 1) & t4(0 to 2-1); t5 <= t5_sig(t5_sig'length-1 downto 1); t6 <= t6_sig(t6_sig'length-1 downto 1); t7 <= t7_sig(t7_sig'length-1 downto 1); t8 <= t8_sig; t9 <= t9_sig(t9_sig'length-1 downto 1) & t9(0 to 17-1); t10 <= t10_sig(t10_sig'length-1 downto 1) & t10(0 to 1-1); t11 <= t11_sig & t11(0 to 1-1); t12 <= t12_sig(t12_sig'length-1 downto 1); t13 <= t13_sig; t14 <= t14_sig; t15 <= t15_sig & t15(0 to 29-1); t16 <= t16_sig & t16(0 to 42-1); t17 <= t17_sig & t17(0 to 36-1); t18 <= t18_sig & t18(0 to 32-1); t19 <= t19_sig & t19(0 to 25-1); t20 <= t20_sig; t21 <= t21_sig & t21(0 to 5-1); t22 <= t22_sig; t23 <= t23_sig; t24 <= t24_sig; y <= t25_sig; end if; end process; -- Adder Tree Description Logic --e <= e1; t2 <= e; t3_sig <= sxt(t2(17 downto 4), 14) - sxt(t2(17 downto 9), 14); t4_sig <= sxt(t2(17 downto 3), 16) + sxt(t2(17 downto 11), 16); t5_sig <= sxt(t3(0)(12 downto 0), 14) + sxt(t3(0)(12 downto 1), 14); t6_sig <= sxt(t5(12 downto 1), 14) + sxt(t3(1)(12 downto 0), 14); t7_sig <= sxt(t6(12 downto 0), 14) + sxt(t4(2)(14 downto 1), 14); t8_sig <= sxt(t2(17 downto 2), 16); H1

73 t9_sig <= sxt(t3(0)(12 downto 2), 12) + sxt(t8(15 downto 8), 12); t10_sig <= sxt(t3(0)(12 downto 4), 12) + sxt(t8(15 downto 5), 12); t11_sig <= sxt(t4(0)(14 downto 0), 16) + sxt(t8(15 downto 1), 16); t12_sig <= sxt(t3(0)(12 downto 4), 17) + sxt(t8(15 downto 0), 17); t13_sig <= sxt(t5(12 downto 0), 16) + sxt(t11(0)(15 downto 0), 16); t14_sig <= sxt(t13(15 downto 0), 16) + sxt(t10(1)(10 downto 0), 16); t15_sig <= sxt(t9(17)(10 downto 0), 12) - sxt(t6(12 downto 1), 12); t16_sig <= sxt(t3(0)(12 downto 1), 13) + sxt(t15(29)(11 downto 0), 13); t17_sig <= sxt(t16(42)(12 downto 0), 14) - sxt(t7(12 downto 0), 14); t18_sig <= sxt(t17(36)(13 downto 0), 15) - sxt(t13(15 downto 2), 15); t19_sig <= sxt(t18(32)(14 downto 0), 16) - sxt(t12(15 downto 0), 16); t20_sig <= sxt(t14(15 downto 0), 17) + sxt(t19(25)(15 downto 0), 17); t21_sig <= sxt(t20(16 downto 0), 18) - sxt(t11(1)(15 downto 0), 18); t22_sig <= sxt(t2(17 downto 0), 18) + sxt(t2(17 downto 2), 18); t23_sig <= sxt(t1(15 downto 0), 18) + sxt(t21(5)(17 downto 0), 18); t24_sig <= sxt(t23(17 downto 0), 18) - sxt(t2(17 downto 4), 18); t25_sig <= sxt(t24(17 downto 0), 18) - sxt(t22(17 downto 0), 18); end Behavioral; H:

74 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.numeric_std.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; 51 7/ / entity HPFilter is port( xt: in std_logic_vector(15 downto 0); yt : out std_logic_vector(31 downto 0); clk, reset: in std_logic); end HPFilter; architecture Behavioral of HPFilter is constant L:integer:=198; constant o16:std_logic_vector(15 downto 0):=" "; constant o32:std_logic_vector(31 downto 0):=" "; type vec is array (0 to L) of std_logic_vector(15 downto 0); type vec1 is array (0 to L) of std_logic_vector(31 downto 0); type vect1 is array (0 to L-1) of std_logic_vector(31 downto 0); function lut2(data_in: std_logic_vector(15 downto 0)) return vec1 is VARIABLE Y: vec1; VARIABLE w1,w16,w17,w128,w111,w32,w31,w124,w141,w4512,w4653,w144384,w ,w2048,w2079,w16632,w16633,w7104, w151519,w28416,w123103,w37224,w160327,w32768,w118751,w66532, w52219,w14208,w288830: std_logic_vector(31 downto 0); begin w1 := SXT(data_in,32); w16 := (SHL(w1,"100")); H;

75 w17 := w1 + w16; w128 := (SHL(w1,"111")); w111 := w128 - w17; w32 := (SHL(w1,"101")); w31 := w32 - w1; w124 :=(SHL(w31,"010")); w141 := w17 + w124; w4512 := (SHL(w141,"101")); w4653 := w141 + w4512; w := (SHL(w1,"1010")); w := w31 + w144384; w2048 := (SHL(w1,"1011")); w2079 := w31 + w2048; w16632 := (SHL(w2079,"0011")); w16633 := w1 + w16632; w7104 := (SHL(w111,"0110")); w := w w7104; w28416 := (SHL(w111,"1000")); w := w w28416; w37224 := (SHL(w4653,"0011")); w := w w37224; w32768 := (SHL(w1,"1111")); w := w w32768; w66532 := (SHL(w16633,"0010")); w52219 := w w66532; w37224 := o32 - w37224; w14208 := (SHL(w111,"0111")); w14208 := o32 - w14208; w := o32 - w160327; w := (SHL(w144415,"0001")); Y :=(0=> w37224, 1 => w52219, 2 => w66532, 3 => w14208, 4 =>160327, 5 => w288830, 6 => w160327, 7 => w14208, 8 => w66532, 9 => w52219, 10 => w37224, others=>o32); return Y; END lut2; BEGIN process(clk) variable x : std_logic_vector(15 downto 0); variable ym:vec1; variable v:vect1; begin if reset='1' then x:=o16; ym:=(others=>o32); HB

76 v:=(others=>o22); yt<=o32; elsif clk'event and clk='1' then x:=xt; ym:=lut2(x); yt<=v(0)+ym(0); for k in 0 to L-2 loop v(k):=v(k+1)+ym(k+1); end loop; v(l-1):=ym(l); end if; end process; end Behavioral; HH

77 7/+/ library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.numeric_std.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity HP_filter_24 is port( xt: in std_logic_vector(15 downto 0); yt : out std_logic_vector(31 downto 0); clk, reset: in std_logic); end HP_filter_24; architecture Behavioral of HP_filter_24 is constant L:integer:=24; constant o16:std_logic_vector(15 downto 0):=" "; constant o32:std_logic_vector(31 downto0):=" "; type vec is array (0 to L) of std_logic_vector(15 downto 0); type vec1 is array (0 to L) of std_logic_vector(31 downto 0); type vect1 is array (0 to L-1) of std_logic_vector(31 downto 0); function lut2(data_in: std_logic_vector(15 downto 0)) return vec1 is VARIABLE Y: vec1; variable w1,w8,w7,w16,w23,w64,w41,w56,w79,w184,w177,w316,w275,w2048,w2089,w44 8,w449,w393,w46,w495,w1796,w1301,w47104,w47183,w45882,w22941,w7184, w9273,w9548,w2387,w164,w632,w1618,w1619,w708,w990,w4774,w8356: std_logic_vector(31 downto 0); begin -----Adder Logic w1:=sxt(data_in,32); w8:=(shl(w1,"011")); w7:= w8 - w1; w16:=(shl(w1,"100")); w23:= w7 + w16; HA

78 w64:=(shl(w1,"110")); w41:=w64 - w23; w56:=(shl(w7,"011")); w79:= w23+w56; w184:=(shl(w23,"011")); w177:=w184-w7; w316:=(shl(w79,"010")); w275:=w316-w41; w2048:=(shl(w1,"1011")); w2089:=w41+w2048; w448:=(shl(w7,"110")); w449:=w1+w448; w56:=(shl(w7,"011")); w393:=w449-w56; w46:=(shl(w23,"001")); w495:=w449+w46; w1796:=(shl(w449,"010")); w1301:=w1796-w495; w47104:=(shl(w23,"1011")); w47183:=w79+w47104; w45882:=w47183-w1301; w22941:=(shr(w45882,"001")); w7184:=(shl(w449,"100")); w9273:=w2089+w7184; w9548:=w275+w9273; w2387:=(shr(w9548,"010")); w164:=(shl(w41,"010")); w184:=(shl(w23,"011")); w7:=o32-w7; w393:=o32-w393; w632:=(shl(w79,"011")); w632:=o32-w632; w275:=o32-w275; w708:=(shl(w177,"010")); w990:=(shl(w495,"001")); w990:=o32-w990; w4774:=(shl(w2387,"001")); w4774:=o32-w4774; w8356:=(shl(w2089,"010")); w8356:=o32-w8356; Y:=(0=>w164, 1=>w184, 2=>w7, 3=>w393, 4=>w632, 5=>w275, 6=>w708, 7=>w1619, 8=>w1301, 9=>w990, 10=>w4774, 11=>w8356, 12=>w22941, 13=>w8356, 14=>w4774, 15=>w990, 16=>w1301, 17=>w1618, 18=>w708, H@

79 19=>w275, 20=>w632, 21=>w393, 22=>w7, 23=>w184, 24=>w164, others=>o32); return Y; END lut2; BEGIN process(clk) variable x : std_logic_vector(15 downto 0); variable ym:vec1; variable v:vect1; begin if reset='1' then x:=o16; ym:=(others=>o32); v:=(others=>o32); yt<=o32; elsif clk'event and clk='1' then x:=xt; ym:=lut2(x); yt<=v(0)+ym(0); for k in 0 to L-2 loop v(k):=v(k+1)+ym(k+1); end loop; v(l-1):=ym(l); end if; end process; end Behavioral; H<

80 7/+ / library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.numeric_std.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity HP_50_mcm is port( xt: in std_logic_vector(15 downto 0); yt : out std_logic_vector(31 downto 0); clk, reset: in std_logic); end HP_50_mcm; architecture Behavioral of HP_50_mcm is constant L:integer:=50; constant o15:std_logic_vector(15 downto 0):=" "; constant o32:std_logic_vector(31 downto 0):=" "; type vec is array (0 to L) of std_logic_vector(15 downto 0); type vec1 is array (0 to L) of std_logic_vector(31 downto 0); type vect1 is array (0 to L-1) of std_logic_vector(31 downto 0); function lut2(data_in: std_logic_vector(15 downto 0)) return vec1 is VARIABLE Y: vec1; variable w1,w4,w3,w5,w8,w9,w24,w23,w48,w43,w45,w80,w85,w144,w141,w384,w387,w1 72,w217,w344,w353,w360,w357,w368,w413,w564,w587,w868,w1009,w1815,w61 44,w5731,w4512,w4159,w1736,w2423,w40,w4199,w_3,w16,w72,w36,w79,w180, w10,w826,w1412,w4846,w8398,w22924:std_logic_vector(31 downto 0); begin ----adder graph logic w1:= SXT(data_in,32); w4 :=(SHL(w1,"010")); w3:=w4-w1; w4:=(shl(w1,"010")); w5:=w1+w4; w8:=(shl(w1,"011")); w9:=w1+w8; w24:=(shl(w3,"011")); w23:=w24-w1; A-

81 w48:=(shl(w3,"100")); w43:=w48-w5; w48:=(shl(w3,"100")); w45:=w48-w3; w80:=(shl(w5,"100")); w79:=w80-w1; w80:=(shl(w5,"100")); w85:=w80+w5; w144:=(shl(w9,"100")); w141:=w144-w3; w384:=(shl(w3,"111")); w387:=w3+w384; w172:=(shl(w43,"010")); w217:=w45+w172; w344:=(shl(w43,"011")); w353:=w9+344; w360:=(shl(w45,"011")); w357:=w360-w3; w368:=(shl(w23,"100")); w413:=w45+w368; w564:=(shl(w141,"010")); w587:=w23+w564; w868:=(shl(w217,"010")); w1009:=w141+w868; w1736:=(shl(w217,"011")); w1815:=w79+w1736; w6144:=(shl(w3,"1011")); w5731:=w6144-w413; w4512:=(shl(w141,"101")); w4159:=w4512-w353; w1736:=(shl(w217,"011")); w2423:=w4159-w1736; w40:=(shl(w5,"011")); w4199:=w4159+w40; w_3:=o32-w3; w16:=(shl(w1,"100")); w16:=o32-w16; w23:=o32-w23; w72:=(shl(w9,"011")); w36:=(shl(w9,"010")); w79:=o32-w79; w180:=(shl(w45,"010")); w180:=o32-w180; w141:=o32-w141; w10:=(shl(w5,"1010")); w587:=o32-w587; A

82 w868:=(shl(w217,"010")); w868:=o32-w868; w360:=(shl(w45,"011")); w360:=o32-w360; w826:=(shl(w413,"001")); w1412:=(shl(w353,"010")); w1009:=o32-w1009; w4846:=(shl(w2423,"001")); w4846:=o32-w4846; w8398:=(shl(w4199,"001")); w8398:=o32-w8398; w22924:=(shl(w5731,"010")); Y:=(0=>w3, 1=>w3, 2=>w_3, 3=>w16, 4=>w23, 5=>w_3, 6=>w43, 7=>w72, 8=>w36, 9=>w79, 10=>w180, 11=>w141, 12=>w85, 13=>w357, 14=>w387, 15=>w10, 16=>w587, 17=>w868, 18=>w360, 19=>w826, 20=>w1815, 21=>w1412, 22=>w1009, 23=>w4846, 24=>w8398, 25=>w22924, 26=>w8398, 27=>w4846, 28=>w1009, 29=>w1412, 30=>w1815, 31=>w826, 32=>w360, 33=>w868, 34=>w587, 35=>w10, 36=>w387, 37=>w357, 38=>w85, 39=>w141, 40=>w180, 41=>w79, 42=>w36, 43=>w72, 44=>w43, 45=>w_3, 46=>w23, 47=>w16, 48=>w_3, 49=>w3, 50=>w3); return Y; END lut2; begin process(clk) variable x : std_logic_vector(15 downto 0); variable ym:vec1; variable v:vect1; begin if reset='1' then x:=o16; ym:=(others=>o32); v:=(others=>o32); yt<=o32; elsif clk'event and clk='1' then x:=xt; ym:=lut2(x); yt<=v(0)+ym(0); for k in 0 to L-2 loop v(k):=v(k+1)+ym(k+1); end loop; v(l-1):=ym(l); end if; end process; end Behavioral; A1

83 & 7/ ; / library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.numeric_std.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity HP_FIL_MCM_100 is port( xt: in std_logic_vector(15 downto 0); yt : out std_logic_vector(31 downto 0); clk, reset: in std_logic); end HP_FIL_MCM_100; architecture Behavioral of HP_FIL_MCM_100 is constant L:integer:=100; constant o16:std_logic_vector(15 downto 0):=" "; constant o32:std_logic_vector(31 downto 0):=" "; type vec is array (0 to L) of std_logic_vector(15 downto 0); type vec1 is array (0 to L) of std_logic_vector(31 downto 0); type vect1 is array (0 to L-1) of std_logic_vector(31 downto 0); function lut2(data_in: std_logic_vector(15 downto 0)) return vec1 is VARIABLE Y: vec1; variable w1,w3,w4,w5,w8,w7,w16,w17,w512,w513,w13,w24,w23,w32,w29,w48,w43,w64, w59,w80,w75,w96,w93,w103,w112,w105,w160,w157,w256,w239,w272,w267,w2 8,w485,w128,w151,w357,w416,w393,w928,w927,w1536,w1051, w1068,w1055,w1472,w1455,w4800,w4905,w47616,w45894,w22947,w_3,w10,w2 0,w_29,w_10,w206,w184,w544,w534,w744,w1026,w1940,w8408, w46161: std_logic_vector(31 downto 0); begin w1:=sxt(data_in,32); w4:=(shl(w1,"010")); w3 :=w4-w1; w4 := (SHL(w1,"010")); w5 := w1+w4; w8 := (SHL(w1,"011")); w7 := w8-w1; A:

84 w16 := (SHL(w1,"100")); w17 := w1+w16; w512 :=(SHL(w1,"1001")); w513 := w1+w512; w16 := (SHL(w1,"100")); w13 := w16-w3; w24 := (SHL(w3,"011")); w23 := w24-w1; w32 := (SHL(w1,"101")); w29 := w32-w3; w48 := (SHL(w3,"100")); w43 := w48-w5; w64 := (SHL(w1,"110")); w59 := w64-w5; w80 := (SHL(w5,"100")); w75 := w80-w5; w96 := (SHL(w3,"101")); w93 := w96-w3; w96 := (SHL(w3,"101")); w103 := w7+w96; w112 := (SHL(w7,"100")); w105 := w112-w7; w160 := (SHL(w5,"101")); w157 := w160-w3; w256 := (SHL(w1,"1000")); w239 := w256-w17; w272 := (SHL(w17,"100")); w267 := w272-w5; w28 := (SHL(w7,"010")); w485 := w513-w28; w128 := (SHL(w1,"0111")); w151 := w23+w128; w128 := (SHL(w1,"0111")); w357 := w485-w128; w416 := (SHL(w13,"101")); w393 := w416-w23; w928 := (SHL(w29,"101")); w927 := w928-w1; w1536 := (SHL(w3,"1001")); w1051 := w1536-w485; w1068 := (SHL(w267,"010")); w1055 := w1068-w13; w1472 := (SHL(w23,"110")); w1455 := w1472-w17; w4800 := (SHL(w75,"110")); w4905 := w105+w4800; A;

85 w47616 := (SHL(w93,"1001")); w46161 := w47616-w1455; w45894 := w46161-w267; w22947 := (SHR(w45894,"001")); w_3 :=o32-w3; w7 := o32-w7; w_3 := w_3; w3 := w3; w10 := (SHL(w5,"001")); w20 := (SHL(w5,"010")); w20 := o32-w20; w_29 := o32-w29; w_10 := o32-w10; w_29 := w_29; w105 := o32-w105; w105 := w105; w3 := w3; w206 :=(SHL(w103,"001")); w184 :=(SHL(w23,"011")); w184 := o32-w184; w357 := o32-w357; w239 :=o32-w239; w544 :=(SHL(w17,"101")); w534 := (SHL(w267,"001")); w7 := w7; w744 := (SHL(w93,"011")); w744 := o32-w744; w1026 :=(SHL(w513,"001")); w1026 := o32-w1026; w393 := o32-w393; w1940 := (SHL(w485,"010")); w1055 :=o32-w1055; w4905 := o32-w4905; w8408 := (SHL(w1051,"011")); w8408 := o32-w8408; Y:=(13=>w3,15=>w_3,16=>w7,17=>w_3,18=>w3,19=>w10,20=>w13,22=>w20,23= >w_29,24=>w_10,25=>w29, 26=>w59,27=>w43,28=>w_29,29=>w105,30=>w105,31=>w3,32=>w151,33=>w20 6,34=>w75,35=>w184,36=>w357, 37=>w239,38=>w157,39=>w544,40=>w534,41=>w7,42=>w744,43=>w1026,44=> w393,45=>w927,46=>w1940, 47=>w1455,48=>w1055,49=>w4905,50=>w8408,51=>w22947,52=>w8408,53=>w 4905,54=>w1055,55=>w1455, AB

86 56=>w1940,57=>w927,58=>w393,59=>w1026,60=>w744,61=>w7,62=>w534,63= >w544,64=>w157,65=>w239, 66=>w357,67=>w184,68=>w75,69=>w206,70=>w151,71=>w3,72=>w105,73=>w1 05,74=>w_29,75=>w43,76=>w59, 77=>w29,78=>w_10,79=>w_29,80=>w20,82=>w13,83=>w10,84=>w3,85=>w_3,86 =>w7,87=>w_3,89=>w3, others=>o32); return Y; END lut2; BEGIN process(clk) variable x : std_logic_vector(15 downto 0); variable ym:vec1; variable v:vect1; begin if reset='1' then x:=o16; ym:=(others=>o32); v:=(others=>o32); yt<=o32; elsif clk'event and clk='1' then x:=xt; ym:=lut2(x); yt<=v(0)+ym(0); for k in 0 to L-2 loop v(k):=v(k+1)+ym(k+1); end loop; v(l-1):=ym(l); end if; end process; end Behavioral; AH

87 0 02 &$O=!)R$ S %% && %'((')1--1)A< A & $ R( * % &!$'(('):B1:BB+ 0:2= ' R( S % % & & %'((,) -<A-- 0;2 = ' )(' )G C)R S%% && %'((-) ;A:;AH 0B2 = ' )O=!)(' ) RG4 4 S%% && %'((' 0H2.)> >)R& S"C)<A<)<HB# :<;)1:1:-@ 0A2(' )S! S666! $ ;)B)=<<; 0@2 (' ) S? S)%.& %%.'/001) 2 L;1),<)$<<B 0<2 UL &X, R S.!'((,)L:),1 0-2U>)( >!? G6) R= 4 S %%.3 '((4)L6<(),1 02G( 6 =' ) R( 4 S & "%'((4)$;+ AA

88 012= ' )( )R= S)2+52 & 56%'((-)O<)1--; 0:2& $) *() R! 4 S) % % & & %'((,+;1--A)1;H1;< 0;2! >) R / &'( / /+ S) 9 )G=($(6?,L6$U) 6!6) ))(GG1--@ 0B2$& )7$ &'( S 9 ) G=($(6?,L6$U)6!6) ))(GG1--@ 0H2MG,M)RL4; S) 3%%444% %% % 1)OA)1--@ 0A2MG,M)S64$&4;&'( S) 3%%44% %% W %-A:) B)1--@ 0@2MG,M)SL4; S) 3%%44% %%W % 1)$1@) 1--A 0<2M4& $ )R$6C&(!V$S) -) 3%%44% %W W% 01-2 < AA S) 3%% % %% 012=' ) G $.) L.) > O ) R= S)3&3 )& '((,)-<@Y U C) G $.) O& >) Z) R 4@!$S) 3&3 )& '((,)<AAY<@ 01:2U C) G $.) L.) Z) R( $& S 2+ 3 )& 8(9)1--H);HBY ;H@ A@

89 01;2).V*()R6 &'( S%% & %'((,) 1--A+ 01B2UC)G$.)Z)L6.)R( S & 666! ( ) $ $ & "!($$&1--A#)1--A)1)YBAYYH-:: 01H2$ /)(> )V )R&'( S % % & %'((9+ 01A2!> C) >! > ) $C ) R&'( S%% & %'((1+ 01@2OL ) &)$ 6.)R &'( S)%%/004)% & + 01<2,4 )= 3%%%& %[,&I1);--)A<A\&I,6MU$ 0:-2V) )O R&'(3 S), (@ 1--@) ): 0:2>)R$4 S) %.+&+));:)HAAH@@=<<H 0:12$Z$)R$& &'(36 $& 1--;) 3%%44% %%W %11 0::2! >) G $. L.) R>! &'( S 3&3 )& '((,);11;1B 0:;2$& G$.)S$ &'( S 3& ) & '((4)&')!();A=1--@ 0:B2&?$, G ",G#) C )!)?$( A<

90 0:H2& & = ' ) 6 6) G]? )$ 0:A2 &X )O ^ )OO )&) L ). $) O4 M) / )(') U L) V!) C O ), //) R$&(G3!' $& S) 3%% %% =

91 1)/0: 1=)/ (*'& ; O<@B)&) $)> H),&! 6,? ) > $ G $. 6 6 $? 1-->?$ (( 1--A > * &'(

Florida State University Libraries

Florida State University Libraries Florida State University Libraries Electronic Theses, Treatises and Dissertations The Graduate School 2007 Signifyin(g): A Semiotic Analysis of Symphonic Works by William Grant Still, William Levi Dawson,

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

13/06/56 8 ก ก. 08-Case Study

13/06/56 8 ก ก. 08-Case Study 8 ก ก ก 1 ก 2 1 3 VHDL DIVIDER200Hz use IEEE.std_logic_1164.all; entity DIVIDER200Hz is generic (fin: integer :=25000000; --Input frequency fout: integer :=200); --Output frequency end DIVIDER200Hz; architecture

More information

Programmable Logic. Simple Programmable Logic Devices

Programmable Logic. Simple Programmable Logic Devices Programmable Logic SM098 Computation Structures - Programmable Logic Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL architectures Implements

More information

EEE8076. Reconfigurable Hardware Design (coursework) Module Outline. Dr A. Bystrov Dr. E.G. Chester. Autumn

EEE8076. Reconfigurable Hardware Design (coursework) Module Outline. Dr A. Bystrov Dr. E.G. Chester. Autumn EEE8076 Reconfigurable Hardware Design (coursework) Module Outline Dr A. Bystrov Dr. E.G. Chester Autumn 2010 1 2 3 4 5 6 7 8 9 10 11 12 Altera UP2 development board, Flex EPF10K70 FPGA www.altera.com/literature/univ/upds.pdf

More information

Chapter 4: Regular Expressions

Chapter 4: Regular Expressions CSI 3104 /Winter 2011: Introduction to Formal Languages What are the languages with a finite representation? We start with a simple and interesting class of such languages. Dr. Nejib Zaguia CSI3104-W11

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014 CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not

More information

FPGA.

FPGA. CMOS TTL Verilog VHDL mshora@yahoo.com 7400. NAND CMOS TTL 1 0 source sink datasheet bounce bounce debunce RS Latch debounce Typical Characteristics NO NC Semiconductor Material Wavelength Colour V F @

More information

Automata Theory TEST 1 Answers Max points: 156 Grade basis: 150 Median grade: 81%

Automata Theory TEST 1 Answers Max points: 156 Grade basis: 150 Median grade: 81% Automata Theory TEST 1 Answers Max points: 156 Grade basis: 150 Median grade: 81% 1. (2 pts) See text. You can t be sloppy defining terms like this. You must show a bijection between the natural numbers

More information

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points) EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

VHDL in 1h. Martin Schöberl

VHDL in 1h. Martin Schöberl VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset

More information

ECE 545 Lecture 17 RAM. George Mason University

ECE 545 Lecture 17 RAM. George Mason University ECE 545 Lecture 17 RAM George Mason University Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques [ UG687 (v 14.5) March 20, 2013 ] Sections:

More information

VHDL Examples Mohamed Zaky

VHDL Examples Mohamed Zaky VHDL Examples By Mohamed Zaky (mz_rasmy@yahoo.co.uk) 1 Half Adder The Half Adder simply adds 2 input bits, to produce a sum & carry output. Here we want to add A + B to produce Sum (S) and carry (C). A

More information

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

ITEC2620 Introduction to Data Structures

ITEC2620 Introduction to Data Structures ITEC2620 Introduction to Data Structures Lecture 9b Grammars I Overview How can a computer do Natural Language Processing? Grammar checking? Artificial Intelligence Represent knowledge so that brute force

More information

Digital System Construction

Digital System Construction Digital System Construction FYSIKUM Lecture 4: More VHDL, memory, PRNG Arithmetic Memories Pipelines and buffers Pseudorandom numbers IP core generation in Vivado Introduction to Lab 3 Digital Systemkonstruktion

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

CS 3100 Models of Computation Fall 2011 This assignment is worth 8% of the total points for assignments 100 points total.

CS 3100 Models of Computation Fall 2011 This assignment is worth 8% of the total points for assignments 100 points total. CS 3100 Models of Computation Fall 2011 This assignment is worth 8% of the total points for assignments 100 points total September 7, 2011 Assignment 3, Posted on: 9/6 Due: 9/15 Thursday 11:59pm 1. (20

More information

Example 58: Traffic Lights

Example 58: Traffic Lights 208 Chapter 8 Listing 8.7(cont.) doorlock2_top.vhd btn012

More information

[VARIABLE declaration] BEGIN. sequential statements

[VARIABLE declaration] BEGIN. sequential statements PROCESS statement (contains sequential statements) Simple signal assignment statement

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID:

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID: EEL 4712 Midterm 1 Spring 2012 VERSION 1 Name: UFID: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. As always, the best answer

More information

Quartus Counter Example. Last updated 9/6/18

Quartus Counter Example. Last updated 9/6/18 Quartus Counter Example Last updated 9/6/18 Create a logic design from start to a DE10 implementation This example uses best design practices This example is not about creating HDL The HDL code will be

More information

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems

Lecture 4: Modeling in VHDL (Continued ) EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 4: Modeling in VHDL (Continued ) Sequential Statements Use Process process (sensitivity list) variable/constant declarations Sequential Statements end process; 2 Sequential

More information

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC)

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) INTRODUCTION TO VHDL Slides by: Pedro Tomás Additional reading: - ADVANCED COMPUTER ARCHITECTURES ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) Outline 2 Hardware Description Languages (HDL) VHDL Very

More information

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit) Csc 343 Lab 2 Sep 28. 07 Objective: Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Structure: Input A (4 bits) Input B (4 bit) Adder Output Sum(4 bits) Output carry(1 bit) input cin

More information

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

Getting Started with VHDL

Getting Started with VHDL Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated

More information

Problem Set 5 Solutions

Problem Set 5 Solutions Problem Set 5 Solutions library ieee; use ieee.std_logic_1164.all; use work.std_arith.all; -- here is the declaration of entity entity la_rewarder is port (clk, go, SRAM_busy, SRAM_rdy: in std_logic; min:

More information

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering

More information

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14 COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit

More information

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

More information

ECE 545 Lecture 11 Addendum

ECE 545 Lecture 11 Addendum ECE 545 Lecture 11 Addendum Controllers for Keccak_F and AES George Mason University ECE 448 FPGA and ASIC Design with VHDL Keccak_F 1600 din start done Keccak_F rst 1600 dout ready Note: Bold line represents

More information

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

More information

ECE 448 Lecture 13. FPGA Memories. George Mason University

ECE 448 Lecture 13. FPGA Memories. George Mason University ECE 448 Lecture 13 FPGA Memories George Mason University Recommended reading Spartan-6 FPGA Block RAM Resources: User Guide Google search: UG383 Spartan-6 FPGA Configurable Logic Block: User Guide Google

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions CSE 6 Introduction to igital Logic and Computer esign Exam Solutions Jonathan Turner /3/4. ( points) raw a logic diagram that implements the expression (B+C)(C +)(B+ ) directly (do not simplify first),

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution 5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:

More information

EXP.NO FPGA IMPLEMENTATION OF SIMPLE ALARM SYSTEM 04

EXP.NO FPGA IMPLEMENTATION OF SIMPLE ALARM SYSTEM 04 MODELING AND SIMULATION LABORATORY MANUAL SOURCE CODE: library IEEE; EXP.NO FPGA IMPLEMENTATION OF SIMPLE ALARM SYSTEM 04 use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

More information

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below: Experiment-3: Write VHDL programs for the following circuits, check the wave forms and the hardware generated a. multiplexer b. De-Multiplexer Objective: i. To learn the VHDL coding for Multiplexer and

More information

The Virtex FPGA and Introduction to design techniques

The Virtex FPGA and Introduction to design techniques The Virtex FPGA and Introduction to design techniques SM098 Computation Structures Lecture 6 Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL

More information

CHAPTER TWO LANGUAGES. Dr Zalmiyah Zakaria

CHAPTER TWO LANGUAGES. Dr Zalmiyah Zakaria CHAPTER TWO LANGUAGES By Dr Zalmiyah Zakaria Languages Contents: 1. Strings and Languages 2. Finite Specification of Languages 3. Regular Sets and Expressions Sept2011 Theory of Computer Science 2 Strings

More information

Design Examples. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

Design Examples. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning Design Examples ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning BCD to 7-Segment Display 418_04 2 BCD to 7-Segment Display entity BCD_Seven is port(bcd: in std_logic_vector(3

More information

Timing in synchronous systems

Timing in synchronous systems BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines

More information

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR CE 1911 Counters Counter Types Modulo Gray Code BC (ecimal) ecade Ring Johnson (twisted ring) LFSR Variations Asynchronous / Synchronous Up/own Loadable 2 tj Modulo-n (n = a power of 2) Asynchronous Count

More information

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority;

entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority; Примери Приоритетен кодер library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity priority is Port ( a,b,c,d : in STD_LOGIC; encoded : out STD_LOGIC_VECTOR(2 downto 0)); end priority; architecture Behavioral

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

Data Compression Fundamentals

Data Compression Fundamentals 1 Data Compression Fundamentals Touradj Ebrahimi Touradj.Ebrahimi@epfl.ch 2 Several classifications of compression methods are possible Based on data type :» Generic data compression» Audio compression»

More information

VHDL Simulation. Testbench Design

VHDL Simulation. Testbench Design VHDL Simulation Testbench Design The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus of UUT inputs algorithmic

More information

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Cengage Learning Design Flow 418_02 2 VHDL Modules 418_02 3 VHDL Libraries library IEEE; use IEEE.std_logic_1164.all; std_logic Single-bit

More information

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated. 8-1 Name Binary code IDLE 000 Register operation or output R 0 RUN 0 1 Condition (a) State box (b) Example of state box (c) Decision box IDLE R 0 From decision box 0 1 START Register operation or output

More information

SEQUENTIAL STATEMENTS

SEQUENTIAL STATEMENTS SEQUENTIAL STATEMENTS Sequential Statements Allow to describe the behavior of a circuit as a sequence of related events Can be used to model, simulate and synthesize: Combinational logic circuits Sequential

More information

Sign here to give permission to return your test in class, where other students might see your score:

Sign here to give permission to return your test in class, where other students might see your score: EEL 4712 Midterm 1 Spring 2017 VERSION 1 Name: UFID: Sign here to give permission to return your test in class, where other students might see your score: IMPORTANT: Please be neat and write (or draw)

More information

COVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points)

COVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points) EEL 4712 Midterm 2 Spring 2010 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10

File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10 File: /home/young/mywork/5.cordic_vhdl/a.beh/print.cordic_beh Page 1 of 10.SUFFIXES :.o.vhdl.vhdl.o : ghdl -a $< cordic_tb : cordic_pkg.o cordic_beh.o cordic_tb.o ghdl -e cordic_tb anal : cordic_pkg.o

More information

EE261: Intro to Digital Design

EE261: Intro to Digital Design 2014 EE261: Intro to Digital Design Project 3: Four Bit Full Adder Abstract: This report serves to teach us, the students, about modeling logic and gives a chance to apply concepts from the course to a

More information

EEL 4712 Name: SOLUTION Midterm 1 Spring 2016 VERSION 1 UFID:

EEL 4712 Name: SOLUTION Midterm 1 Spring 2016 VERSION 1 UFID: EEL 4712 Name: SOLUTION Midterm 1 Spring 2016 VERSION 1 UFID: Sign here to give permission to return your test in class, where other students might see your score: IMPORTANT: Please be neat and write (or

More information

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

VHDL for FPGA Design. by : Mohamed Samy

VHDL for FPGA Design. by : Mohamed Samy VHDL for FPGA Design by : Mohamed Samy VHDL Vhdl is Case insensitive myvar = myvar = MYVAR IF = if = if Comments start with -- Comments can exist anywhere in the line Semi colon indicates the end of statements

More information

PROJECT Report. Lecturer: Dr. Ronny Veljanovski FLOATING POINT ADDITION & SUBTRACTION. Student: IBRAHIM HAZMI REENA ASHANTI

PROJECT Report. Lecturer: Dr. Ronny Veljanovski FLOATING POINT ADDITION & SUBTRACTION. Student: IBRAHIM HAZMI REENA ASHANTI PROJECT REPORT: FLOATING POINT ADDITION & SUBTRACTION DSD PROJECT Report Lecturer: Dr. Ronny Veljanovski PROJECT: FLOATING POINT ADDITION & SUBTRACTION Student: IBRAHIM HAZMI 3772584 REENA ASHANTI 3731182

More information

VHDL: Code Structure. 1

VHDL: Code Structure. 1 VHDL: Code Structure talarico@gonzaga.edu 1 Mo:va:on for HDL- based design Standard Technology/vendor independent Portable and Reusable talarico@gonzaga.edu 2 Altera s Design Flow (RTL) RTL Generic Boolean

More information

Design Problem 3 Solutions

Design Problem 3 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 2.2.2: VHDL-3 Liang Liu liang.liu@eit.lth.se 1 Outline Inference of Basic Storage Element Some Design Examples DFF with enable Counter Coding Style:

More information

COE Design Process Tutorial

COE Design Process Tutorial COE 758 - Design Process Tutorial I. Introduction This tutorial describes a formal design process for the creation of digital systems. The aim of this design process is to provide a systematic approach

More information

SPAREPARTSCATALOG: CONNECTORS SPARE CONNECTORS KTM ART.-NR.: 3CM EN

SPAREPARTSCATALOG: CONNECTORS SPARE CONNECTORS KTM ART.-NR.: 3CM EN SPAREPARTSCATALOG: CONNECTORS ART.-NR.: 3CM3208201EN CONTENT SPARE CONNECTORS AA-AN SPARE CONNECTORS AO-BC SPARE CONNECTORS BD-BQ SPARE CONNECTORS BR-CD 3 4 5 6 SPARE CONNECTORS CE-CR SPARE CONNECTORS

More information

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:

More information

ECE 545: Lecture 11. Programmable Logic Memories

ECE 545: Lecture 11. Programmable Logic Memories ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Memory Resources:

More information

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Resources: User

More information

ECE 545 Lecture 12. FPGA Resources. George Mason University

ECE 545 Lecture 12. FPGA Resources. George Mason University ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks

More information

VHDL par Ahcène Bounceur VHDL

VHDL par Ahcène Bounceur VHDL VHDL Ahcène Bounceur 2009 Plan de travail 1. Introduction au langage 2. Prise en main 3. Machine à état 4. Implémentation sur FPGA 1 VHDL Introduction au langage Ahcène Bounceur VHDL VHIC (Very High-speed

More information

ECE 459/559 Secure & Trustworthy Computer Hardware Design

ECE 459/559 Secure & Trustworthy Computer Hardware Design ECE 459/559 Secure & Trustworthy Computer Hardware Design VHDL Overview Garrett S. Rose Spring 2016 Recap Public Key Encryption (PKE) RSA (Rivest, Shamir and Adelman) Encryption Advanced Encryption Standard

More information

HDL. Hardware Description Languages extensively used for:

HDL. Hardware Description Languages extensively used for: HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:

More information

cla library ieee; use ieee.std_logic_1164.all;

cla library ieee; use ieee.std_logic_1164.all; -- cla entity cla is generic( n_g: integer :=4 -- count of bits ); port( x_p : in std_logic_vector (n_g-1 downto 0); y_p : in std_logic_vector (n_g-1 downto 0); cin_p : in std_logic; cla_p :out std_logic_vector

More information

EEL 4712 Digital Design Test 1 Spring Semester 2007

EEL 4712 Digital Design Test 1 Spring Semester 2007 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)

More information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

Luleå University of Technology Kurskod SMD152 Datum Skrivtid Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics

More information

SPARE CONNECTORS KTM 2014

SPARE CONNECTORS KTM 2014 SPAREPARTSCATALOG: // ENGINE ART.-NR.: 3208201EN CONTENT CONNECTORS FOR WIRING HARNESS AA-AN CONNECTORS FOR WIRING HARNESS AO-BC CONNECTORS FOR WIRING HARNESS BD-BQ CONNECTORS FOR WIRING HARNESS BR-CD

More information

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential

More information

Example 15: Moving Sprites with Flash Background

Example 15: Moving Sprites with Flash Background Displaying an Image Read from Flash Memory 95 Listing 2.5 (cont.) vga_flash_n2_top.vhd clr

More information

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language) Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable

More information

Concurrent & Sequential Stmts. (Review)

Concurrent & Sequential Stmts. (Review) VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-

More information

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components

More information

Accelerate FPGA Prototyping with

Accelerate FPGA Prototyping with Accelerate FPGA Prototyping with MATLAB and Simulink September 21 st 2010 Stephan van Beek Senior Application Engineer 1 From Idea to Implementation DESIGN Algorithm Development MATLAB Simulink Stateflow

More information

Design Problem 4 Solutions

Design Problem 4 Solutions CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solutions Jon Turner The block diagram appears below. The controller includes a state machine with three states (normal, movecursor,

More information

ECE 699: Lecture 9. Programmable Logic Memories

ECE 699: Lecture 9. Programmable Logic Memories ECE 699: Lecture 9 Programmable Logic Memories Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques Sections: RAM HDL Coding Techniques ROM

More information

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential

More information

Hardware Description Languages. Modeling Complex Systems

Hardware Description Languages. Modeling Complex Systems Hardware Description Languages Modeling Complex Systems 1 Outline (Raising the Abstraction Level) The Process Statement if-then, if-then-else, if-then-elsif, case, while, for Sensitivity list Signals vs.

More information

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also

More information

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004 The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level

More information

Constructing VHDL Models with CSA

Constructing VHDL Models with CSA Constructing VHDL Models with CSA List all components (e.g., gate) inclusive propagation delays. Identify input/output signals as input/output ports. All remaining signals are internal signals. Identify

More information

VHDL Testbench Design. Textbook chapters 2.19, , 9.5

VHDL Testbench Design. Textbook chapters 2.19, , 9.5 VHDL Testbench Design Textbook chapters 2.19, 4.10-4.12, 9.5 The Test Bench Concept Elements of a VHDL/Verilog testbench Unit Under Test (UUT) or Device Under Test (DUT) instantiate one or more UUT s Stimulus

More information

File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6

File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6 File: /home/young/mywork/vlsi/c.ari etic/adder/rtl/adder.cla.print Page 1 of 6 c1.adder.vhdl Purpose: Bianary Adder Entity Discussion: Licensing: This code is distributed under the GNU LGPL license. Modified:

More information

Tutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy

Tutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy CS3: Hardware Lab Tutorial 4 HDL Outline VHDL basic language concepts basic design methodology Examples A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati i i i3 i4 Modeling Combinational

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs IGITAL LOGIC SIGN VHL Coding for FPGAs SUNTIAL CIRCUITS Unit 5 Asynchronous sequential circuits: Latches Synchronous circuits: flip flops, counters, registers. Testbench: Generating stimulus COMBINATIONAL

More information

Design Guidelines for Using DSP Blocks

Design Guidelines for Using DSP Blocks Design Guidelines for Using DSP Blocks in the Synplify Software April 2002, ver. 1.0 Application Note 193 Introduction Altera R Stratix TM devices have dedicated digital signal processing (DSP) blocks

More information

Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger

Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger ATLAS ATL-DA-EN-0004 EDMS Id: 1100579 ATLAS TDAQ Level-1 Calorimeter Trigger VHLD guidelines Document Version: 0.6 Document Date: 15 April 2011 Prepared by: Y. Ermoline for ATLAS Level-1Calorimeter Trigger

More information

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more

More information

PALMiCE FPGA Probing Function User's Manual

PALMiCE FPGA Probing Function User's Manual PALMiCE FPGA Probing Function User's Manual This manual describes the probing function and presents the basic usage patterns. Chapter1 Introducing the Probing Function The probing function makes it easy

More information