Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

PLD Internal connections - attribute pin_numbers

Status
Not open for further replies.

ZainZeus

Newbie level 1
Joined
Apr 25, 2009
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,290
attribute pin_numbers

hi
Im new in this forum, so hello everyone and whatever, anyways straight to my question

I'm moreless new in VHDL programming and I wrote this code
Code:
library ieee;
use ieee.std_logic_1164.all;

entity maquina_contador is	
	port(
	Clk, Rst: in std_logic;
	SSE: in std_logic_vector(1 downto 0);
	OP: out std_logic_vector(1 downto 0)
	);
ATTRIBUTE PART_NAME OF maquina_contador: ENTITY IS "PALC22V10D";
ATTRIBUTE PIN_NUMBERS OF maquina_contador: ENTITY IS
   "clk:1 "&
   "rst:2 "&
   "sse(0):3 "&
   "sse(1):4 "&
   "op(0):22 "&
   "op(1):21 ";
end maquina_contador;

architecture maquina_contador of maquina_contador is   
type estados is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12);
signal edo_presente, edo_futuro: estados;
begin
	process(SSE, edo_presente)
	begin
		case edo_presente is
			when s0 => op<="00";
			    if(SSE="00") then
				    edo_futuro<=s1;
			    elsif(SSE="01") then
				    edo_futuro<=s2;
			    elsif(SSE="10") then
				    edo_futuro<=s4;
			    else
				    edo_futuro<=s3;
			    end if;
			when s1 => op<="00";
			    if(SSE="10") then
				    edo_futuro<=s9;
				elsif(SSE="01") then
				    edo_futuro<=s5;
				else
					edo_futuro<=s1;
				end if;
			when s2 => op<="00";
			    if(SSE="00") then
				    edo_futuro<=s10;
				elsif(SSE="11") then
					edo_futuro<=s6;
				else
					edo_futuro<=s2;
				end if;
			when s3 => op<="00";
			    if(SSE="01") then 
				    edo_futuro<=s11;
				elsif(SSE="10") then
					edo_futuro<=s7;
				else
					edo_futuro<=s3;
				end if;
			when s4 => 
			    if(SSE="11") then
					edo_futuro<=s12;
				elsif(SSE="00") then
					edo_futuro<=s8;
				else
					edo_futuro<=s4;
				end if;
				op<="00";
			when s5 => op<="11";
			    edo_futuro<=s2;
			when s6 => op<="11";
			    edo_futuro<=s3;
			when s7 => op<="11";
			    edo_futuro<=s4;
			when s8 => op<="11";
			    edo_futuro<=s1;
			when s9 => op<="10";
			    edo_futuro<=s4;
			when s10 => op<="10";
			    edo_futuro<=s1;	 
			when s11 => op<="10";
			    edo_futuro<=s2;
			when others => op<="10";
			    edo_futuro<=s3;
			end case; 
		end process;
			
process(Clk, Rst)
begin
	if(Rst='1') then
		edo_presente<=s0;
	elsif(Clk'event and Clk='1') then
		edo_presente<=edo_futuro;
	end if;
end process;
end maquina_contador;

and you see the problem is when I try to compile this for some gal22v10 device, it not only gives me the inputs and outputs I specified but also it gives me some other that i didn't, it's shown on the galaxy report file:

Code:
                                 C22V10
                 __________________________________________
              clk =| 1|                                  |24|* not used       
              rst =| 2|                                  |23|= (edo_present.. 
         sse(0) =| 3|                                  |22|= op(0)          
         sse(1) =| 4|                                  |21|= op(1)          
       not used *| 5|                                  |20|* not used       
       not used *| 6|                                  |19|* not used       
       not used *| 7|                                  |18|* not used       
       not used *| 8|                                  |17|* not used       
       not used *| 9|                                  |16|= (edo_present.. 
       not used *|10|                                  |15|= (edo_present.. 
       not used *|11|                                  |14|= (edo_present.. 
       not used *|12|                                  |13|* not used       
                 __________________________________________

I didn't specified the output for the ones called: (edo_present... they are actual signals on my program.

So my guess is that if i label some variable as "signal" in my program, this device at least, will have to take those to some output pin. am I right? or is there anyway to avoid those signals to appear on the output pins?

I've only programmed vhdl code on fpga training boards so I wouldn't know for sure.

I'll apreciate any answer, thanks.
Have a nice day!

ZZ
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top