Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    splinedrive
    @splinedrive
    Thats why I have 85F :) I have no idea how good yosys is in optimizing such expressions
    image.png
    I got the ranges from here
    emard
    @emard
    compilers won't optimize this, a man is required to reformulate algorithm to avoid ">" things when not needed. If counter is monotonicaly incrementing, then register set "=start" and reset "=stop" will replace ">" arithmetic
    reg in_range
    always @(posedge clk)
    begin
      if(counter == start)
        in_range <= 1;
      else
        if(counter == stop)
           in_range <= 0;
    end
    splinedrive
    @splinedrive
    Ok give me an example for:
    else if ( (vga_hcnt >= (htotal - 2)) && (vga_hcnt < (htotal - (/*2*/ + 0) ))) begin
    emard
    @emard
    always @(posedge clk)
      in_range <= counter == start ? 1 : counter == stop ? 0 : in_range; // save lines :)
    ...
      if(in_range)
    splinedrive
    @splinedrive
    Is unreadable!
    emard
    @emard
    :) but that's expresson to what really hardware "likes" to be made of when optimized
    splinedrive
    @splinedrive
    Ok! I have no idea! but htotal is known during compiletime.
    If something works I have to compare the RTLViews
    emard
    @emard
    start and stop condition may be also registers and not necessary constants known at compile time. Just note that in_range will be 1 clock delayed, so adjust -1 to start/stop ranges to make if(in_range) trigger correctly
    splinedrive
    @splinedrive
    Donald Knuth said: “Premature optimization is the root of all evil” :)
    emard
    @emard
    Yes, he gave tram station example: Q: help me at what station should I get off for traffalgar square? A: you should get off one station before I get off :)
    splinedrive
    @splinedrive
    :)
    Lawrie Griffiths
    @lawrie
    My Amstrad CPC is starting to work. The video seems OK now and the keyboard works if you type slowly. Keyboard losing keys is probably due to interrupts or clock speed, which I haven't looked at yet. I need to add audio and floppy disk - https://github.com/lawrie/ulx3s_amstrad_cpc
    Lawrie Griffiths
    @lawrie
    cpc
    Radu Stoichita
    @radu_stoichita_gitlab
    You are the boss 🐱
    emard
    @emard
    aaaaaaaaa oooooyea, I guess we need to choose what's repository games format and I got to make OSD cpc464 loading module in micropython :)))
    Lawrie Griffiths
    @lawrie
    I was planning to just support floppy disks and .dsk files, not tapes. But I haven't looked at the detail yet.
    This seems to be the file format - http://www.cpctech.org.uk/docs/dsk.html
    sylefeb
    @sylefeb
    @lawrie amazing to see a CPC on ulx3s, this was my first computer :-)
    @rob-ng15 @lawrie how are things on the PS/2 keyboard + Silice front? (I lost track these past few days due to other workloads)
    Rob S
    @rob-ng15

    Hi @lawrie @sylefeb I have a PS/2 keyboard that works with the ULX3s :) It is a KB2106C that I got from https://www.cclonline.com/product/76320/KB-2106C/Keyboards/CiT-KB-2106C-USB/PS2-Combo-Keyboard/KBD0426/

    Gives keycodes from the Silice using the PS/2 that @lawrie wrote, and works with the Jupiter Ace emulator. Very happy!

    sylefeb
    @sylefeb
    excellent!
    emard
    @emard
    @lawrie yes, floppy is the cool medium, only I see they complicate the format why so much science aiiieeee. For the tapes, how about to support single image loading, like c64/vic20 and similar. If we assume it's similar, then if we find what memory locations change after tape loading then we just patch ROM for this to happen and I suppose it's the minimal effort to get something. Of course only single part will load, multipart tapes won't work this way
    splinedrive
    @splinedrive

    Hi, I started today with diamond again. I am not an IDE guy. Where I can define parameters for synthesis like I would do in

    yosys -DMY_DEFINE

    ?

    emard
    @emard
    I think they are in some xml file, I have scripts in ulx3s-misc and makefiles for most projects tp compile same example source with both yosys and diamond eg. https://github.com/emard/ulx3s-misc/tree/master/examples/dvi
    splinedrive
    @splinedrive
    I thought something you can insert in the dialogs of diamond. I solved it with a `define in source code :(
    sajattack
    @sajattack:matrix.org
    [m]
    hey @emard, any interest in verilator for some of the ulx3s cores?
    I'm using verilator with sdl/imgui/opengl to do simulations with video output for a simple mister core I'm building, and wanted to do it for c64, but half that core is vhdl so it wouldn't work without some vhdl2vl, which made me think of ulx3s
    sajattack
    @sajattack:matrix.org
    [m]
    it makes development and debugging a lot better imo
    emard
    @emard
    @sajattack:matrix.org Great if you know verilator, I never used it (maybe lazy me). I have USB core and some keyboards don't work, they enumerate but keypress sends no USB report. There's a bug which I can't find. I would probably need real wire USB analyzer, but if you think verilator could help, that's cool to simulate. I think I have verilog-only version. Some is vhdl but its convertible to verilog with vhd2vl
    sajattack
    @sajattack:matrix.org
    [m]
    yeah I'm not sure if verilator is cut out for that one
    emard
    @emard
    for demo/example it is great if we had makefile for some other core for verilator, like dvi demo, hex decoder, spi display driver and similar
    sajattack
    @sajattack:matrix.org
    [m]
    emard
    @emard
    oho, I should take a look at this, I downloaded it but first I have to do some research about depedencies and installing them
    sajattack
    @sajattack:matrix.org
    [m]
    screenshot for added enticement
    sameerCoder
    @sameerCoder
    HI,
    is this group for pyroms ocean model?
    EnJens
    @EnJens
    emard
    @emard
    @lawrie I compiled amstrad for 12F, it booted out of the box! A small issue is that it looses keystrokes or I have to hold key very long in order to reliably accept it. Now I don't remember was original machine so lowsy (could be :)
    emard
    @emard
    OK - i just saw git log "partialy working keyboard" this explains
    Lawrie Griffiths
    @lawrie
    The problem is with the keyboard might be the interrupts, which are not frequent enough. They are currently one per frame but should be about 6 per frame. The algorithm for generating and clearing the interrupt is strange and I have not attempted it. The Mist/Mister uses an algorithm that was derived by reverse engineering the Amstrad gate array chip, but is produces strange verilog that uses lots of clocks. I will probably try something simpler. The clock speed and audio also needs work on it. I have been doing other things for the last week or so.
    Lawrie Griffiths
    @lawrie
    @emard I have pushed the changes to the interrupt handling and it seems to have the keyboard
    emard
    @emard
    HI! Thanx! Let me check it!
    emard
    @emard
    Info: Running main analytical placer.
    ERROR: Failed to expand region (0, 0) |_> (72, 50) of 12188 TRELLIS_SLICEs
    0 warnings, 1 error
    latest nightly build trellis has problem with 12F but I have 85F too :)