Hardware build: CRC calculation

preview_player
Показать описание


------------------

Social media:

Special thanks to these supporters for making this video possible:
Ben Dyson
Ben Kamens
Ben Williams
Brandon Stranzl
Christopher Blackmon
Debilu Krastas
Eric Dynowski
Gonzalo Belascuen
Jay Binks
Jayne Gabriele
Johnathan Roatch
Jordan Scales
Manne Moquist
Mark
Michael Burke
Mirko Rener
Nicholas Moresco
Nick Wrightsman
Old Lion
Randy True
Ric Allinson
Robert Butler
Sachin Chitale
SonOfSofaman
Рекомендации по теме
Комментарии
Автор

Watching that complex math boil down to such simple logic operations was the most beautiful thing I ever saw

benjaminmyburgh
Автор

I have to admit, after 42 years being a MSEE, your videos are truly works of inspiration. You are, most likely, one of the very best in the explanation in hardware and software of complex systems and how they work. Your simplification of concepts is just perfect.

Thank you for all your videos. Please continue with these videos. I look forward to each and every one.

BigDaddy_MRI
Автор

I'm 70. Refreshing AND Oh wait, I still need that.... :-) Thank You So much I can't verbalize it. Keep it up!

junkmail
Автор

Hey! I was just playing around with the CRC generation and found a simpler and faster way that eliminates sending 16 zeroes into the crc generator.

What you did was:
1. initialize with zero
2. feed message[i] into the right side
3. crc-flip based on crc[leftmost]
4. repeat until message over, then feed 16 zeros

If you replace that algorithm with:
1. initialize with zero
2. feed 0 into the right side
3. crc-flip based on crc[leftmost] xor message[i]
4. repeat until message over, done. no 16 zeros needed.


This works because you basically skip the 16 first steps of your algorithm, which only fill up the pipeline without any bit flipping.
You could bypass that step. The message itself doesn't have to get fed through the pipeline.

This has the advantage that there is no waiting time between the message and the crc sending, after sending the message you can directly send the crc.
Love your videos, keep making them!

m.sierra
Автор

The explanations are so good that sometimes we don't even realize that the video editing is also superb

gnpar
Автор

Just wanted to say that I'm glad you're making videos again! Love all of them!

ricardoboss
Автор

20:18 This reveal was amazing, seeing the circuit and suddenly realising how elegantly it implements the algorithm. Nicely edited!

edmund-osborne
Автор

Dude. Do you realise how fucking amazing it is to see maths being used for something useful? Maths teachers can never tell you why you're doing what you're doing. It's just dull processes you memorise to pass a test.
What a joy it is to see this!! Thanks

richardwilliamjohnson
Автор

It would take a couple of days (if not weeks) of re-reading from whitepapers (or books) for me to grasp what CRC is. But in less than an hour, now I have a solid understanding of what it is, how it works, how it can be implemented. And I'm entertained all the way through. If only every college had at least one teacher like you, world would be a different place! :)

alpyre
Автор

Absolutely awesome series Ben! This is the way electronics and engineering basics should be in college, breadboarding at its finest with detailed explanation all rolled into a practical example. What a world of difference this could make for the engineer to be that so rarely occurs when in school. I love it, and I haven't had digital classes since 1985! Tip for the kiddies: keep your breadboards on a 2D plane and try not to go full 3D …

stevewalston
Автор

I work in an industry where I need to understand CRC, FEC, parity, etc. This is by far the coolest, most thoroughly and concise explanation of this material I have ever seen. It makes me want to grab a breadboard and start exploring this side of the coin. Thanks!

ryanmustain
Автор

"Hella, world!" ... could not have planned that

cogwheel
Автор

I really loved this series. Once I started, I was on the edge of my seat waiting to see how error detection would get better and better. Really amazing seeing the idea on paper and then transformed into an elegant circuit. Thanks so much for making these videos and explaining every step in such detail!

millertime
Автор

I learned field algebra laws in my university on Software Engeneering cource. I might even see a XOR algebra as an example, but matrix algebra took more attention.
This is the first time I see XOR algebra is applied to a real world problem. And this is such a pleasure to watch how theory you knew is getting common sense to exist.

Your course about 8-bit PC was inspiring and helped me to fill the gap between adder (summer) from school and assembly from university. Now you remembered me how much I loved math while it was appliable, and I hope inspire to learn some high math again.
Beautiful channel, thank you for your work!

tozpeak
Автор

Always impressed with your skill at explaining things. That simple trick of covering half the XOR truth table was vastly better than my last attempt at explaining it.

weirdboyjim
Автор

Oh my god. What a journey.

You state a problem, then go into a wild ride of analysis and by way of complex series of deductions, you arrive at a solution. You implement it, test it, and then when EVERYTHING WORKS (most of the time), while others would be going like "AS YOU CAN SEE, I DO THE VOODOO MAGIC", you're like "oh hey it worked, cool. Moving on...".

You truly have a gift. I wish I was in a position I could repay you somehow, but at least know that your videos are changing my world. Thank you so much!

joaoornelas
Автор

Your notification is something rare that makes me happy everytime I see it. Keep uploading this content man, your videos are amazing!

LawrencceF
Автор

I never really understood CRC until I watched your video. I can understand how early days you would calculate CRC in hardware and then send it along after the message.

But after watching you having to add so many read/write pins for clocking CRC hardware separately, then reading CRC using a read-enable pin, I'm thankful I always got to do the CRC calculations in software (didn't understand them, just 'cookbooked' it) :)

mikefochtman
Автор

This video was the first one, that gave me a deep understanding of how CRC's work and how to compute them.
I really appreciate that you put this amount of effort into explaining everything and building all up from scratch.

anno_nym
Автор

So amazing to see an algorithm I always use implemented in hardware! As a suggestion, you can hook up the FFs clear pins to the Arduino reset pin, that way when you press the reset button the pin will go to GND (that's what the button does on the PCB). You also benefit from the free pull-up that's on the Arduino board :)

giacomo.delazzari
visit shbcf.ru