![]() |
|
|
|
#1 |
|
hi,
I have a total of 13 lines and it must be decoded into 2^13=8192 unique lines. Is there any way to reduce the burden of having to type the entire number? bxbxb3 |
|
|
|
|
#2 |
|
Posts: n/a
|
bxbxb3 wrote:
> hi, > I have a total of 13 lines and it must be decoded into 2^13=8192 unique > lines. Is there any way to reduce the burden of having to type the entire > number? How meaningful is it, to have 8192 lines, are you creating a memory? Bye Tom Thomas Reinemann |
|
|
|
#3 |
|
Posts: n/a
|
bxbxb3 a écrit :
> hi, > I have a total of 13 lines and it must be decoded into 2^13=8192 unique > lines. Is there any way to reduce the burden of having to type the entire > number? Quite easy: library ieee. use ieee.std_logic_1164.all; use ieee.numeric_std.all; .... constant n : natural := 13; signal addr : std_logic_vector(n-1 downto 0); signal lines : std_logic_vector(2**n-1 downto 0); .... process (addr) begin lines <= (others => '0'); lines(to_integer(unsigned(addr))) <= '1'; end process; .... -- ____ _ __ ___ | _ \_)/ _|/ _ \ Adresse de retour invalide: retirez le - | | | | | (_| |_| | Invalid return address: remove the - |_| |_|_|\__|\___/ Nicolas Matringe |
|
|
|
#4 |
|
Posts: n/a
|
Yes, I am creating a DDR-SDRAM memory module of 8192*256*32 size. Even
though I prefered complete RTL code, I think will have to code this one in behavioral style, thanks to Nicholas Matringe for giving the much needed idea. bxbxb3 |
|
|
|
#5 |
|
Posts: n/a
|
bxbxb3 wrote:
> hi, > I have a total of 13 lines and it must be decoded into 2^13=8192 unique > lines. Is there any way to reduce the burden of having to type the entire > number? Something along this way (not tested): SIGNAL input: std_logic_vector(12 DOWNTO 0); SIGNAL output: std_logic_vector(2**13-1 DOWNTO 0); VARIABLE out_var: std_logic_vector(2**13-1 DOWNTO 0); BEGIN out_var := (OTHERS => '0'); out_var(to_integer(unsigned(input))) := '1'; ouput <= out_var; END Paul Uiterlinden |
|
|
|
#6 |
|
Posts: n/a
|
Paul Uiterlinden a écrit :
> Something along this way (not tested): > > SIGNAL input: std_logic_vector(12 DOWNTO 0); > SIGNAL output: std_logic_vector(2**13-1 DOWNTO 0); > > VARIABLE out_var: std_logic_vector(2**13-1 DOWNTO 0); > BEGIN > out_var := (OTHERS => '0'); > out_var(to_integer(unsigned(input))) := '1'; > ouput <= out_var; > END Why do you use a variable? (just curious) -- ____ _ __ ___ | _ \_)/ _|/ _ \ Adresse de retour invalide: retirez le - | | | | | (_| |_| | Invalid return address: remove the - |_| |_|_|\__|\___/ Nicolas Matringe |
|
|
|
#7 |
|
Posts: n/a
|
Nicolas Matringe wrote:
> Paul Uiterlinden a écrit : > >> Something along this way (not tested): >> >> SIGNAL input: std_logic_vector(12 DOWNTO 0); >> SIGNAL output: std_logic_vector(2**13-1 DOWNTO 0); >> >> VARIABLE out_var: std_logic_vector(2**13-1 DOWNTO 0); >> BEGIN >> out_var := (OTHERS => '0'); >> out_var(to_integer(unsigned(input))) := '1'; >> ouput <= out_var; >> END > > > Why do you use a variable? (just curious) I guess it is not necessary. It was done in a paranoid mood, being affraid that "output(some_variable) <= '1'" would create a driver for all bits, resulting in all X-s. But that's not the case here (sequential signal assignments). Paul. Paul Uiterlinden |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Standalone 5.1 decoder | Steve Kraus | DVD Video | 7 | 03-05-2007 07:15 AM |
| save cost advice: decoder chip for large printer | lois8386 | General Help Related Topics | 0 | 11-03-2006 06:19 AM |
| ISO DVD standalone player with DTS decoder | Bodo Malo | DVD Video | 0 | 02-12-2006 08:56 PM |
| DVD DECODER | Barry day | DVD Video | 0 | 06-07-2004 03:32 AM |
| MPEG-2 decoder for nero | Donny | DVD Video | 10 | 01-08-2004 07:54 PM |