Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Real Users know your home telephone number.


devel / comp.arch.fpga / How to Implement a Random Access Memory at the Transistor Level

SubjectAuthor
* How to Implement a Random Access Memory at the Transistor LevelKevin Simonson
+- Re: How to Implement a Random Access Memory at the Transistor LevelStef
`- Re: How to Implement a Random Access Memory at the Transistor LevelDoug McIntyre

1
How to Implement a Random Access Memory at the Transistor Level

<1fb4e9b0-938c-4e2f-b69f-61ef4c593649n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=244&group=comp.arch.fpga#244

  copy link   Newsgroups: comp.arch.fpga
X-Received: by 2002:a05:620a:25ca:: with SMTP id y10mr13355247qko.526.1640644870609;
Mon, 27 Dec 2021 14:41:10 -0800 (PST)
X-Received: by 2002:a05:6214:f24:: with SMTP id iw4mr16934583qvb.42.1640644870468;
Mon, 27 Dec 2021 14:41:10 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.fpga
Date: Mon, 27 Dec 2021 14:41:10 -0800 (PST)
Injection-Info: google-groups.googlegroups.com; posting-host=2601:681:780:4a60:e832:21cd:f968:3531;
posting-account=gsXmKQkAAADuyNfZpkeBrCCcqQvlDvn9
NNTP-Posting-Host: 2601:681:780:4a60:e832:21cd:f968:3531
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1fb4e9b0-938c-4e2f-b69f-61ef4c593649n@googlegroups.com>
Subject: How to Implement a Random Access Memory at the Transistor Level
From: kvnsmnsn@hotmail.com (Kevin Simonson)
Injection-Date: Mon, 27 Dec 2021 22:41:10 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 23
 by: Kevin Simonson - Mon, 27 Dec 2021 22:41 UTC

I don't know if this is the right forum to post this to. If there's a forum that would be more appropriate for a question like this, please let me know.

Let's say for a moment that I need to build a Random Access Memory that consists of 256 nybbles. An eight-bit address bus and a four-bit data bus connect the CPU to each of the 256 nybbles. To make things simple, let's assume that one control bit is also sent from the CPU to each of the 256 nybbles; if that bit is set, then the CPU writes to one of the nybbles; if that bit is not set, then one of the nybbles gets read by the CPU. So in the former case, whichever nybble has its address (a number from 0 to 255) match the contents of the address bus, reads the contents of the data bus to its internal storage, and it's easy enough to imagine how I would do that. In the latter case, each of the 255 nybbles whose address does NOT match the value on the address bus writes high impedance to the data bus, and the nybble that DOES match the value on the address bus writes its contents to the data bus. How does it do that? How does it do that on the transistor level? An N-channel MOSFET can write high impedance to a bus, but the only logical value it is any good at writing to a bus is a zero. And a P-channel MOSFET can write high impedance to a bus, but the only logical value is is any good at writing to a bus is a one. So how can one of the mentioned nybbles be able to use MOSFETs of either or both variety to write to a bus when it might need to write any of those three values, a logical one, a logical zero, or high impedance?

Re: How to Implement a Random Access Memory at the Transistor Level

<nnd$48d490c1$3cf3c661@2abd8dd2bffd81ba>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=245&group=comp.arch.fpga#245

  copy link   Newsgroups: comp.arch.fpga
Newsgroups: comp.arch.fpga
From: me@this.is.invalid (Stef)
Subject: Re: How to Implement a Random Access Memory at the Transistor Level
References: <1fb4e9b0-938c-4e2f-b69f-61ef4c593649n@googlegroups.com>
Mail-Copies-To: nobody
User-Agent: slrn/1.0.3 (Linux)
Message-ID: <nnd$48d490c1$3cf3c661@2abd8dd2bffd81ba>
Organization: Newsxs
Date: Tue, 28 Dec 2021 00:49:46 +0100
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.de!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!abe006.abavia.com!abp002.abavia.com!news.newsxs.nl!not-for-mail
Lines: 20
Injection-Date: Tue, 28 Dec 2021 00:49:46 +0100
Injection-Info: news.newsxs.nl; mail-complaints-to="abuse@newsxs.nl"
X-Received-Bytes: 2851
 by: Stef - Mon, 27 Dec 2021 23:49 UTC

On 2021-12-27 Kevin Simonson wrote in comp.arch.fpga:
> I don't know if this is the right forum to post this to. If there's a forum that would be more appropriate for a question like this, please let me know.
>
> Let's say for a moment that I need to build a Random Access Memory that consists of 256 nybbles. An eight-bit address bus and a four-bit data bus connect the CPU to each of the 256 nybbles. To make things simple, let's assume that one control bit is also sent from the CPU to each of the 256 nybbles; if that bit is set, then the CPU writes to one of the nybbles; if that bit is not set, then one of the nybbles gets read by the CPU. So in the former case, whichever nybble has its address (a number from 0 to 255) match the contents of the address bus, reads the contents of the data bus to its internal storage, and it's easy enough to imagine how I would do that. In the latter case, each of the 255 nybbles whose address does NOT match the value on the address bus writes high impedance to the data bus, and the nybble that DOES match the value on the address bus writes its contents to the data bus. How does it do that? How does it do that on the transistor level? An N-channel MOSFET can write high impedance to a bus, but the only logical value it is any good at writing to a bus is a zero. And a P-channel MOSFET can write high impedance to a bus, but the only logical value is is any goo
d at writing to a bus is a one. So how can one of the mentioned nybbles be able to use MOSFETs of either or both variety to write to a bus when it might need to write any of those three values, a logical one, a logical zero, or high impedance?

This is probably not the right group, but to get you started.

Did you use a search engine to try and find some answers? You will find
documents like this one that tell you memory cells are not simple single
on/off transistors. And that the construction varies with type of
memory.
https://copeland.ece.gatech.edu/jac/2030/2002/Slides/Chap.10%20Memory.pdf

--
Stef

How comes it to pass, then, that we appear such cowards in reasoning,
and are so afraid to stand the test of ridicule?
-- A. Cooper

Re: How to Implement a Random Access Memory at the Transistor Level

<ptadnVR3rYL2wlb8nZ2dnUU7-c_NnZ2d@giganews.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=246&group=comp.arch.fpga#246

  copy link   Newsgroups: comp.arch.fpga
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 28 Dec 2021 13:03:07 -0600
Newsgroups: comp.arch.fpga
Subject: Re: How to Implement a Random Access Memory at the Transistor Level
References: <1fb4e9b0-938c-4e2f-b69f-61ef4c593649n@googlegroups.com>
From: merlyn@dork.geeks.org (Doug McIntyre)
User-Agent: nn/6.7.3
Message-ID: <ptadnVR3rYL2wlb8nZ2dnUU7-c_NnZ2d@giganews.com>
Date: Tue, 28 Dec 2021 13:03:07 -0600
Lines: 30
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-pKuylAzg2o7xFTkqrBRC11pyvF2RGFO/bqG3uGUAte/usMLvaa/8I+tRbaQQ0/cSDyhkFUJ/MZI1Hxy!V9AB10LjjO16759/cpJkYU5AOyFlQE7zhXub5VVVsEOW5YdPdpCfmK10kGRWCQglH4xkmVCuhRUv!dA==
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 2820
 by: Doug McIntyre - Tue, 28 Dec 2021 19:03 UTC

Kevin Simonson <kvnsmnsn@hotmail.com> writes:
>I don't know if this is the right forum to post this to. If there's a forum=
> that would be more appropriate for a question like this, please let me kno=
>w.

>Let's say for a moment that I need to build a Random Access Memory that con=
>sists of 256 nybbles. An eight-bit address bus and a four-bit data bus conn=
>ect the CPU to each of the 256 nybbles. To make things simple, let's assume=
> that one control bit is also sent from the CPU to each of the 256 nybbles;=
> if that bit is set, then the CPU writes to one of the nybbles; if that bit=
> is not set, then one of the nybbles gets read by the CPU. So in the former=
> case, whichever nybble has its address (a number from 0 to 255) match the =
>contents of the address bus, reads the contents of the data bus to its inte=
>rnal storage, and it's easy enough to imagine how I would do that. In the l=
>atter case, each of the 255 nybbles whose address does NOT match the value =
>on the address bus writes high impedance to the data bus, and the nybble th=
>at DOES match the value on the address bus writes its contents to the data =
>bus. How does it do that? How does it do that on the transistor level? An N=
>-channel MOSFET can write high impedance to a bus, but the only logical val=
>ue it is any good at writing to a bus is a zero. And a P-channel MOSFET can=
> write high impedance to a bus, but the only logical value is is any good a=
>t writing to a bus is a one. So how can one of the mentioned nybbles be abl=
>e to use MOSFETs of either or both variety to write to a bus when it might =
>need to write any of those three values, a logical one, a logical zero, or =
>high impedance?

There's always Ben Eater's design/description as well.
https://www.youtube.com/watch?v=FnxPIZR1ybs

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor