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

Reply

VHDL - ghdl problem

 
Thread Tools Search this Thread
Old 08-15-2006, 07:52 PM   #1
Default ghdl problem


Hi,

If anyone does respond, post to this newsgroup please.

I'm trying to use ghdl to model the pacman vhdl source which can be found
easily by web searches...

The source uses xilinx' unisim library. There are ROM's that are
instantiated. Type "RAMB16_S4". There are a bunch of generated vhdl source
files -- take a binary image, and you get vhdl source that is supposed
to instantiate a ROM with predefined values.

It's not working. I use ghdl to model the whole thing for a while, and
I use gtkwave to view signals. I'm looking for the z80 accessing memory.
Its address pointer looks fine, it's trying to fetch opcodes + execute code.
But the ROMs are just returning FF's -- nothing's driving the data lines.

I'm at my wits end. I get error messages with vhdl. Here is an example:

T80_RegX.vhd:114:16:warning: component instance "reg1h" is not bound
T80_RegX.vhd:85:14:warning: (in default configuration of t80_reg(rtl))
T80_RegX.vhd:129:16:warning: component instance "reg1l" is not bound
T80_RegX.vhd:85:14:warning: (in default configuration of t80_reg(rtl))
T80_RegX.vhd:144:16:warning: component instance "reg2h" is not bound
T80_RegX.vhd:85:14:warning: (in default configuration of t80_reg(rtl))
T80_RegX.vhd:159:16:warning: component instance "reg2l" is not bound
T80_RegX.vhd:85:14:warning: (in default configuration of t80_reg(rtl))
pacrom_6e.vhd:269:3:warning: component instance "inst" is not bound
pacrom_6e.vhd:19:14:warning: (in default configuration of pacrom_6e(rtl))
pacrom_6e.vhd:414:3:warning: component instance "inst" is not bound
pacrom_6e.vhd:19:14:warning: (in default configuration of pacrom_6e(rtl))
pacrom_6f.vhd:269:3:warning: component instance "inst" is not bound
pacrom_6f.vhd:19:14:warning: (in default configuration of pacrom_6f(rtl))
pacrom_6f.vhd:414:3:warning: component instance "inst" is not bound
pacrom_6f.vhd:19:14:warning: (in default configuration of pacrom_6f(rtl))
pacrom_6h.vhd:269:3:warning: component instance "inst" is not bound
pacrom_6h.vhd:19:14:warning: (in default configuration of pacrom_6h(rtl))
pacrom_6h.vhd:414:3:warning: component instance "inst" is not bound
pacrom_6h.vhd:19:14:warning: (in default configuration of pacrom_6h(rtl))
pacrom_6j.vhd:269:3:warning: component instance "inst" is not bound
pacrom_6j.vhd:19:14:warning: (in default configuration of pacrom_6j(rtl))
pacrom_6j.vhd:414:3:warning: component instance "inst" is not bound


WTF!!! This code is generated by a utility included with the pacman source,
how can there be problems? I'm new to VHDL. I have no clue what step to
take next.

Below is one of the generated files -- pacrom_6e.vhd.

Thanks for any ideas on what to do.

-Dave


-- generated with romgen v3.0 by MikeJ #### THIS IS LINE #1 in the file
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;

library UNISIM;
use UNISIM.Vcomponents.all;

entity PACROM_6E is
port (
CLK : in std_logic;
ENA : in std_logic;
ADDR : in std_logic_vector(11 downto 0);
DATA : out std_logic_vector(7 downto 0)
);
end;

architecture RTL of PACROM_6E is

function romgen_str2bv (str : string) return bit_vector is
variable result : bit_vector (str'length*4-1 downto 0);
begin
for i in 0 to str'length-1 loop
case str(str'high-i) is
when '0' => result(i*4+3 downto i*4) := x"0";
when '1' => result(i*4+3 downto i*4) := x"1";
when '2' => result(i*4+3 downto i*4) := x"2";
when '3' => result(i*4+3 downto i*4) := x"3";
when '4' => result(i*4+3 downto i*4) := x"4";
when '5' => result(i*4+3 downto i*4) := x"5";
when '6' => result(i*4+3 downto i*4) := x"6";
when '7' => result(i*4+3 downto i*4) := x"7";
when '8' => result(i*4+3 downto i*4) := x"8";
when '9' => result(i*4+3 downto i*4) := x"9";
when 'A' => result(i*4+3 downto i*4) := x"A";
when 'B' => result(i*4+3 downto i*4) := x"B";
when 'C' => result(i*4+3 downto i*4) := x"C";
when 'D' => result(i*4+3 downto i*4) := x"D";
when 'E' => result(i*4+3 downto i*4) := x"E";
when 'F' => result(i*4+3 downto i*4) := x"F";
when others => null;
end case;
end loop;
return result;
end romgen_str2bv;

attribute INIT_00 : string;
attribute INIT_01 : string;
attribute INIT_02 : string;
attribute INIT_03 : string;
attribute INIT_04 : string;
attribute INIT_05 : string;
attribute INIT_06 : string;
attribute INIT_07 : string;
attribute INIT_08 : string;
attribute INIT_09 : string;
attribute INIT_0A : string;
attribute INIT_0B : string;
attribute INIT_0C : string;
attribute INIT_0D : string;
attribute INIT_0E : string;
attribute INIT_0F : string;
attribute INIT_10 : string;
attribute INIT_11 : string;
attribute INIT_12 : string;
attribute INIT_13 : string;
attribute INIT_14 : string;
attribute INIT_15 : string;
attribute INIT_16 : string;
attribute INIT_17 : string;
attribute INIT_18 : string;
attribute INIT_19 : string;
attribute INIT_1A : string;
attribute INIT_1B : string;
attribute INIT_1C : string;
attribute INIT_1D : string;
attribute INIT_1E : string;
attribute INIT_1F : string;
attribute INIT_20 : string;
attribute INIT_21 : string;
attribute INIT_22 : string;
attribute INIT_23 : string;
attribute INIT_24 : string;
attribute INIT_25 : string;
attribute INIT_26 : string;
attribute INIT_27 : string;
attribute INIT_28 : string;
attribute INIT_29 : string;
attribute INIT_2A : string;
attribute INIT_2B : string;
attribute INIT_2C : string;
attribute INIT_2D : string;
attribute INIT_2E : string;
attribute INIT_2F : string;
attribute INIT_30 : string;
attribute INIT_31 : string;
attribute INIT_32 : string;
attribute INIT_33 : string;
attribute INIT_34 : string;
attribute INIT_35 : string;
attribute INIT_36 : string;
attribute INIT_37 : string;
attribute INIT_38 : string;
attribute INIT_39 : string;
attribute INIT_3A : string;
attribute INIT_3B : string;
attribute INIT_3C : string;
attribute INIT_3D : string;
attribute INIT_3E : string;
attribute INIT_3F : string;

component RAMB16_S4
--pragma translate_off
generic (
INIT_00 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_01 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_02 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_03 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_04 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_05 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_06 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_07 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_08 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_09 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0A : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0B : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0C : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0D : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0E : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_0F : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_10 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_11 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_12 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_13 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_14 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_15 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_16 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_17 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_18 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_19 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1A : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1B : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1C : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1D : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1E : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_1F : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_20 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_21 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_22 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_23 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_24 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_25 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_26 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_27 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_28 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_29 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2A : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2B : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2C : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2D : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2E : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_2F : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_30 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_31 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_32 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_33 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_34 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_35 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_36 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_37 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_38 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_39 : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3A : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3B : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3C : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3D : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3E : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000";
INIT_3F : bit_vector (255 downto 0) :=
x"000000000000000000000000000000000000000000000000 0000000000000000"
);
--pragma translate_on
port (
DO : out std_logic_vector (3 downto 0);
ADDR : in std_logic_vector (11 downto 0);
CLK : in std_logic;
DI : in std_logic_vector (3 downto 0);
EN : in std_logic;
SSR : in std_logic;
WE : in std_logic
);
end component;

signal rom_addr : std_logic_vector(11 downto 0);

begin

p_addr : process(ADDR)
begin
rom_addr <= (others => '0');
rom_addr(11 downto 0) <= ADDR;
end process;

rom0 : if true generate
attribute INIT_00 of inst : label is
"2FE0020E00000000000000000000000000000000000000000 000000000000733";
attribute INIT_01 of inst : label is
"002FEC02AC12B500E9DB037F801081FC1A7C0AF0116328D01 03C02D780EC0A00";
attribute INIT_02 of inst : label is
"06E76FDD820ED9206FD400E9DA0370E001041400E9DA037FE 401041C22012002";
attribute INIT_03 of inst : label is
"1E0E23EC0970010C17EB6C0970010317EB6D221EDB28EDA28 ED62D26FDD72268";
attribute INIT_04 of inst : label is
"7E1A8D1EDD2BEE013E1A8DAEDD2CEEC1BD1A8D1EDD2CEE01B F1B034670106012";
attribute INIT_05 of inst : label is
"1F1A8D3EDD2CEE41B01A8D5EDD2CEE81B21A8D4EDD22EE015 E1A8D4EDD22EE01";
attribute INIT_06 of inst : label is
"0B6DC020E6DDD42D32FA6B46B164B26376326081A8D5EDD21 EE01611BFDEC11E";
attribute INIT_07 of inst : label is
"D4200ADE2D4A9B002FEBED14D00A20520E76DF228646C0A01 838000021E00200";
attribute INIT_08 of inst : label is
"9D0723ED2A80FBD4A0727D3A000000000009C220ED0FBD5A9 002D5200ADF2D5A";
attribute INIT_09 of inst : label is
"DAADB2BE50BEDBADB25E585EDBA7C3E282EF6FFDD2F18CDDA 60896DEA796D4A3";
attribute INIT_0A of inst : label is
"CA60806DFA706D5ADB20DBA70FBB8DB20DBA907BD4ADA2BE5 0BEDAADA25E585E";
attribute INIT_0B of inst : label is
"7D6A708E70D6A7D8ADA20DAA707BB8DA20DAA90FBD5A7C3E2 82EF6FFDC2F18CD";
attribute INIT_0C of inst : label is
"AE784DD508E70D7A7D9A3CD4CD85D1E40D3CA7D6A580E983C D4CD84D1E40D332";
attribute INIT_0D of inst : label is
"920D9A7D7A5CDF52FEF42778E0420E052DBAF32FEF22778E0 228E032DAA4DD38";
attribute INIT_0E of inst : label is
"C60010E1D62D18C34A7D6A03ED42CD4A9F6277FEF7201A062 D820D8A7D6A072D";
attribute INIT_0F of inst : label is
"303E3EA9D62C18D34A687D6A83E8D42F7D4A950906306306C 60D150906306306";
attribute INIT_10 of inst : label is
"01E31A1092D369504E9870E50FE706CF69980E067F069480E F6FE001C60E10E2";
attribute INIT_11 of inst : label is
"7D1A91092D169502E9870E507E706CF69980E067F069480EF 6FE001C60110123";
attribute INIT_12 of inst : label is
"305E36AA01E37A443305E38AA01E39AD220E28CD2A608D02D AA7D0A308D12DBA";
attribute INIT_13 of inst : label is
"D720F6FF970699D820D8A7D6200E7D6A9D920D9A7D7200E7D 7A9D32C020E9443";
attribute INIT_14 of inst : label is
"8A943D0AE00E740F0D9A7DAA08E46D8A5EA7D6A950D57D52D 59D9D6200E7D6A9";
attribute INIT_15 of inst : label is
"AE00E740F0D9A7DAA08ED8A55A7D6A930D43D51D0AE00E740 F0D9A7DAA08E46D";
attribute INIT_16 of inst : label is
"0F0D9A7DBA00E26D8A52A7D6A930D43D51D0AE00E740F0D9A 7DAA08ED8A943D0";
attribute INIT_17 of inst : label is
"A00E26D8A6BA7D6A943D0AE00E740F0D9A7DBA00E66D8A930 D43D51D0AE00E74";
attribute INIT_18 of inst : label is
"66D0000943D0AE00E740F0D9A7DBA00E26D8A930D43D51D0A E00E740F0D9A7DB";
attribute INIT_19 of inst : label is
"8A38A732A093223AA31239A30238A8A38A730A9A038A39A73 1A97038A3AA732A";
attribute INIT_1A of inst : label is
"02FE93723623923820E932238A31237A30236A8A36A730A9A 038A37A731A9703";
attribute INIT_1B of inst : label is
"A052FFFF067E68D333680ED5AEC1307BD62CD6AEC190520E6 00ED52D80ED5A90";
attribute INIT_1C of inst : label is
"20E600ED72D80ED7A9002FE052F6A042FFFF067E3032F6A02 2FFFF067E3012F6";
attribute INIT_1D of inst : label is
"2FFFF067E3082F6A072FFFF067E3062F6A0A2FFFF067E68D3 33680ED7AEC190A";
attribute INIT_1E of inst : label is
"FFF067E3012F6A052FFFF067E68D333680EFE6DDAEC180EDF A9002FE0A2F6A09";
attribute INIT_1F of inst : label is
"D9AEC190F20E600ED92D80ED9A00009002FE052F6A042FFFF 067E3032F6A022F";
attribute INIT_20 of inst : label is
"E0F2F6A0E2FFFF067E30D2F6A0C2FFFF067E30B2F6A0F2FFF F067E68D333680E";
attribute INIT_21 of inst : label is
"F067E30B2F6A0F2FFFF067E68D333680EDAAEC190F20E600E DA2D80EDAA9002F";
attribute INIT_22 of inst : label is
"238A392C39A382A6F8AE338AFF679002FE0F2F6A0E2FFFF06 7E30D2F6A0C2FFF";
attribute INIT_23 of inst : label is
"36A372C37A362A6F8AE336AFF67939239A3A2C3AA392A6F8A E239A7FFFF06A38";
attribute INIT_24 of inst : label is
"9480E00180015599061FDDFE85937237A382C38A372A6F8AE 237A7FFFF06A362";
attribute INIT_25 of inst : label is
"9188D9480E0018001559171906FFE9188D9480E0018001555 91D4906FFE9188D";
attribute INIT_26 of inst : label is
"D001591E96D001591796D301591796D301591796D00159179 6D001591E906FFE";
attribute INIT_27 of inst : label is
"591796D401591796D40159A99D92199D590B92D91E96D3015 91E96D301591E96";
attribute INIT_28 of inst : label is
"0DDA091E96D701591E96D701591E96D401591E96D40159179 6D701591796D701";
attribute INIT_29 of inst : label is
"FDFA7DEA9FDE7D0DDAFDFA7DEA80EDDADF29DE27F60CFEDDD AD420020000097D";
attribute INIT_2A of inst : label is
"CD2A9FDD1A7D2A9DDA7D2AD02680E9D228D12D4509D8DD2DD DA39FDD4A7D0DDA";
attribute INIT_2B of inst : label is
"DD0A3D22CD2AA9DD1A7D2A97DA7D2AD02680E9D228D12D450 9168D02DD0A3D22";
attribute INIT_2C of inst : label is
"09168D02DD0A3D22CD2A9BDD1A7D2A99DA7D2AD02680E9D22 8D12D4509168D02";
attribute INIT_2D of inst : label is
"E0EF690019168D02DD0A3D22CD2A95DD1A7D2A93DA7D2AD02 680E9D228D12D45";
attribute INIT_2E of inst : label is
"23E36FFFFF00A0A23E36FFFFF00A0B2C9DF600A0C2C9DF600 A9D03E8200E9320";
attribute INIT_2F of inst : label is
"3D7C3D77C3DFFFFFE00AC3DFFFFFC3DFFFFC3DFFFC3DFFC3D FC3D7081FE00A09";
attribute INIT_30 of inst : label is
"0000000098E94E30FB92E307B9CE30FB95E307B9B87169C3D FFFFC3D77FE00AC";
attribute INIT_31 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_32 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_33 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_34 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_35 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_36 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_37 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_38 of inst : label is
"E900000000000DF3E5413211706E777000000000000009205 217421800000000";
attribute INIT_39 of inst : label is
"000000000000000000000000DF3EC5497E777000000000000 0920FD5407EF007";
attribute INIT_3A of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0431476543213 321000000000000";
attribute INIT_3B of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3C of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3D of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3E of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3F of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
begin
inst : RAMB16_S4
--pragma translate_off
generic map (
INIT_00 => romgen_str2bv(inst'INIT_00),
INIT_01 => romgen_str2bv(inst'INIT_01),
INIT_02 => romgen_str2bv(inst'INIT_02),
INIT_03 => romgen_str2bv(inst'INIT_03),
INIT_04 => romgen_str2bv(inst'INIT_04),
INIT_05 => romgen_str2bv(inst'INIT_05),
INIT_06 => romgen_str2bv(inst'INIT_06),
INIT_07 => romgen_str2bv(inst'INIT_07),
INIT_08 => romgen_str2bv(inst'INIT_0,
INIT_09 => romgen_str2bv(inst'INIT_09),
INIT_0A => romgen_str2bv(inst'INIT_0A),
INIT_0B => romgen_str2bv(inst'INIT_0B),
INIT_0C => romgen_str2bv(inst'INIT_0C),
INIT_0D => romgen_str2bv(inst'INIT_0D),
INIT_0E => romgen_str2bv(inst'INIT_0E),
INIT_0F => romgen_str2bv(inst'INIT_0F),
INIT_10 => romgen_str2bv(inst'INIT_10),
INIT_11 => romgen_str2bv(inst'INIT_11),
INIT_12 => romgen_str2bv(inst'INIT_12),
INIT_13 => romgen_str2bv(inst'INIT_13),
INIT_14 => romgen_str2bv(inst'INIT_14),
INIT_15 => romgen_str2bv(inst'INIT_15),
INIT_16 => romgen_str2bv(inst'INIT_16),
INIT_17 => romgen_str2bv(inst'INIT_17),
INIT_18 => romgen_str2bv(inst'INIT_1,
INIT_19 => romgen_str2bv(inst'INIT_19),
INIT_1A => romgen_str2bv(inst'INIT_1A),
INIT_1B => romgen_str2bv(inst'INIT_1B),
INIT_1C => romgen_str2bv(inst'INIT_1C),
INIT_1D => romgen_str2bv(inst'INIT_1D),
INIT_1E => romgen_str2bv(inst'INIT_1E),
INIT_1F => romgen_str2bv(inst'INIT_1F),
INIT_20 => romgen_str2bv(inst'INIT_20),
INIT_21 => romgen_str2bv(inst'INIT_21),
INIT_22 => romgen_str2bv(inst'INIT_22),
INIT_23 => romgen_str2bv(inst'INIT_23),
INIT_24 => romgen_str2bv(inst'INIT_24),
INIT_25 => romgen_str2bv(inst'INIT_25),
INIT_26 => romgen_str2bv(inst'INIT_26),
INIT_27 => romgen_str2bv(inst'INIT_27),
INIT_28 => romgen_str2bv(inst'INIT_2,
INIT_29 => romgen_str2bv(inst'INIT_29),
INIT_2A => romgen_str2bv(inst'INIT_2A),
INIT_2B => romgen_str2bv(inst'INIT_2B),
INIT_2C => romgen_str2bv(inst'INIT_2C),
INIT_2D => romgen_str2bv(inst'INIT_2D),
INIT_2E => romgen_str2bv(inst'INIT_2E),
INIT_2F => romgen_str2bv(inst'INIT_2F),
INIT_30 => romgen_str2bv(inst'INIT_30),
INIT_31 => romgen_str2bv(inst'INIT_31),
INIT_32 => romgen_str2bv(inst'INIT_32),
INIT_33 => romgen_str2bv(inst'INIT_33),
INIT_34 => romgen_str2bv(inst'INIT_34),
INIT_35 => romgen_str2bv(inst'INIT_35),
INIT_36 => romgen_str2bv(inst'INIT_36),
INIT_37 => romgen_str2bv(inst'INIT_37),
INIT_38 => romgen_str2bv(inst'INIT_3,
INIT_39 => romgen_str2bv(inst'INIT_39),
INIT_3A => romgen_str2bv(inst'INIT_3A),
INIT_3B => romgen_str2bv(inst'INIT_3B),
INIT_3C => romgen_str2bv(inst'INIT_3C),
INIT_3D => romgen_str2bv(inst'INIT_3D),
INIT_3E => romgen_str2bv(inst'INIT_3E),
INIT_3F => romgen_str2bv(inst'INIT_3F)
)
--pragma translate_on
port map (
DO => DATA(3 downto 0),
ADDR => rom_addr,
CLK => CLK,
DI => "0000",
EN => ENA,
SSR => '0',
WE => '0'
);
end generate;
rom1 : if true generate
attribute INIT_00 of inst : label is
"3F35030300000000000000000000000000000000000000000 0000000000005CF";
attribute INIT_01 of inst : label is
"5C3F340374037F20F70F127A402010540354034E30EC02C00 DC4133020F4135C";
attribute INIT_02 of inst : label is
"30F0E5E443834434C5EF20F70F12743402000F20F70F12703 402000413503503";
attribute INIT_03 of inst : label is
"6345373F1170214522310F117021442231045303443734438 344330E5E4430DF";
attribute INIT_04 of inst : label is
"11004C034030307211004C034031301211004C03403130021 10F12034C240443";
attribute INIT_05 of inst : label is
"00004C034031305210004C034031303210004C03403030720 1004C0340303072";
attribute INIT_06 of inst : label is
"0F5E413330AC453453A03203203DC5324324342204C034031 307210003C08203";
attribute INIT_07 of inst : label is
"403503443403CF5C3F308C0FC0553553030EC4F33F0E4130F 1F100503035C300";
attribute INIT_08 of inst : label is
"FC05D0F453024C40305CB45300000000000C413033C6C403C 5C3403543443403";
attribute INIT_09 of inst : label is
"44344323032F443443E303EF4434303030F3E00443A013443 02A0E44340E4030";
attribute INIT_0A of inst : label is
"4302A6E44346E4034439443025C014438443024C403443230 32F443443E303EF";
attribute INIT_0B of inst : label is
"B443131F4844344434439443027C014438443026C40343030 30F3E00443A0134";
attribute INIT_0C of inst : label is
"EF010CC032F4844344430DC07C0EC030EC02FB44313FF110D C07C0AC030EC01F";
attribute INIT_0D of inst : label is
"438443444300C4F3034F30003563E35634434F3034F300035 63235634430CC03";
attribute INIT_0E of inst : label is
"1044201144330130BFB443C0F4533453C4F300034F3003563 443844344435634";
attribute INIT_0F of inst : label is
"027F4B3C44330130FF02B443D0F7453A4453CF11432432431 0452F1143243243";
attribute INIT_10 of inst : label is
"26F4A3D115E531027F01743027F77F30E713EFFE742C7220F 0E4702110452453";
attribute INIT_11 of inst : label is
"4453CD115E431026F01743026F76F30E713EFFE742C7220F0 E47021104424430";
attribute INIT_12 of inst : label is
"020F4E3020F4E30CC020F4F3020F4F34530301345302B4534 43445312B453443";
attribute INIT_13 of inst : label is
"443B0E0074FE7C443844344439034443C4438443444390344 43C45341363C0CC";
attribute INIT_14 of inst : label is
"43C0FCD0F903403494434443C2F0C44303FB443C0FC0AC06C 01CC4439034443C";
attribute INIT_15 of inst : label is
"0F903403494434443C2F44308FB443C0AC0FC00CD0F903403 494434443C2F0D4";
attribute INIT_16 of inst : label is
"3494434443CEF0C4430DFB443C0AC0FC00CD0F90340349443 4443C2F443C0FCD";
attribute INIT_17 of inst : label is
"3CEF0D44301FB443C0FCD0F903403494434443CEF0D443C0A C0FC00CD0F90340";
attribute INIT_18 of inst : label is
"07C0000C0FCD0F903403494434443CEF0D443C0AC0FC00CD0 F90340349443444";
attribute INIT_19 of inst : label is
"2B4E354F30C4F34F34F34F34F34F3DB4F354F3C0302B4F354 F3C1302B4F354F3";
attribute INIT_1A of inst : label is
"C3F3C4E34E34F34F303C4F34E34F34E34F34E3DB4E354F3C0 302B4E354F3C130";
attribute INIT_1B of inst : label is
"75430000FE57F13222020F433092024C4333433092C553030 20F4333C0F433C5";
attribute INIT_1C of inst : label is
"303020F4333C0F433C5C3F35530E75530000FE5725530E755 30000FE5725530E";
attribute INIT_1D of inst : label is
"30000FE5725530E75530000FE5725530E75430000FE57F132 22020F433092C55";
attribute INIT_1E of inst : label is
"000FE5725530E75430000FE57F13222020F00E423092C0F41 3C5C3F35530E755";
attribute INIT_1F of inst : label is
"433092C55303020F4333C0F4330000C5C3F35530E75530000 FE5725530E75530";
attribute INIT_20 of inst : label is
"35530E75530000FE5725530E75530000FE5725530E7543000 0FE57F13222020F";
attribute INIT_21 of inst : label is
"0FE5725530E75430000FE57F13222020F433092C55303020F 4333C0F433C5C3F";
attribute INIT_22 of inst : label is
"34F34F334F34F30D030F84F350E5C5C3F35530E75530000FE 5725530E7553000";
attribute INIT_23 of inst : label is
"4E34E334E34E30D030F84E350E5C4F34F34F334F34F30D030 F84F350000FE74F";
attribute INIT_24 of inst : label is
"0020F0207442CEC000F4331E7FC4E34E34E334E34E30D030F 84E350000FE74E3";
attribute INIT_25 of inst : label is
"7CF130020F0207442CECE7F00041E7CF130020F0207442CFE CE4400041E7CF13";
attribute INIT_26 of inst : label is
"C422ECE702C402ECE702C4E2ECE702C4C2ECE702C422ECE70 2C402ECE700041E";
attribute INIT_27 of inst : label is
"ECE702C422ECE702C402EC00DCC0F0DCFCDC03CCE702C4E2E CE702C4C2ECE702";
attribute INIT_28 of inst : label is
"84030CE702C4E2ECE702C4C2ECE702C422ECE702C402ECE70 2C4E2ECE702C4C2";
attribute INIT_29 of inst : label is
"4403440304C743840344034403C0F403403740341E83FE340 34135C300000C43";
attribute INIT_2A of inst : label is
"34130FC413441309C14413413220F7413741355D0CC140334 0320DC413438403";
attribute INIT_2B of inst : label is
"34131413341300C41344130AC14413413220F7413741355D0 CDD141334131413";
attribute INIT_2C of inst : label is
"0CDD14133413141334130EC413441308C14413413220F7413 741355D0CDD1413";
attribute INIT_2D of inst : label is
"30F1E7440CDD14133413141334130FC413441309C14413413 220F7413741355D";
attribute INIT_2E of inst : label is
"30E0E000005034130E0E0000054341301C0E54341301C0E50 3CE24F7F2CF7002";
attribute INIT_2F of inst : label is
"1C001C0001C0000FE50301C0000001C000001C00001C0001C 001C4412FE58341";
attribute INIT_30 of inst : label is
"00000000C53C43025CC53025CC43024CC53024CC2770EC01C 000001C04FE5430";
attribute INIT_31 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_32 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_33 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_34 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_35 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_36 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_37 of inst : label is
"0000000000000000000000000000000000000000000000000 000000000000000";
attribute INIT_38 of inst : label is
"4454444444444444244445444542555444444444444445444 545454444444444";
attribute INIT_39 of inst : label is
"4444444444444444444444444442444452555444444444444 454444444444544";
attribute INIT_3A of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4544433333334 533444444444444";
attribute INIT_3B of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3C of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3D of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3E of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3F of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
begin
inst : RAMB16_S4
--pragma translate_off
generic map (
INIT_00 => romgen_str2bv(inst'INIT_00),
INIT_01 => romgen_str2bv(inst'INIT_01),
INIT_02 => romgen_str2bv(inst'INIT_02),
INIT_03 => romgen_str2bv(inst'INIT_03),
INIT_04 => romgen_str2bv(inst'INIT_04),
INIT_05 => romgen_str2bv(inst'INIT_05),
INIT_06 => romgen_str2bv(inst'INIT_06),
INIT_07 => romgen_str2bv(inst'INIT_07),
INIT_08 => romgen_str2bv(inst'INIT_0,
INIT_09 => romgen_str2bv(inst'INIT_09),
INIT_0A => romgen_str2bv(inst'INIT_0A),
INIT_0B => romgen_str2bv(inst'INIT_0B),
INIT_0C => romgen_str2bv(inst'INIT_0C),
INIT_0D => romgen_str2bv(inst'INIT_0D),
INIT_0E => romgen_str2bv(inst'INIT_0E),
INIT_0F => romgen_str2bv(inst'INIT_0F),
INIT_10 => romgen_str2bv(inst'INIT_10),
INIT_11 => romgen_str2bv(inst'INIT_11),
INIT_12 => romgen_str2bv(inst'INIT_12),
INIT_13 => romgen_str2bv(inst'INIT_13),
INIT_14 => romgen_str2bv(inst'INIT_14),
INIT_15 => romgen_str2bv(inst'INIT_15),
INIT_16 => romgen_str2bv(inst'INIT_16),
INIT_17 => romgen_str2bv(inst'INIT_17),
INIT_18 => romgen_str2bv(inst'INIT_1,
INIT_19 => romgen_str2bv(inst'INIT_19),
INIT_1A => romgen_str2bv(inst'INIT_1A),
INIT_1B => romgen_str2bv(inst'INIT_1B),
INIT_1C => romgen_str2bv(inst'INIT_1C),
INIT_1D => romgen_str2bv(inst'INIT_1D),
INIT_1E => romgen_str2bv(inst'INIT_1E),
INIT_1F => romgen_str2bv(inst'INIT_1F),
INIT_20 => romgen_str2bv(inst'INIT_20),
INIT_21 => romgen_str2bv(inst'INIT_21),
INIT_22 => romgen_str2bv(inst'INIT_22),
INIT_23 => romgen_str2bv(inst'INIT_23),
INIT_24 => romgen_str2bv(inst'INIT_24),
INIT_25 => romgen_str2bv(inst'INIT_25),
INIT_26 => romgen_str2bv(inst'INIT_26),
INIT_27 => romgen_str2bv(inst'INIT_27),
INIT_28 => romgen_str2bv(inst'INIT_2,
INIT_29 => romgen_str2bv(inst'INIT_29),
INIT_2A => romgen_str2bv(inst'INIT_2A),
INIT_2B => romgen_str2bv(inst'INIT_2B),
INIT_2C => romgen_str2bv(inst'INIT_2C),
INIT_2D => romgen_str2bv(inst'INIT_2D),
INIT_2E => romgen_str2bv(inst'INIT_2E),
INIT_2F => romgen_str2bv(inst'INIT_2F),
INIT_30 => romgen_str2bv(inst'INIT_30),
INIT_31 => romgen_str2bv(inst'INIT_31),
INIT_32 => romgen_str2bv(inst'INIT_32),
INIT_33 => romgen_str2bv(inst'INIT_33),
INIT_34 => romgen_str2bv(inst'INIT_34),
INIT_35 => romgen_str2bv(inst'INIT_35),
INIT_36 => romgen_str2bv(inst'INIT_36),
INIT_37 => romgen_str2bv(inst'INIT_37),
INIT_38 => romgen_str2bv(inst'INIT_3,
INIT_39 => romgen_str2bv(inst'INIT_39),
INIT_3A => romgen_str2bv(inst'INIT_3A),
INIT_3B => romgen_str2bv(inst'INIT_3B),
INIT_3C => romgen_str2bv(inst'INIT_3C),
INIT_3D => romgen_str2bv(inst'INIT_3D),
INIT_3E => romgen_str2bv(inst'INIT_3E),
INIT_3F => romgen_str2bv(inst'INIT_3F)
)
--pragma translate_on
port map (
DO => DATA(7 downto 4),
ADDR => rom_addr,
CLK => CLK,
DI => "0000",
EN => ENA,
SSR => '0',
WE => '0'
);
end generate;
end RTL;


David Ashley
  Reply With Quote
Old 08-15-2006, 09:23 PM   #2
Arnim Laeuger
 
Posts: n/a
Default Re: ghdl problem
Hi David,

> It's not working. I use ghdl to model the whole thing for a while,
> and I use gtkwave to view signals. I'm looking for the z80 accessing
> memory. Its address pointer looks fine, it's trying to fetch opcodes
> + execute code. But the ROMs are just returning FF's -- nothing's
> driving the data lines.
>
> I'm at my wits end. I get error messages with vhdl. Here is an
> example:
>
> T80_RegX.vhd:114:16:warning: component instance "reg1h" is not bound
> T80_RegX.vhd:85:14:warning: (in default configuration of
> t80_reg(rtl))


Seems that the default binding rules fail so the component for "reg1h"
(and others) isn't attached automatically.

Refer to

http://tams-www.informatik.uni-hambu...efault_binding

for a discussion about "Component Instantiation and Default Component
Binding". Basically, you will either have to build configuration
specifications or check the default binding rules at the failing instances.

Hope this helps

Arnim


Arnim Laeuger
  Reply With Quote
Old 08-15-2006, 10:58 PM   #3
David Ashley
 
Posts: n/a
Default Re: ghdl problem
Arnim Laeuger wrote:
> Hi David,
>
>
>>It's not working. I use ghdl to model the whole thing for a while,
>>and I use gtkwave to view signals. I'm looking for the z80 accessing
>>memory. Its address pointer looks fine, it's trying to fetch opcodes
>>+ execute code. But the ROMs are just returning FF's -- nothing's
>>driving the data lines.
>>
>>I'm at my wits end. I get error messages with vhdl. Here is an
>>example:
>>
>>T80_RegX.vhd:114:16:warning: component instance "reg1h" is not bound
>>T80_RegX.vhd:85:14:warning: (in default configuration of
>>t80_reg(rtl))

>
>
> Seems that the default binding rules fail so the component for "reg1h"
> (and others) isn't attached automatically.
>
> Refer to
>
> http://tams-www.informatik.uni-hambu...efault_binding
>
> for a discussion about "Component Instantiation and Default Component
> Binding". Basically, you will either have to build configuration
> specifications or check the default binding rules at the failing instances.
>
> Hope this helps
>
> Arnim


Arnim,

[Simpson's moment follows]

Cat Burgler: The treasure is under a big W.
Mob in jail: Whoopee! Let's go get it!
[Mob finds big W's all over the place, after a while it's hopeless]
Mob in jail to Cat Burgler: We need more information.
Cat Burgler [ irritated]: Ok, go to J street, make a left, A LEFT, ...

I spun trying to act on your advice for over an hour. I read the passage you
mentioned in that manual. Their syntax doesn't match the pacrom_6e syntax
at all. In fact I can't even unravel the pacrom_6e syntax. Intuitively I
know
it's trying to instantiate a couple of 4 bit static rams. How it's
supposed to
do it...

I tried inserting various stuff from the manual into the source file.
Everything
I try results in syntax/parse error.

I'm lost. Can you maybe provide some code snippet I can insert? I can
type and
build and report the results.

Thanks--
Dave


David Ashley
  Reply With Quote
Old 08-21-2006, 09:42 PM   #4
David Ashley
 
Posts: n/a
Default Re: ghdl problem
David Ashley wrote:
>...
> I tried inserting various stuff from the manual into the source file.
> Everything
> I try results in syntax/parse error.
>
> I'm lost. Can you maybe provide some code snippet I can insert? I can
> type and
> build and report the results.
>
> Thanks--
> Dave


Hi,

For those interested, I managed to get the ghdl to do the correct
binding by adding one line. Here is a snipped of pacrom_6e.vhd
before the change:

attribute INIT_3E of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3F of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
begin
inst : RAMB16_S4
--pragma translate_off
generic map (

And here is a snippet after the change:

attribute INIT_3E of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
attribute INIT_3F of inst : label is
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF";
for all : RAMB16_S4 use entity unisim.RAMB16_S4; -- this line added
begin
inst : RAMB16_S4
--pragma translate_off
generic map (

Evidently the simulator used for writing the original code would
automatically choose the unisim version, but GHDL doesn't make
this association.

Off and on this has plagued me for something like 2 months.
Hope this helps other people...

Note the error I was getting was this:

pacrom_6f.vhd:269:3:warning: component instance "inst" is not bound
pacrom_6f.vhd:19:14:warning: (in default configuration of pacrom_6f(rtl))
pacrom_6f.vhd:414:3:warning: component instance "inst" is not bound
pacrom_6f.vhd:19:14:warning: (in default configuration of pacrom_6f(rtl))


-Dave


David Ashley
  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
Comcast + Wireless Internet Problem shadoweloc General Help Related Topics 1 07-01-2008 06:19 PM
Dial Up Problem smackedass A+ Certification 3 02-02-2007 11:59 PM
Re: Virus Problem ** Help!** David BlandIII A+ Certification 1 03-02-2004 06:00 PM
Re: Serious Computer Problem hootnholler A+ Certification 1 11-24-2003 12:18 PM
Re: Serious Computer Problem Bret A+ Certification 0 11-19-2003 12:51 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