|
|
View previous topic :: View next topic |
Author |
Message |
johnmarti42
Joined: 21 Jan 2018 Posts: 3
|
how do i simulate an 8 bit adder |
Posted: Sun Jan 21, 2018 11:31 pm |
|
|
I was asked to develop an 8 bit adder with 2 inputs and 1 output applying the carry number. I am using the pic 18f4550. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19510
|
|
Posted: Mon Jan 22, 2018 1:48 am |
|
|
Just add.....
On that chip, it is slightly 'awkward', since you don't have three full 8bit ports available (you need two a full 8 bit port for the inputs, one for 8 bits of output, and one extra bit for the carry , and potentially a clock to say 'do the operation'). It is possible to do it with mixes of bits, but adds latency either on the input or output. Any of the similar sized 'non USB' PIC's would be better since then you would have port C. On the USB chip you lose the C3 line for Vusb, and C4/C5 are input only.
Sequence is simply wait looping for the clock line. Then immediately read the first 8 bit input into the low byte of a 16bit variable (with the top byte already clear), then just add the byte from the other input. Since you have the first byte in a 16bit variable, you use 16bit maths and get a 16bit result On this chip I'd read the inputs on Port D & Port B, and output the result on Port A (6 bits) and Port E (3 bits). So E2 would be the 'carry'. Use perhaps C0 as the trigger input.
However it does seem a daft thing to be doing. A pair of CD74CD283 chips costs less than 1/5 the price of the PIC, and will draw less power, and do the whole thing perhaps 50* faster...... |
|
|
RF_Developer
Joined: 07 Feb 2011 Posts: 839
|
|
Posted: Mon Jan 22, 2018 4:54 am |
|
|
Ttelmah wrote: | However it does seem a daft thing to be doing. |
Well yes, from a practical, "useful" point of view its daft, and a total waste of resources. From a learning/training point of view it's probably not so daft.
So, on the assumption this is an exercise, and I suspect it's what your tutor/teacher/whoever asked you to do it is looking for, I suggest doing it the old-fashioned way as a serial adder. Note that I'm not providing any code; that's for you to do; I'm just describing what need to be done. To do this you need look up what a single bit full adder does, make simple code for it (and it is very simple), then put it in a loop that repeats it eight times. If you let the loop run continuously then you don't need an external clock (the loop is the clock).
All you then need to do is sort out the conections/io pins as Ttelmah suggests. This will, roughly, simulate how most early valve-based computers did it, and shows how relatively complex functions can be built up from much simpler ones. The code is trivial, getting the inputs and outputs on the right pins probably being the most complicated bit.
Last edited by RF_Developer on Mon Jan 22, 2018 5:07 am; edited 1 time in total |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19510
|
|
Posted: Mon Jan 22, 2018 5:04 am |
|
|
Not just valve based computers.
I build serial adders up using discrete transistors, back before the 74 series existed....
What does seem particularly daft to me is the number of people using the 4550 PIC, when for general use, other chips are far better.... |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9226 Location: Greensville,Ontario
|
|
Posted: Mon Jan 22, 2018 6:59 am |
|
|
The 4550 was one of the first to have builtin USB and on the surface that sounds good...after all PCs don't have 25 pin comports any more, sigh.
Yes, I bought a tube of them,still have most collecting dust.
Once you see the resources disappear (USB driver takes 1/4-1/3 codespace, USB pins are dedicated) then buy USB connector and a few other parts it isn't the 'Great PIC' we thought it would be. While in high volume, production runs, a PIC with USB might be cheaper, a simple TTL<>USB module for $1 works better, overall. No USB driver needed,any 2 pins can be 'USB' and well you need the connector and parts anyway. Any PIC can have USB.
I'm pretty sure a lot of profs migrated from the venerable 16F877 to the 4550 hoping their course and code could be used with minimal hassle.
I consider the 4550 a 'transitional' PIC. These days I'm 'stuck in a rut' with the 18F46K22. I'm sure there's newer PICs, bigger, better, but at almost 65 I'm comfortable with it.
Jay |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|