Advertisement
Guest User

Untitled

a guest
Feb 12th, 2025
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. \documentclass{article}
  2.  
  3. \usepackage{listings}
  4. \usepackage[dvipsnames]{xcolor}
  5. \usepackage{color}
  6.  
  7. \def\digitcolor{\color{teal}}
  8. \definecolor{backgroundColour}{rgb}{0.95,0.95,0.92}
  9. \definecolor{lightgreen}{rgb}{0.13, 0.505, 0.02}
  10. \definecolor{offpurple}{rgb}{0.659, 0.063, 0.502}
  11.  
  12. \lstdefinestyle{VHDLstyle}{
  13. language=VHDL,
  14. numbers=left,
  15. numbersep=5pt,
  16. backgroundcolor=\color{backgroundColour},
  17. showspaces=false,
  18. showstringspaces=false,
  19. showtabs=false,
  20. tabsize=4,
  21. captionpos=t,
  22. breaklines=true,
  23. breakatwhitespace=true,
  24. identifierstyle=\color{black},
  25. frame=lrtb,
  26. % Define TYPE-1 Keywords
  27. keywords={},
  28. otherkeywords={},
  29. keywordstyle=\color{lightgreen},
  30. % Define TYPE-2 Keywords
  31. keywordstyle=[2]\color{blue},
  32. keywords=[2]{library, use, all, is, port, in, out, signal, of, downto, begin, assert, report, severity, then, if, elseif, others, end},
  33. % Define TYPE-3 Keywords
  34. keywordstyle=[3]\color{orange},
  35. keywords=[3]{std_logic, std_logic_vector, FAILURE},
  36. commentstyle=\color{Green},
  37. morecomment=[l]--,
  38. belowcaptionskip=0.2in,
  39. abovecaptionskip=0.2in,
  40. }
  41.  
  42. \begin{document}
  43.  
  44. \begin{lstlisting}[style=VHDLstyle, caption={VHDL signed adder}]
  45. library ieee;
  46. use ieee.std_logic_1164.all;
  47. use ieee.numeric_std.all;
  48.  
  49. entity signed_adder is
  50. port (
  51. aclr : in std_logic;
  52. clk : in std_logic;
  53. a : in std_logic_vector;
  54. b : in std_logic_vector;
  55. q : out std_logic_vector
  56. );
  57. end signed_adder;
  58.  
  59. architecture signed_adder_arch of signed_adder is
  60. signal q_s : signed(a'high+1 downto 0); -- extra bit wide
  61.  
  62. begin -- architecture
  63. assert(a'length >= b'length)
  64. report "Port A must be the longer vector if different sizes!"
  65. severity FAILURE;
  66. q <= std_logic_vector(q_s);
  67.  
  68. adding_proc:
  69. process (aclr, clk)
  70. begin
  71. if (aclr = '1') then
  72. q_s <= (others => '0');
  73. elsif rising_edge(clk) then
  74. q_s <= ('0'&signed(a)) + ('0'&signed(b));
  75. end if; -- clk'd
  76. end process;
  77.  
  78. end signed_adder_arch;
  79. \end{lstlisting}
  80.  
  81. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement