X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:in-reply-to:references:x-mailer :mime-version:content-type:content-transfer-encoding; bh=AXTWToHJCQvKqsoa3ilIFSQW+kNrHCDwnZMDoOkgMVQ=; b=viVL3Z3jBWHwyuVFwl6jGd03BDtd71Pc6PqpUK5OZfV6HnwLXuunPttsd4ANgnNAsm 60aU5iNiIf5YTsGVupmG/PteTVr7DmGje5RjxKMCP9OldfdBLgDuvlQOP2cwkOWONaTN Fx1MYOb8Z9b9Nr52qOdzKx5IoPeMzndgaMJmk= Date: Tue, 29 Nov 2011 00:39:37 -0500 From: Vanessa Ezekowitz To: geda-user AT delorie DOT com Subject: Re: [geda-user] Modern GAL/PAL design with gEDA? Message-ID: <20111129003937.7d098958@rainbird> In-Reply-To: <4ED432D0.8000303@ecosensory.com> 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> X-Mailer: Claws Mail 3.7.6 (GTK+ 2.20.1; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id pAT68oNc022610 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, 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. :-) -- "There are some things in life worth obsessing over.  Most things aren't, and when you learn that, life improves." http://digitalaudioconcepts.com Vanessa Ezekowitz