Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - why is this code wrong? generic or others?

 
Thread Tools Search this Thread
Old 03-12-2009, 04:32 AM   #1
Default why is this code wrong? generic or others?


library IEEE;
use IEEE.STD_Logic_1164.all, IEEE.Numeric_STD.all;
entity GCD is
generic (Width: natural:=;
port (Clock,Reset,Load: in std_logic;
A,B: in unsigned(Width-1 downto 0);
Done: out std_logic;
Y: out unsigned(Width-1 downto 0));
end entity GCD;
architecture RTL of GCD is
signal A_New,A_Hold,B_Hold: unsigned(Width-1 downto 0);
signal A_lessthan_B: std_logic;
begin
----------------------------------------------------
-- Load 2 input registers and ensure B_Hold < A_Hold
---------------------------------------------------
LOAD_SWAP: process (Clock)
begin
if rising_edge(Clock) then
if (Reset = '0') then
A_Hold <= (others => '0');
B_Hold <= (others => '0');
elsif (Load = '1') then
A_Hold <= A;
B_Hold <= B;
elsif (A_lessthan_B = '1') then
A_Hold <= B_Hold;
B_Hold <= A_New;
else A_Hold <= A_New;
end if;
end if;
end process LOAD_SWAP;
SUBTRACT_TEST: process (A_Hold, B_Hold)
begin
-------------------------------------------------------
-- Subtract B_Hold from A_Hold if A_Hold >= B_Hold
------------------------------------------------------
if (A_Hold >= B_Hold) then
A_lessthan_B <= '0';
A_New <= A_Hold - B_Hold;
else
A_lessthan_B <= '1';
A_New <= A_Hold;
end if;
-------------------------------------------------
-- Greatest common divisor found if B_Hold = 0
-------------------------------------------------
if (B_Hold = (others => '0')) then
Done <= '1';
Y <= A_Hold;
else
Done <= '0';
Y <= (others => '0');
end if;
end process SUBTRACT_TEST;
end architecture RTL;


Zheyu.Gao@googlemail.com
  Reply With Quote
Old 03-13-2009, 12:31 AM   #2
Aiken
 
Posts: n/a
Default Re: why is this code wrong? generic or others?
What's the error?

On Mar 12, 12:32*am, "Zheyu....@googlemail.com"
<Zheyu....@googlemail.com> wrote:
> library IEEE;
> use IEEE.STD_Logic_1164.all, IEEE.Numeric_STD.all;
> entity GCD is
> generic (Width: natural:=;
> port (Clock,Reset,Load: in std_logic;
> * *A,B: * in unsigned(Width-1 downto 0);
> * *Done: *out std_logic;
> * *Y: * * out unsigned(Width-1 downto 0));
> end entity GCD;
> architecture RTL of GCD is
> * *signal A_New,A_Hold,B_Hold: unsigned(Width-1 downto 0);
> * *signal A_lessthan_B: std_logic;
> begin
> ----------------------------------------------------
> -- Load 2 input registers and ensure B_Hold < A_Hold
> ---------------------------------------------------
> LOAD_SWAP: process (Clock)
> begin
> * *if rising_edge(Clock) then
> * * *if (Reset = '0') then
> * * * *A_Hold <= (others => '0');
> * * * *B_Hold <= (others => '0');
> * * *elsif (Load = '1') then
> * * * *A_Hold <= A;
> * * * *B_Hold <= B;
> * * *elsif (A_lessthan_B = '1') then
> * * * *A_Hold <= B_Hold;
> * * * *B_Hold <= A_New;
> * * *else A_Hold <= A_New;
> * * *end if;
> * *end if;
> end process LOAD_SWAP;
> SUBTRACT_TEST: process (A_Hold, B_Hold)
> begin
> * *-------------------------------------------------------
> * *-- Subtract B_Hold from A_Hold if A_Hold >= B_Hold
> * *------------------------------------------------------
> * *if (A_Hold >= B_Hold) then
> * * * A_lessthan_B <= '0';
> * * * A_New <= A_Hold - B_Hold;
> * *else
> * * * A_lessthan_B <= '1';
> * * * A_New <= A_Hold;
> * *end if;
> * *-------------------------------------------------
> * *-- Greatest common divisor found if B_Hold = 0
> * *-------------------------------------------------
> * *if (B_Hold = (others => '0')) then
> * * * Done <= '1';
> * * * Y <= A_Hold;
> * *else
> * * * Done <= '0';
> * * * Y <= (others => '0');
> * *end if;
> end process SUBTRACT_TEST;
> end architecture RTL;




Aiken
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
NT boot disk. What am I doing wrong? Viken Karaguesian A+ Certification 4 02-24-2006 02:30 AM
netflix claims that wrong dvd was returned Tonerhead DVD Video 0 06-24-2004 06:11 PM
DVD Verdict reviews: SHE'S OUT OF CONTROL, WRONG IS RIGHT, and more! DVD Verdict DVD Video 0 05-21-2004 10:06 AM
Re: Prove this wrong!!!! Colon Terminus DVD Video 1 10-19-2003 03:53 AM
Re: Prove this wrong!!!! LASERandDVDfan DVD Video 0 10-19-2003 12:24 AM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46