X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com MIME-Version: 1.0 In-Reply-To: <20111129003937.7d098958@rainbird> References: <20111117204524 DOT 10e586f5 AT rainbird> <4EC5CBEE DOT 5060904 AT optonline DOT net> <20111120162218 DOT 555bc069 AT rainbird> <4ECA9BF9 DOT 9000601 AT ecosensory DOT com> <20111128150702 DOT 2c75a231 AT rainbird> <4ED432D0 DOT 8000303 AT ecosensory DOT com> <20111129003937 DOT 7d098958 AT rainbird> Date: Mon, 28 Nov 2011 23:19:38 -0700 Message-ID: Subject: Re: [geda-user] Modern GAL/PAL design with gEDA? From: Russell Dill To: geda-user AT delorie DOT com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id pAT6n6ES024575 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Mon, Nov 28, 2011 at 10:39 PM, Vanessa Ezekowitz wrote: > On Mon, 28 Nov 2011 19:18:08 -0600 > John Griessen wrote: > >> On 11/28/2011 02:07 PM, Vanessa Ezekowitz wrote: >> > after a week of wrangling with this, I finally turned out a working >> > design - or at least, it simulates (iverilog + gtkwave)*and*  synthesizes >> > properly >> >> Hey, you did it! >> Looks like dotclock is a sequence you create after being triggered so as to >> put out some stored values, right? and that sequence is done with #delay >> statements. (it's been 20 years since I was doing this daily to make iic >> ports, serial ports, etc...) >> >> John > > Actually, you're pretty close to what I was originally trying to do.  The RAM controller chip used in C64 (of course) RAM Expansion Modules only produces enough signals during refresh to handle the 256k x 1 RAMs the use, and in RAS-Only refresh mode at that. > > So I had to detect those RAS-Only refresh signals and replace them with CAS-before-RAS pulses.  I originally tried to use a state machine driven by the dot clock, until I realized the 22v10's flip-flops are all clocked by the same line...  so a state machine was out. > > I worked out that, assuming my testbench model is accurate, I could use the dot clock to directly drive the RAS output line as long as I pulled all of the CAS lines low first, and as long as I provided it in inverted form.  Since the 22v10 can't invert the clock line, I had to loop it through the chip and invert it that way. > > The truly sad thing is the test bench is more complicated than the code it drives. :-) > Don't feel badly about that, it is pretty typical for the testbench to be larger than the code it tests.