LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: ronivon.costa at gmail.com<ronivon.costa@g...>
    Date: Wed May 7 21:01:37 CEST 2008
    Subject: [oc] Re: T80 Core x
    Top
    Hi Mike,
    I downloaded the the T80 from fpgaarcade.
    I had to use T80se instead of T80s (which is missing).
    Also, I tried T80_RegX instead of T80_Reg.

    The changes did not do any good.
    A sequence of commands "ld (hl),register" works just fine. If I put
    that in a loop, it fails (see first post, I posted a sample program
    there).

    It works fine for DE1. So, thinking again, it can't be a bug in the T80.

    Roni.

    ----- Original Message -----
    From: mike johnson<mikej@f...>
    To:
    Date: Tue May 6 12:37:31 CEST 2008
    Subject: [oc] Re: T80 Core x

    > Could you try the same test with the latest version of the T80 core
    > on the
    > www.fpgaarcade.com website. If that version fails I will fix it.
    > Best,
    > MikeJ
    > p.s. anybody know how I can merge this one back into the opencores
    > repository?
    > ronivon.costa at gmail.com writes:
    > > I would appreciate any help from people who used the T80 core
    > on this.
    > > This is more a multi-discipline problem, because it relates to
    > Z80
    > > assembly and VHDL:
    > >
    > > I have this logic to read/write into memory.
    > >
    > > DI_CPU is the Z80 input data bus.
    > > DO_CPU is the Z80 output data bus.
    > > A is the Z80 address bus.
    > >
    > > The others signals are for video ram (block memory) and other
    > devices.
    > >
    > > This process is to store data on memory:
    > >
    > > writevram: process(Clk_Z80)
    > > begin
    > > if Clk_Z80'event and Clk_Z80 = '1' then
    > > if A >= x"2000" and A <= x"27FF"
    > then
    > > vram_addra_sig <= A - x"2000";
    > > if Wr_n = '0' and MReq_n = '0' then
    > > vram_dina_sig <= DO_CPU;
    > > vram_wea_sig <= '0';
    > > else
    > > vram_wea_sig <= '1';
    > > end if;
    > > else
    > > vram_wea_sig <= '1';
    > > end if;
    > > end if;
    > > end process;
    > >
    > >
    > > And this continuous assignment is to read memory and input
    > from other
    > > devices and send to the Z80:
    > >
    > > DI_CPU <= D_ROM when (Rd_n = '0' and MReq_n = '0' and A
    > < x"2000") else
    > > ("0000" & SW) when (IORQ_n = '0' and Rd_n =
    > '0' and A(7 downto 0) =
    > > x"20") else
    > > ("0000" & KEY) when (IORQ_n = '0' and Rd_n =
    > '0' and A(7 downto 0)
    > > = x"30") else
    > > ps2_ascii_reg when (IORQ_n = '0' and Rd_n = '0' and A(7
    > downto 0) =
    > > x"80");
    > >
    > >
    > > Now the program in Z80 assembly.
    > > This next small program will run without problems, and the
    > byte will
    > > be stored in memory. I can have a buch of such commands,in
    > sequence,
    > > and they will run and the data will be stored in memory.
    > >
    > > ld a,41h ; define data to store
    > > ld (8250),a ; store the data in memory position 8250 decimal
    > > ld a,42h
    > > ld (8251),a
    > >
    > > However, if I try to write a block of data, it will fail, and
    > the data
    > > will not be written into memory:
    > >
    > > ld de,texto ; data to store in memory
    > > ld bc,2000h ; address of memory to store the data
    > > loop1:
    > > ld a,(de) ; read 1 character > > or a ; compares with zero > > jr z,next1 ; if zero, then end of text > > ld (bc),a ; store character in ram > > inc bc ; point to next ram position > > inc de ; point to next character > > jr loop1 ; go to store next character > > texto: > > db "Testing T80 Core " > > db 0 > > > > -- > > > > So, what do you think it is happening? > > I have considered a T80 bug, but have not come to a definitive > test to > > prove that. > > > > In the other hand, I really think there is a problem with my > logic. I > > am a beginner with VHDL and FPGAs. > > > > The memory model were generated using coregenerator (xilinx) > and > > implemented in a Spartan 3E. > > The problem does not occur when I use quartus and implement > the design > > on a DE1 board. > > > > Any thoughts? Ideia? I really appreciate. > > Thanks. > > _______________________________________________ > > http://www.opencores.org/mailman/listinfo/cores > > > > >

    Follow upAuthor
    [oc] Re: T80 Core xH Peter Anvin

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.