Program counter design

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024
  • Designing the program counter module for the 8-bit computer.
    Support me on Patreon: / beneater
    This video describes how the program counter works and what functionality we need it to have. We'll build the program counter in the next video: • Program counter build
    See eater.net/bbcp... for more.

ความคิดเห็น • 94

  • @lucasmeiser
    @lucasmeiser 7 ปีที่แล้ว +184

    This series is the best thing that has ever appeared on youtube. Or appeared anywhere. Thanks for continuing it!

    • @GRBtutorials
      @GRBtutorials 6 ปีที่แล้ว +8

      Agreed. It's very addictive, I can't stop!

  • @osadzinski
    @osadzinski 7 ปีที่แล้ว

    It's all coming together. I joined late but I have a lot to do to catch up with the rest of you. Just got the Clock put together. I found out that Jameco is a great place to get parts. They have everything in stock and ship fast.

  • @octagoncake2560
    @octagoncake2560 7 ปีที่แล้ว +56

    Hey Ben, It seems like a youtuber with the youtube name/ID called "Suryaprakash105" is reuploading all your videos. I don't know if you gave him permission for this or not, otherwise you can report him for stolen content.

  • @lukasrussell5905
    @lukasrussell5905 7 ปีที่แล้ว +62

    Alert notifications always on for Ben

  • @3DSage
    @3DSage 7 ปีที่แล้ว +6

    Please keep up these awesome breadboard computer videos!! As someone who is trying to learn how computers work, these videos are teaching me so much.

  • @cheesecake667
    @cheesecake667 7 ปีที่แล้ว +14

    I LOVE your 8Bit Computer series. So glad you are continuing it.

  • @bkzzzzz
    @bkzzzzz 7 ปีที่แล้ว +39

    Thank you Ben for continuing the 8 bit series! this is just great.

  • @Galluxi
    @Galluxi 7 ปีที่แล้ว +2

    Awesome! I suggest if you could connect an actual keyboard to it so it would detect scancodes from the keyboard and then make some kind of assembly language for it that you can type with the keyboard :)

  • @garydunken7934
    @garydunken7934 7 ปีที่แล้ว +6

    Looks like Ben's Breadboard CPU is getting traction again. Well done Ben; I love it. Please keep it going.

  • @ozdemirsalik
    @ozdemirsalik 6 ปีที่แล้ว +3

    Synchronous means there's no ripple effect, Asynchronous counters also count with a clock.

  • @philipricossa5000
    @philipricossa5000 5 ปีที่แล้ว +4

    You have a gift. You are an excellent teacher and I for one appreciate you sharing your gift!

  • @aydencook03
    @aydencook03 5 ปีที่แล้ว +2

    You didn't really explain why all the LS163's clocks are tied together, and how it's able to load in new data to the flip-flops :(

  • @RoboGenesHimanshuVerma
    @RoboGenesHimanshuVerma 5 ปีที่แล้ว +5

    A great video :)
    Just a small improvement I could think of at 5:15
    "Synchronous means it counts using a clock" could have been put in a better way as "Synchronous means that all Flip flops get the same clock unlike asynchronous where successive FFs get divided clock. Both of them count using a clock input though". We additionally need Next State Decoder in synchronous counter.
    1000th like 🤘

  • @matth3wc
    @matth3wc 7 ปีที่แล้ว +4

    will you be doing a demo on a shift register like you did for the flip-flops?

  • @therealmeisl5609
    @therealmeisl5609 7 ปีที่แล้ว +3

    Yeah man, I celebrate whenever you put out a video! This one's great again - as always - but it ends right when it's getting exciting :(
    Please, PLEASE, don't have us wait too long until you're getting to guts with the PC and the control logic.

  • @coreyhulse8226
    @coreyhulse8226 7 ปีที่แล้ว +13

    First person I've ever pledged too on patreon. You have taught me so much that it's the only way I can thank you. Just took my first computer architecture class, we did a lot of similar stuff to this series and I breezed through the class up until the stuff this series hasn't covered yet. You're the man Ben, I can't wait to see what's coming next.

    • @vicvic553
      @vicvic553 3 ปีที่แล้ว

      What do/did you study?

    • @HulkRemade
      @HulkRemade 3 ปีที่แล้ว

      @@vicvic553 computer engineering probably

  • @4nyNoob
    @4nyNoob 10 หลายเดือนก่อน +1

    it feels so good to watch this series from the beginning and understand what's happening in little incremental steps
    i love learning stuff like this, because everything feels much more intuitive, now a day's people want stuff as soon as possible without knowing it's inner workings, but going over every single step makes ot SO MUCH MORE ENJOYABLE
    love your work, I'll try to get sone money to support you, because content like this doesn't deserve to be abandoned because of financial reasons

  • @AlberTesla1024
    @AlberTesla1024 7 ปีที่แล้ว +4

    thank you for continuing

  • @paulbill1078
    @paulbill1078 7 ปีที่แล้ว +2

    Good stuff. Do you do hand modeling on the side?

  • @juanclopgar97
    @juanclopgar97 3 ปีที่แล้ว

    In this diagram I see a "MAR" element connected to RAM and te BUS, What is used for? I saw the ram videos, but it doesn't seem be explained in that videos. By the way GREAT EDUCATIONAL CONTENT please keep it up.

  • @4FlexxMusic
    @4FlexxMusic 7 ปีที่แล้ว +1

    Perfectly presented. I almost feel like this channel is too good to be true because of how great it is, what's the catch Ben?!

  • @SriramS-xo1dl
    @SriramS-xo1dl 9 หลายเดือนก่อน

    Is it possible to make a PC using the 74LS175 Quad D flip flop instead of using the JK or the 4 bit counter chip?

  • @AnalogDude_
    @AnalogDude_ 2 ปีที่แล้ว

    now repeat the same, using 74HC.... series chips and build a 16 bit computer.

  • @BangHardy
    @BangHardy 2 ปีที่แล้ว

    Thanks for share

  • @felipefigueroa9449
    @felipefigueroa9449 ปีที่แล้ว +1

    Outstanding

  • @greenerell484
    @greenerell484 9 วันที่ผ่านมา

    thanks this video was very helpful

  • @umarhayat459
    @umarhayat459 3 ปีที่แล้ว +1

    l love you.....

  • @ki4dbk
    @ki4dbk 4 ปีที่แล้ว +1

    Yes. This is indeed one of the best engineering/tech series *ever*

  • @theleviathan3902
    @theleviathan3902 ปีที่แล้ว

    I guess explaining the load logic is left as an exercise to the viewer 🤣

  • @neilpayne8244
    @neilpayne8244 7 ปีที่แล้ว +1

    Great video, thanks!

  • @antonioastorino7488
    @antonioastorino7488 4 ปีที่แล้ว

    With reference to the discussion at th-cam.com/video/-arYx_oVIj8/w-d-xo.html, I was quite happy with the no-clock-gating approach but now I can see that the 74LS163 is inverting the clock, namely using a not gate. At this point, I'm a bit confused. Any thoughts from anyone here? Thank you in advance for your comments. And thank you, Ben, for this amazing video series!

  • @majormagics7163
    @majormagics7163 7 ปีที่แล้ว

    Can you tell me how to build a device that will send out Manchester code fm addresses? Any idea?

  • @vicvic553
    @vicvic553 3 ปีที่แล้ว

    What kind of studies should I opt for to acquire this knowledge deeply? Computer Science, Electronic- connected studies (if yes - which one?) or Automatics and Robotics?

  • @mikedelosier95
    @mikedelosier95 7 ปีที่แล้ว

    Updated Program Counter Schematic, Sorry I had the 74LS245 DIR pin 1 tied high +5 like Bens other build Schematics where A, B, IR Register, and Memory. Now I see in this Program Counter build Ben tied DIR pin 1 to ground instead.

  • @bonbonpony
    @bonbonpony 6 ปีที่แล้ว

    04:00 But the loading of a new content should still be synchronous with the clock, right? Or could we load it asynchronously as well?
    I'm asking this question because there's not many counter chips with synchronous load, especially reversible counters (those that can also count down towards 0), but there are quite some reversible counters that can be loaded asynchronously. So I'm wondering if they could be used here as a replacement of the 74LS161 one?
    Counting down might not be very useful for the program counter, true. But one may still want to use it if one doesn't have the 74LS161 chip, or if one wants to build a stack pointer register that counts down instead of up (because the stack usually grows down from the top of the memory space).
    Also a reversible counter could perhaps also be used as a replacement for the D registers, since a counter is basically a register too, and being able to increase it and decrease without the need of passing its value through the ALU could be a cool thing to have as well ;>

  • @Yahudiwa
    @Yahudiwa 6 ปีที่แล้ว

    Just finished my program counter but if the clock is too slow, like under 6 Hz for example, the clock cycles after hitting 2 or maybe even 3 (two lowest LEDs lit) and then back to 0000 for starting over. If I increase the clock, to 7 Hz then the counter cycles thru all values 0 to 15 as it should. Not sure what is causing this, any advice or comments?

  • @MrTimAway
    @MrTimAway 7 ปีที่แล้ว

    I am surprised you are using the 74LS161 binary counter when you already had the 74LS76 flipflops in place. I understand that the 74LS161 has the option to accept data with an enable pin, but your JK flipflops have a preset (PR) and a clear (CLR) pin that could have been used as data input signals.

  • @fsdvcb453
    @fsdvcb453 7 ปีที่แล้ว

    Thanks Ben,
    Your series has inspired me to restart a project I worked on years ago to make a simple 8 bit computer entirely out of NAND gates (along with an EEPROM chip and a few 555 chips). Thankfully I already have most of what I need, do you happen to know where I could get a few hundred dip 14 wire wrap sockets? Wire wrap seems to be a lost or at least dying method and most of the sockets I've been able to find online are $1.20+ per socket.

  • @xXTheMysteryXx
    @xXTheMysteryXx 7 ปีที่แล้ว +2

    Finally :D

  • @YouB3anz
    @YouB3anz 4 ปีที่แล้ว

    So wait, do we not need the JK flip flop chip? It was on the buy list 😂
    Also it's interesting how in the Counter chip, the flip flops don't circle back into one another via clock input. Would have been interesting to hear a few words on that! I suppose all of them having the same clock signal synchronizes the increments better, at the cost of some extra round about wiring.

  • @nilupulperera
    @nilupulperera 6 ปีที่แล้ว

    Dear Ben, What a nice video series. This is what I was looking for. I do not have any engineering background. I have a medical background. Your explanations are so simple to understand everything effortless. You are a great teacher. Thank you very much. Please upload more videos in this topic.

  • @aminnima6145
    @aminnima6145 3 ปีที่แล้ว

    I jist love u man... It just amazing to get a feeling of how this brilliant machine (the computer) works ❤️

  • @nedisawegoyogya
    @nedisawegoyogya 3 ปีที่แล้ว

    isn't switching from falling edge triggered ff to rising edge triggered ff simply just changing the position of clock inverter from slave to the master latch?

  • @minyeongjeong
    @minyeongjeong 6 ปีที่แล้ว

    I major computer electronics at school, but I study with Ben :)

  • @crocellian2972
    @crocellian2972 7 ปีที่แล้ว

    Struggling here. W/O knowledge of decoder, how do you plan to sort out all these high/low enables? You need a truth table.

  • @MitchRichard65
    @MitchRichard65 7 ปีที่แล้ว +1

    I LOVE YOU

  • @steveleroy8181
    @steveleroy8181 2 ปีที่แล้ว

    This info is very helpful for learning about computer science

  • @spyrex3988
    @spyrex3988 4 ปีที่แล้ว

    Well explaination of program counter could have tell about stack tho

  • @danielday3162
    @danielday3162 7 ปีที่แล้ว

    YES!!! I've been waiting for this! Thank you Ben!

  • @duality4y
    @duality4y 4 ปีที่แล้ว

    i tried building a computer and started from the point of the program counter :)

  • @yashuvansh
    @yashuvansh 5 ปีที่แล้ว

    Brilliant! Explained so nicely, it’s easy to follow. Thanks a lot.

  • @abbasiqaisar2018
    @abbasiqaisar2018 4 ปีที่แล้ว

    sir i want like u from pakistan

  • @crummmycheese
    @crummmycheese 7 ปีที่แล้ว

    Thank you Ben,i feel lot confident in understanding internals now

  • @shalomblau921
    @shalomblau921 4 ปีที่แล้ว

    Why there's tow different enable of they doing the same thing?

  • @zes3813
    @zes3813 7 ปีที่แล้ว

    wr, no such thing as useflx or not usefx, can use anyx no matterx wx

  • @drugmonster6743
    @drugmonster6743 7 ปีที่แล้ว +1

    Wooot!

  • @SuburbanDon
    @SuburbanDon 4 ปีที่แล้ว

    A stack would be interesting.

  • @frootube5662
    @frootube5662 7 ปีที่แล้ว

    Where do you get your electronics stuff?

  • @ropersonline
    @ropersonline 3 ปีที่แล้ว

    9:02: "This is an eight-bit thing; we're only going to use four of them, but that's fine."
    I wonder if it would be possible to build some sort of parasitical circuit using all the extra pins and gates that are not used by the main circuit. It might be too difficult to include these pins because their state is influenced by the main project's circuit logic, but some of the other ICs used in the wider project had spare gates on them that were not connected to anything else and that arguably could be hooked up to some separate thing. That would be quite a challenge to make something interesting out of those leftovers. Obviously not the thing you'd want to include in a "simply teach the fundamentals" design, but it might be an interesting challenge for anyone out there who's building a copy of Ben's breadboard computer. You could invent something extra using what you already have. If you do it, please send me a reply and tell me about it.

    • @topilinkala1594
      @topilinkala1594 ปีที่แล้ว

      I can't see why you couldn't change this 8 bit addresses. It would mean that all instructions conserning memory addresses would be two bytes long eg. need to fetch two 8 bit words into the instruction decode unit, so that would need major overhaul. The bus is 8bit wide so you only need to widen certain registers to 8 bits and of course buy more memory.

  • @timehunter9467
    @timehunter9467 4 ปีที่แล้ว

    This took me back to college learning about CANBUS systems you find in newer cars. This channel never gets boring, I love electrical engineering (even if it was only motor vehicle specific)

    • @theleviathan3902
      @theleviathan3902 ปีที่แล้ว

      I want a computer called "The BONG system"

  • @tusharmahajan6833
    @tusharmahajan6833 6 ปีที่แล้ว +1

    Did it mess up at 4:15?

    • @maleknecibi
      @maleknecibi 6 ปีที่แล้ว +1

      Looks like a jump cut from when he was editing the video

  • @hubertk7363
    @hubertk7363 3 ปีที่แล้ว

    Nice scheme :)

  • @abbasiqaisar2018
    @abbasiqaisar2018 4 ปีที่แล้ว

    sir u r great

  • @jalalhosseinabadi3595
    @jalalhosseinabadi3595 3 ปีที่แล้ว

    love u bro

  • @flamaral256
    @flamaral256 3 ปีที่แล้ว

    Thanks!

  • @COMB0RICO
    @COMB0RICO 5 ปีที่แล้ว

    Thanks from Texas.

  • @billbowlio6554
    @billbowlio6554 7 ปีที่แล้ว

    I'm having what appears to be low power problems. How much current is your power supply?

    • @depsshenanigans7406
      @depsshenanigans7406 7 ปีที่แล้ว

      Bill Bowlio 0.5A is standard in an USB charger, which he mentioned in an earlier video that he was using. iirc.

    • @billbowlio6554
      @billbowlio6554 7 ปีที่แล้ว

      Thanks!

    • @jeffnay6502
      @jeffnay6502 7 ปีที่แล้ว +1

      Bill Bowlio:
      I have been asked the same questions recently. As I have all but completed my SAP-1.
      I am using a 5VDC 3A wall charger. It appears that the smaller 5V 1A
      have a problem powering a fully assembled SAP-1.
      If you are having problems with power, I would suggested trying
      a 5VDC 3A as that seems to work for me, but even that has some slight limitations.
      I can not use blue LEDs... They seem to require more power.
      drive.google.com/open?id=0B6LIgQzDkH8fQlFZU01VajZzdmM
      drive.google.com/open?id=0B6LIgQzDkH8fUTlCYWpJV3B2dDA

  • @rabiussanyapu
    @rabiussanyapu 7 ปีที่แล้ว

    I want to use 74lsxx and 74hcxx both together.. what should I do?

    • @therealmeisl5609
      @therealmeisl5609 7 ปีที่แล้ว +4

      @rabius sany Apu They are not really compatible, but you can mix them if you respect a few things.
      - *First off: there's also HCT, which you actually CAN mix with LS unworried*
      - supply voltage: LS and HCT require 5V pretty much spot on, whereas HC can be used within 2V-6V
      - gate propagation delay is about the same, ~10ns
      - both can go well above 20 MHz, although this is of no relevance for this kind of project
      - LS uses more power than HC and HCT (mWs rather than µWs at low frequencies)
      - LS is pretty resilient to static discharge, while with HC and HCT you have to be careful
      - LS inputs have "auto-pull-up" (Ben takes advantage of this several times), ie if not connected they default to HI. HC/HCT inputs must *always* be tied to either 0V or +Vs (even if that part of the IC is not even used).
      - *you cannot reliably drive HC inputs from LS outputs* (HC*T* inputs from LS outputs is fine)
      - you can drive LS inputs from HC/HCT outputs
      - LS has smaller fan-out, that is: 1 LS output can drive only up to 10 LS inputs (many more HCT inputs), whereas 1 HC(T) output can drive at least 50 HC(T) inputs - *but only up to 10 LS inputs*
      Finally: the above is in no way comprehensive. There are more details/pitfalls. For example there are "open-collector" output versions, or "Schmitt-trigger" input versions in both families - things are different for these...
      So please do your own research, eg via Google: "74LS vs 74HC"

    • @rabiussanyapu
      @rabiussanyapu 7 ปีที่แล้ว

      TheRealMeisl Thank you very much. If I want to use 74hcxx series to build my 8 bit computer, what necessary change should I apply?

    • @therealmeisl5609
      @therealmeisl5609 7 ปีที่แล้ว

      rabius sany Apu Besides not leaving open any inputs (as said), it really depends on the actual circuit. Again, *avoid driving HC inputs from LS outputs*, but vice versa it's fine.
      The problem is that LS considers anything above ~2V a logic 1, and a 1 output may be as low as 2.4V. However, HC (not: HCT) expects at least 2.5V for a logic 1, so it doesn't quite match. You may get along with it though, possibly with additional pull-up.
      The other thing is that LS can't source a lot of current (it can sink much more though). That means in particular that you should not adopt Ben's practice of putting bare LEDs on HC outputs, but rather use low-current ones (1 mA or less), and always put a current-limiting resistor on them (good practice anyways IMHO, even for LS).
      You have to try on the actual circuit, use your multimeter.

  • @itaihudes8674
    @itaihudes8674 6 ปีที่แล้ว

    the program is stored in ROM

    • @RoboGenesHimanshuVerma
      @RoboGenesHimanshuVerma 5 ปีที่แล้ว

      But that's not compulsory. I guess Embedded systems generally use ROM to store programs but General purpose computers use RAM

  • @nsbajakian2
    @nsbajakian2 7 ปีที่แล้ว +1

    Thanks for the amazing videos!

  • @COMB0RICO
    @COMB0RICO 5 ปีที่แล้ว

    Whoa! This is a great explanation. I gotta see where you started this topic. Do you have any favorite books on this topic, and also sysadmin, bash, linux driver programming? Thank you for good teaching here.

    • @jamesparker8529
      @jamesparker8529 5 ปีที่แล้ว

      it is a little old but i recommend "cmos cookbook" by don lancaster

    • @COMB0RICO
      @COMB0RICO 5 ปีที่แล้ว

      Thanks! In this instance, older is better. Love that meme.

  • @saxhorn1508
    @saxhorn1508 6 ปีที่แล้ว

    Binary. Three syllables. Not bi a nar y.