Guest User

Untitled

a guest
May 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. ERROR:Xst:528 - Multi-source in Unit <diviseur> on signal <endOfCalculations>; this signal is connected to multiple drivers.
  2.  
  3. dataPath:process(clk,reset)
  4. begin
  5. if reset='1' then quotient<=(others=>'0');
  6. rest<=(others=>'0');
  7. operand<=(others=>'0');
  8. fin<='0';
  9. else
  10. if rising_edge(clk) then
  11. if loadDivisorInReg='1' then divisor<=load; end if;
  12. if loadDividenedInReg='1' then dividened<=load; end if;
  13. if initializeOperand='1' then operand<="0000000"&dividened(7);end if;
  14. if runResult='1' then substractionResult<=operand-divisor;end if;
  15. if runQuotient='1' then quotient<=quotient(6 downto 0)&(not(substractionResult(7)));end if;
  16. if runOperand='1' then
  17. if substractionResult(7)='1' then
  18. operand<=operand(6 downto 0) &dividened(7);
  19. dividened<=dividened(6 downto 0) &'0';
  20. else
  21. operand<=substractionResult(6 downto 0) &'0';
  22. end if;
  23. if count="111" then count<=(others=>'0');endOfDivisionFlag<='1';
  24. else count <= count+1; endOfDivisionFlag<='0';
  25. end if;
  26. end if;
  27. if (endOfCalculations='1') then rest<=operand;end if;
  28. end if;
  29. end if;
  30. end process dataPath;
  31.  
  32. -- control signals
  33. -- loading divisor
  34. loadDivisorInReg<= '1' when state=E0 else '0';
  35. -- loading dividened
  36. loadDividenedInReg<= '1' when state=E1 else '0';
  37. -- initializing the operand
  38. initializeOperand <= '1' when state=E3 else '0';
  39. -- run substraction result
  40. runResult<= '1' when state=E4 else '0';
  41. -- run quotient
  42. runQuotient<= '1' when state=E5 else '0';
  43. -- find operand
  44. runOperand<= '1' when state=E6 else '0';
  45. -- end of division
  46. endOfCalculations<='1' when (state=E7) else '0';
Add Comment
Please, Sign In to add comment