Need help in code

OP #5239675
Rate this post
• ▲ useful
▼ not useful
Hello
I'm currently working on my assignment in Spartan-3E.My assignment is:
While button is clicked show values of switches in low 4 bit of LED,when 
button is released move from left to right.Switching speed 2Hz.
But i haven't got any success so far.It not even showing values of 
switch.
And here is my code:
1
library IEEE;
2

3
use IEEE.STD_LOGIC_1164.ALL;
4
use ieee.std_logic_unsigned.all;
5
use ieee.std_logic_arith.all;
6

7

8
entity daalgavar_13 is
9
Port ( clk : in STD_LOGIC;
10
       led : out STD_LOGIC_VECTOR (7 downto 0);
11
       button : in std_logic;
12
       switch : in  STD_LOGIC_VECTOR (3 downto 0));
13
end daalgavar_13;
14

15
architecture Behavioral of daalgavar_13 is
16

17
signal clk_2G: std_logic;
18

19
signal tooluur: integer range 0 to 25000000;
20
signal data : STD_LOGIC_VECTOR (7 downto 0);
21
 begin 
22

23
--led<=data;
24

25
 process(clk_2G) --, switch)
26
 variable temp:std_logic_vector(7 downto 0);
27
 begin
28
 --if (rst = '0') then
29
 if clk_2G'event and clk_2G='1' then
30
  if button='1' then
31
   data <="0000" & switch(3 downto 0);
32
  else 
33
   temp := data;
34
   data <= temp (6 downto 0)& temp(7) ;
35
  end if;
36
 end if;
37
end process;
38

39
led<=data;
40

41
process(clk)
42
begin
43
 if clk'event and clk='1' then 
44
  if tooluur=25000000 then  --2Hz
45
   tooluur<=0;
46
   clk_2G<='1';
47
   else 
48
    tooluur<=tooluur+1;
49
    clk_2G<='0';
50
   end if;
51
  end if;
52
 end process;
53
end Behavioral;



Thank you
Attached files:
Moderator (Company: Titel) #5239771
Rate this post
• ▲ useful
▼ not useful
Rock B. wrote:
> where did i go wrong?
First: what does the simulation say?

Second: use your clock enable as a clock enable, not as a clock:
1
process(clk) -- the one and only clock in the whole design!
2
variable temp:std_logic_vector(7 downto 0);
3
begin
4
   if clk'event and clk='1' then
5
      if clk_2G='1' then -- this is the 2Hz clock enable
6
         if button='1' then
7
            data <="0000" & switch(3 downto 0);
8
         else 
9
            ...

Third, why this:
1
   temp := data;
2
   data <= temp (6 downto 0)& temp(7) ;
And not simply this:
1
   data <= data(6 downto 0)& data(7) ;
Guest #5239780
Rate this post
• ▲ useful
▼ not useful
Assuming the simulation is fine:

- Are you sure that the pin mapping on your board (ucf) is correct?
- Is the clock source running and at the correct frequency as assumed by 
your clock divider?
 Can you monitor clk_2G on an LED?

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.