Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > pn sequence

Reply
Thread Tools

pn sequence

 
 
J.Ram
Guest
Posts: n/a
 
      09-12-2006
Hi all,
my objective is to get outpn value when rising_edge of clk and low
reset.
when i written code , and in simulation result outpn value is comes
after one clk
cycle after reset goes to low, but my need is to get outpn at the
moment reset goes low.
here is my code.
entity pn is
port(
clk,reset : in std_logic;
outpn : std_logic);
end pn;
architecture test of pn is
type data is array(1 to 6) of std_logic;
signal buff : data;
begin
process(clk,reset)
variable input : std_logic;
begin
if reset = '1' then
outpn <= 'X';
elsif clk'event and clk ='1' then
input := buff(1) xor buff(6);
buff(1) <= input;
buff(2) <= buff(1);
buff(3) <= buff(2);
buff(4) <= buff(3);
buff(5) <= buff(4);
buff(6) <= buff(5);
end if;
outpn <= buff(6);]
end process;
end test;

 
Reply With Quote
 
 
 
 
uvbaz
Guest
Posts: n/a
 
      09-12-2006

J.Ram schrieb:

> Hi all,
> my objective is to get outpn value when rising_edge of clk and low
> reset.
> when i written code , and in simulation result outpn value is comes
> after one clk
> cycle after reset goes to low, but my need is to get outpn at the
> moment reset goes low.
> here is my code.
> entity pn is
> port(
> clk,reset : in std_logic;
> outpn : std_logic);
> end pn;
> architecture test of pn is
> type data is array(1 to 6) of std_logic;
> signal buff : data;
> begin
> process(clk,reset)
> variable input : std_logic;
> begin
> if reset = '1' then
> outpn <= 'X';
> elsif clk'event and clk ='1' then
> input := buff(1) xor buff(6);
> buff(1) <= input;
> buff(2) <= buff(1);
> buff(3) <= buff(2);
> buff(4) <= buff(3);
> buff(5) <= buff(4);
> buff(6) <= buff(5);
> end if;
> outpn <= buff(6);]
> end process;
> end test;


is this what do you want:

library ieee;
use ieee.std_logic_1164.all;

entity pn is
port
(
clk: in std_logic;
reset: in std_logic;
outpn: out std_logic
);
end pn;

architecture test of pn is
type data is array(1 to 6) of std_logic;
signal buff : data;
begin
process(clk, reset)
variable input : std_logic;
begin
if reset = '1' then
outpn <= '0';
elsif( (clk'event and clk ='1') or (reset'event and reset = '0') )
then
input := buff(1) xor buff(6);
buff(1) <= input;
buff(2) <= buff(1);
buff(3) <= buff(2);
buff(4) <= buff(3);
buff(5) <= buff(4);
buff(6) <= buff(5);
outpn <= buff(6);
end if;
end process;
end test;

 
Reply With Quote
 
 
 
 
Thomas Stanka
Guest
Posts: n/a
 
      09-12-2006

uvbaz schrieb:
> elsif( (clk'event and clk ='1') or (reset'event and reset = '0') )


You need a very good synthesis tool to synthesis the code in the
desired way. (and a technology allowing logic in the clock path). You
will further have big trouble with timig analysis of this construct.

I guess[1] the real code should be

signal PNcount : std_ulogic_vector(5 downto 0);
process (clk, Rst)
if reset_active then
PNcount<= Seed;
elsif rising_edge(Clk) then
PNcount <= PNcount(4 downto 0) & (PNcount(5) XOR PNCount(0);
end if;
end process
Outpn<=PNcount(5);

bye Thomas

[1] The OP was a bit confuse for me about what he really wanted

 
Reply With Quote
 
 
 
Reply

Thread Tools

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

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to iterate over sequence and non-sequence ? stef mientki Python 13 10-20-2007 10:21 AM
Driver intialization sequence =?Utf-8?B?ZnJlZA==?= Wireless Networking 2 12-17-2004 08:27 PM
Problem with Range Operator sequence number Paul Porcelli Perl 1 07-14-2004 10:52 PM
how to represent the negative value in data sequence? lezah VHDL 0 02-04-2004 04:45 PM
BOOT SEQUENCE (how to change boot sequence) bird Computer Support 13 12-24-2003 02:20 AM



Advertisments