Advertisement
Guest User

Untitled

a guest
May 27th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3.  
  4. entity add_sub_4bit is
  5.  
  6. port
  7. (
  8. -- Input ports
  9. a : in std_logic_vector(3 downto 0);
  10. b : in std_logic_vector(3 downto 0);
  11. sel : in std_logic;--add if 0 sub if 1
  12.  
  13.  
  14. -- Output ports
  15. s : out std_logic_vector(3 downto 0);
  16. zero : out std_logic
  17. );
  18. end add_sub_4bit;
  19.  
  20.  
  21.  
  22. architecture add_sub_arc of add_sub_4bit is
  23.  
  24. component adder_4bit is
  25.  
  26. port
  27. (
  28. -- Input ports
  29. a : in std_logic_vector(3 downto 0);
  30. b : in std_logic_vector(3 downto 0);
  31. cin : in std_logic;
  32.  
  33.  
  34. -- Output ports
  35. s : out std_logic_vector(3 downto 0);
  36. cout : out std_logic
  37. );
  38. end component;
  39.  
  40. signal not_b: std_logic_vector(3 downto 0);
  41. signal mux_out: std_logic_vector(3 downto 0);
  42. signal s_help: std_logic_vector(3 downto 0);
  43.  
  44.  
  45. begin
  46.  
  47. ADDER4BIT: adder_4bit port map(
  48. a=>a,
  49. b=>mux_out,
  50. cin=>sel,
  51. s=>s,
  52. s=>s_help;
  53. cout=> open
  54. );
  55.  
  56.  
  57. mux: process(b,not_b,sel) is --da bi jednom signalu dodelili vrednost na vise mesta u kodu,ovo su ulazi u kombinacioni proces
  58. begin --ako se neki od njih promeni doci ce do promene u kodu , ako ih ne stavimo onda nece
  59.  
  60. if (sel='0') then
  61. mux_out<=b;
  62. else
  63. mux_out<=not_b; --svaki if mora da ima else!!!
  64. end if;
  65. end process mux;
  66.  
  67.  
  68. not_b<=not b;
  69.  
  70. zero<= '1' when (s_help=="0000") else '0'; --kraci if, s je def kao izlaz log kola pa nam nije dozvoljeno da ga koristimo ko ulaz u nekoj logici ! ne moze s=="0000" vec s_help
  71.  
  72. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement