00:00:00 --- log: started forth/10.03.06 00:38:23 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 00:42:16 --- quit: alex4nder (Quit: bl) 00:56:49 --- join: ygrek (debian-tor@gateway/tor-sasl/ygrek) joined #forth 01:00:25 --- quit: qFox (Read error: Connection reset by peer) 01:59:05 --- quit: kar8nga (Remote host closed the connection) 02:00:26 --- join: mark4_ (~mark4@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 02:03:06 --- quit: I440r (Ping timeout: 248 seconds) 03:52:06 --- quit: ASau (Remote host closed the connection) 03:53:07 --- join: ASau (~user@83.69.227.32) joined #forth 05:01:57 --- quit: proteusguy (Ping timeout: 276 seconds) 05:09:34 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 05:13:31 --- join: proteusguy (~proteusgu@zeppelin.proteus-tech.com) joined #forth 05:41:15 --- quit: kar8nga (Remote host closed the connection) 07:15:17 --- join: TR2N (email@89.180.182.42) joined #forth 09:00:34 The way block RAM works on the Xilinx FPGAs is giving me grief. 09:01:05 It's synchronous RAM; you present the address (and data if you're writing) and then clock it. 09:01:28 Maybe I'm trying to do things in one clock cycle that should take two. 09:02:32 But the essence of my problem is that writes happen "now"; !a, for example, sticks the stack top up to the data inputs and the a register up to the address inputs and then the next rising edge of the clock "grabs" those. 09:03:00 The problem is on reads. To make the words work the way you'd expect them to I "see the read coming" and present the address to the memory on the cycle before. 09:03:10 That way the data is ready when the word that wants it executes. 09:03:36 The problem, of course, comes in when I want to do a write immediately followed by a read. 09:04:01 The write tries to happen now, but so does the read because the hardware is trying to anticipate it by a cycle. 09:05:33 I got lured down this path by doing something similar in the instruction fetch unit. It worked great there; anticipating data cells in the instruction stream let me very nicely step p over them and so on. 09:05:51 But there's enough generality about how data access operations can come along that it isn't as nice. 09:08:41 What this hardware *wants* is to have the instructions first initiate a read operation and then get the result later. I keep resisting that, but it's where the thing wants to live. 09:10:08 The "anticipation" also gives me trouble when I first set address pointers. For example, a! @a doesn't work right, because the hardware anticipates @a and starts the read a cycle early, with the *old value* of a. 09:11:24 But if @a just causes the RAM outputs to assume the correct value, and then there is a separate word for pushing the ram output onto the stack, all is well. 09:11:47 That also nicely handles slow memories; the hardware doesn't have to know how long it takes for the data to become valid, I just need to know. 09:12:12 So "@a ram" for fast internal memory and "@a ram" for slow external memory. 09:12:26 That feels much more Forthy than trying to get the hardware to patch stuff up for me. 10:09:07 --- quit: gogonkt (Ping timeout: 256 seconds) 10:10:52 --- join: gogonkt (~info@218.13.55.42) joined #forth 10:23:40 Hmmm. I think I may just fix these things. In all of these "problem" cases the value that I *really* want to use as the RAM address is right there; it's just at the input of the register that gets used now. 10:23:58 I have all the signals I need to recognize the cases and "bypass" the desired address around. 10:24:04 Problem solved. 10:54:34 Wow - nice. I even had a four-input mux on the memory address input that had only three inputs used. The "bypass" value just tucked right in on that unused pathway. 11:04:35 --- join: alex4nder (~alexander@wsip-72-215-164-129.sb.sd.cox.net) joined #forth 11:04:50 hey 11:18:54 --- quit: mark4_ (Quit: Leaving) 11:21:22 --- quit: Quartus` (Ping timeout: 276 seconds) 11:30:00 --- join: metaperl_ (~metaperl@adsl-4-127-45.cae.bellsouth.net) joined #forth 11:31:55 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 11:32:31 --- nick: metaperl_ -> metaperl 11:33:00 --- quit: ASau (Remote host closed the connection) 11:34:01 --- join: ASau (~user@83.69.227.32) joined #forth 11:38:24 --- join: metaperl_ (~metaperl@adsl-157-146-198.cae.bellsouth.net) joined #forth 11:39:49 --- quit: metaperl (Ping timeout: 265 seconds) 11:39:49 --- nick: metaperl_ -> metaperl 11:47:56 --- quit: Al2O3 (Quit: thanks) 12:03:01 --- quit: metaperl (Ping timeout: 256 seconds) 12:03:03 --- join: metaperl_ (~metaperl@adsl-157-146-54.cae.bellsouth.net) joined #forth 12:25:23 --- join: Quartus` (~Quartus`@74.198.8.57) joined #forth 12:39:33 --- quit: Quartus` (Ping timeout: 240 seconds) 12:40:44 --- join: crc_ (~charlesch@71.23.210.149) joined #forth 12:43:57 --- quit: crc (Ping timeout: 260 seconds) 12:46:49 --- quit: alex4nder (Quit: bbl) 12:51:04 --- quit: proteusguy (Ping timeout: 276 seconds) 12:54:13 --- quit: maht (Ping timeout: 260 seconds) 12:55:19 --- quit: Deformative (Remote host closed the connection) 12:56:21 --- quit: kar8nga (Remote host closed the connection) 12:58:05 --- join: Deformative (~joe@c-76-112-68-135.hsd1.mi.comcast.net) joined #forth 12:59:02 --- join: maht (~maht__@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 13:03:26 --- join: proteusguy (~proteusgu@zeppelin.proteus-tech.com) joined #forth 13:18:42 Hello peeps. 13:45:03 --- quit: ygrek (Ping timeout: 245 seconds) 13:59:34 --- join: Pusdesris (~joe@c-76-112-68-135.hsd1.mi.comcast.net) joined #forth 13:59:38 --- quit: Deformative (Ping timeout: 245 seconds) 14:17:59 --- join: qFox (~C00K13S@5356B263.cable.casema.nl) joined #forth 14:37:35 --- quit: qFox (Read error: Connection reset by peer) 15:22:43 --- join: I440r (~mark4@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 15:34:50 --- quit: Pusdesris (Remote host closed the connection) 15:55:14 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 16:11:04 --- join: Deformative (~joe@c-76-112-68-135.hsd1.mi.comcast.net) joined #forth 16:50:33 --- quit: kar8nga (Remote host closed the connection) 17:12:51 --- quit: mathrick (Quit: brb) 17:16:03 --- join: mathrick (~mathrick@users177.kollegienet.dk) joined #forth 17:16:19 --- nick: crc_ -> crc 17:16:23 --- mode: ChanServ set +o crc 17:33:56 --- nick: Deformative -> opaque-mofo 17:34:11 --- nick: opaque-mofo -> Deformative 18:05:35 --- quit: gogonkt (Read error: Connection reset by peer) 18:11:27 --- join: gogonkt (~info@119.126.114.187) joined #forth 19:37:28 --- quit: maht (Ping timeout: 256 seconds) 20:42:54 --- join: segher (~segher@84-105-60-153.cable.quicknet.nl) joined #forth 21:47:16 --- quit: I440r (Quit: Leaving) 23:54:32 --- join: ygrek (debian-tor@gateway/tor-sasl/ygrek) joined #forth 23:59:59 --- log: ended forth/10.03.06