From: Andrew on 13 Mar 2010 07:51 I have a query concerning the correct way to represent a boolean expression involving active low logic signals. The expression in question is for a simple address decoder for an 8-bit processor with a 16-bit address bus interfaced to a 32K byte ROM decoded between locations 0000-7FFF. The ROM has an active low chip enable input, /CE. For the purposes of this discussion I assume that an active low read signal /RD from the processor must be included in the decoding (I appreciate that most ROMs have a separate /OE and that /RD could be connected to /OE). The logic circuit is (I think!) obvious; we need a logic zero on /CE when both A15 and /RD have a logic zero on them, so a 2-input OR gate is required with A15 and /RD as inputs and the output connected to the ROM's chip enable /CE input. ASCII art diagram, mono-spaced font such as courier required __ ___ __ RD ---\ \___ CE A15 ---/__/ My query is the correct way of showing this as a boolean expression. One interpretation is that the actual names of the signals should be considered to be /RD and /OE leading to the equation: /CE = /RD + A15 An alternative interpretation would suggest that the negation in the above expression would mean that the RD input and the CE output are inverted. That is, the circuit represented by this equation is actually as follows (i.e. a NOR gate with an inverter on one input) which is obviously not what is required. ASCII art diagram, mono-spaced font such as courier required __ ___ __ RD --|>o--\ \o___ CE A15 -------/__/ Can anyone suggest the correct way of representing the required logic as a boolean expression please?
From: Wil Taphoorn on 13 Mar 2010 08:32 On 13-3-2010 13:51, Andrew wrote: > ASCII art diagram, mono-spaced font such as courier required > > __ ___ __ > RD ---\ \___ CE > A15 ---/__/ > > Can anyone suggest the correct way of representing the required > logic as a boolean expression please? Maybe this? __ _ RD ------o| | __ |&|o--- CE A15 ------o|_| /CE = /RD . /A15 -- Wil
From: D Yuniskis on 13 Mar 2010 09:27 Hi Andrew, Andrew wrote: > I have a query concerning the correct way to represent a boolean > expression involving active low logic signals. [could you please use an NNTP client that wraps words at something less than 200 characters per line?? :< ] > ASCII art diagram, mono-spaced font such as courier required > > __ ___ __ > RD ---\ \___ CE > A15 ---/__/ A better way of showing this would be: +---\ /RD ---o| \ | )o----- /CE A15 ---o| / +---/ (forgive my crappy rendering :< ) I.e., instead of "positive OR" show the function for what it really is: an AND taking two active low inputs and producing an active low output > /CE = /RD + A15 Or, /CE = /(RD * /A15) (DeMorgan) > ASCII art diagram, mono-spaced font such as courier required > > __ ___ __ > RD --|>o--\ \o___ CE > A15 -------/__/ This is a different function. Assuming you want the signal leaving the circuit (call it whatever you like) to be low when both inputs are low (call *them* whatever you like as well!), then the first drawing was correct.
From: D Yuniskis on 13 Mar 2010 09:29 Hi Wil, Wil Taphoorn wrote: > On 13-3-2010 13:51, Andrew wrote: > >> ASCII art diagram, mono-spaced font such as courier required >> >> __ ___ __ >> RD ---\ \___ CE >> A15 ---/__/ >> >> Can anyone suggest the correct way of representing the required >> logic as a boolean expression please? > > Maybe this? > > __ _ > RD ------o| | __ > |&|o--- CE > A15 ------o|_| > > /CE = /RD . /A15 Wanna try that again, Wil? ;-)
From: Andrew on 13 Mar 2010 10:29 "D Yuniskis" <not.going.to.be(a)seen.com> wrote in message news:hng6km$jl0$1(a)speranza.aioe.org... > Hi Andrew, > > Andrew wrote: >> I have a query concerning the correct way to represent a boolean >> expression involving active low logic signals. > > [could you please use an NNTP client that wraps words at something > less than 200 characters per line?? :< ] > >> ASCII art diagram, mono-spaced font such as courier required >> >> __ ___ __ >> RD ---\ \___ CE >> A15 ---/__/ > > A better way of showing this would be: > > +---\ > /RD ---o| \ > | )o----- /CE > A15 ---o| / > +---/ > > (forgive my crappy rendering :< ) > > I.e., instead of "positive OR" show the function for > what it really is: an AND taking two active low > inputs and producing an active low output > >> /CE = /RD + A15 > > Or, /CE = /(RD * /A15) > > (DeMorgan) > >> ASCII art diagram, mono-spaced font such as courier required >> >> __ ___ __ >> RD --|>o--\ \o___ CE >> A15 -------/__/ > > This is a different function. Assuming you want the signal leaving > the circuit (call it whatever you like) to be low when both inputs > are low (call *them* whatever you like as well!), then the first > drawing was correct. Thanks for the interest. I know the first circuit is right and the second is wrong. My purpose in showing the second circuit is that it is a possible interpretation of my boolean equation, if I have misunderstood the correct way of showing it. I can see that De Morgan leads to an equivalence between: /CE = /RD + A15 and /CE = /(RD * /A15) However, my doubt still remains as to whether either of these is correct when dealing with active low signals. Slide 25 on http://www.slideshare.net/ram_ari/logic-gates states that "The name of active low signals is always written in non-compliment (sic) form". This suggests that I should consider the signals to be called CE and RD which presumably means my equation becomes: CE = RD + A15 At least I think that is what it is telling me. http://archive.chipcenter.com/circuitcellar/august99/c89cd1.htm also has some interesting things to say. On the second page of the article is the statement "Another common practice is the use of a bar above a signal name to indicate active low. This is a bad way to designate active low because the bar above a signal means "perform the NOT operation on this signal." This is a Boolean operation, not a physical interpretation." This I think is the root cause of my confusion. The examples on the third page look as though they ought to answer my question but they only confuse me more at the moment! http://archive.chipcenter.com/circuitcellar/august99/c89cd3.htm
|
Next
|
Last
Pages: 1 2 Prev: ARM Development Kit Suggestions [ LPC2148 boards, buglabs...] Next: Looking for PIC programmer |