- 271
- 200 863
Steven Bell
Приєднався 6 жов 2011
Відео
Digital logic FSM example: locked candy dispenser
Переглядів 3,6 тис.3 роки тому
Digital logic FSM example: locked candy dispenser
Introduction to finite state machines for digital logic
Переглядів 9 тис.3 роки тому
Introduction to finite state machines for digital logic
How to insert the UPduino into a breadboard
Переглядів 2353 роки тому
How to insert the UPduino into a breadboard
How to remove your UPduino from a breadboard
Переглядів 2,4 тис.3 роки тому
Quick demonstration of how to remove the UPduino 3.0 from a breadboard without bending all the pins.
How to insert and remove IC DIP packages in a breadboard
Переглядів 4,5 тис.3 роки тому
Advice for how to insert standard DIP ICs into a breadboard, and how to remove them without damaging the pins.
Basics of using an oscilloscope
Переглядів 64 тис.3 роки тому
The basics of what an oscilloscope does, and how to use it to measure an electrical signal that is changing faster than your eyes can see. Uses the Tek TDS 2012 which we have in Tufts ECE lab 223.
How to use the digital multimeter and DC power supply
Переглядів 3,6 тис.3 роки тому
Quick tutorial on using a benchtop digital multimeter (DMM) and DC power supply. Uses the TENMA 72-410 and an analog DCPS in Tufts ECE lab 223.
More advanced VHDL debugging with Lattice Radiant
Переглядів 6263 роки тому
How to dig into the RTL and technology netlist view and P&R reports to better understand why your FPGA design isn't working.
How to set the top module and enable VHDL-2008 in Lattice Radiant
Переглядів 4,9 тис.3 роки тому
How to set the top module and enable VHDL-2008 in Lattice Radiant
How to see synthesis errors in Lattice Radiant
Переглядів 4103 роки тому
How to see synthesis errors in Lattice Radiant
How (and why) to write a good debug log
Переглядів 3983 роки тому
How (and why) to write a good debug log
Building a D flip-flop with VHDL
Переглядів 9 тис.3 роки тому
I describe how to use VHDL to describe a D flip-flop, while pointing out approaches that don't work.
Structural modeling with VHDL
Переглядів 4,8 тис.3 роки тому
An example of writing a VHDL module using structural/hierarchical modeling.
What good is structural modeling?
Переглядів 7303 роки тому
A brief example of structural / hierarchical modeling in digital systems, and why it's a useful technique.
Building and analyzing a D flip-flop
Переглядів 1,8 тис.3 роки тому
Building and analyzing a D flip-flop
Your first project with Lattice Radiant
Переглядів 4,1 тис.3 роки тому
Your first project with Lattice Radiant
Implementing logic functions with multiplexers (and how FPGAs work)
Переглядів 7 тис.3 роки тому
Implementing logic functions with multiplexers (and how FPGAs work)
Making sense of Boolean algebra theorems
Переглядів 3163 роки тому
Making sense of Boolean algebra theorems
"Think of it as designing a circuit and not a sequence of instructions" Dope
based and vim pilled
This is one of those topics where only a fairly small amount of people learn about it every year, and videos like this wouldn't get many views. For those who do watch this (me) and have to learn (also me) this, it is extremely helpful and I really appreciate you taking the time to explain this in a simple way so that one can grasp this in the right way from the beginning. Thank you!
Very good explanation Thank you 😊
Anderson Joseph Smith Timothy Allen Joseph
Antonette Crescent
Padberg Springs
Lee Scott Hall Donna Taylor Richard
Lee Harvey Oswald Donald John Trump
Clark Daniel Lewis Joseph Clark Lisa
Lee Michelle Robinson Deborah Martin Eric
14251 Ulices Cove
Walker Ruth Thompson Donald Wilson Larry
Moore Donna Walker Brenda Jackson Karen
Smith John Young Brenda Harris Steven
holy mouth noises
For creating a clock by process, you should have inserted one line of code after wait For 5 ns : signal a : std_logic := '0' process begin a <= not (a) ; wait for 5 ns ; a <= 1; end process ;
The line a <= '1'; doesn't do anything in this example... remember that with a non-blocking assignment the signal doesn't get the new value until time passes. So after "a <= '1'", it goes back to the top of the process block and does "a <= not(a)" with the **old** value of a. If you put a "wait for 5 ns;" statement after "a <= '1'" then it would work, but it's not clear what the advantage of this would be.
@@botsnlinux i had a similar doubt, thanks for explaining!
thanks for this as someone returning to electronics for my hobby of 9 bit micros i have not sued one for decades , so this really bought it all back for me
So its not possible to add breakpoint into code when using teh GHDL, is this correct?
When I was earning my master's degree, I heard a lot about finite state machines (FSMs), but it was all theory - like clouds in the sky: there's a lot of water, but you can't drink it. I toiled for three months after graduating until I implemented my first FSM in code in 1981. Now, there is a programming methodology based on this concept - v-agent oriented programming (VAOP) - with many examples of its implementation. It's best to start learning about VAOP with this article on Medium: "Bagels and Muffins of Programming or How Easy It Is to Convert a Bagel into a Black Hole".
Beautiful. Got an exam tomorrow, helped a lot. Thank you.
Superb!
VHDL process is a lie: it doesn't exist 🤪
Will you provide a link to sevenseg.vhd or a UA-cam video where you create it so I can get the last step of the simulation to work? Great video BTW!
how do we know that the output stays high when both the clock and A go low at the same time?
The short answer is that we don't! A real flip-flop will have a "setup time" and a "hold time" which define the intervals before and after the clock edge where the input signal needs to stay the same. If the input signal changes at the same time as the clock, the output will be undefined.
thank you for your time
Why must I even think about VHDL ? 🤪
Should have used a laser pointer, or a fixed focus camera
Thank you omg
Dude thank you so much. I have an exam tomorrow, this was lifesaving. I subbed and liked🙏🏽
Don't we have to initialize the states?
I meant not initializing but define them, like how does the program know that an idle state represents a 00
Ah, the cool thing about this method is that you don't have to specify the mapping of states to bits; the synthesis tool can do that for you. And because it can try a large number of possibilities very quickly, it can (hopefully) find a state encoding that minimizes the number of gates used, or makes the circuit run fast.
Hi! What if i have 3 states in my diagram? can i still use the two bits representation? 00 01 10 11? I won't have to use one of them tho. help please
Sure, there's no requirement that you use all the states! Although you should probably make sure that there's a path out of the unused state, so that if it ends up there by accident (power up, glitch, etc) it has a way to get back to a known good state automatically. For example, you could use 00, 01, and 10 for your three states, and then add logic so that the 11 state always goes to the 00 state on the next cycle.
Thanks for your reply. i just watched the next video and realized you mentionned this and immidiately i saw your comment reply. thanks very much@@botsnlinux
Although ... for a proper A => B with 3 values, you need a LUT with *9* entries ... hrm
3-LUT are cool for directly implementing #RM3 implication. Electronic logic circuits these days are already non-binary, with at least "true", "false", and "don't care" (X). The logical value of "Both true and false" is equivalent to "neither true nor false" so you only need 3 values, really.
nice video
Been at this language for a while and I still pull my hair out on occasions, but lately its all been coming together since using component imports and generics, I tend to think of designs in terms of counters and glue logic, i.e. state machines, if you try and fall back on VHDL doing the power tasks without thinking in terms of hardware behind it, you will create some monstrously bulky designs, KISS method. When you start, dont make the same mistake as I did, when you search for help, ALWAYS make sure the examples are SYNTHESIZABLE (can be programmed into hardware) or testbench which cannot, learn one first, not both at the same time or you might go mental!
@clintonowino2619 thankyou for that tip, that is helpful!, I am at a point now where I can create mostly functioning designs, but clueless on test bench, if you know any good books let me know
thank you!
lip smacking is very distracting
Glad I'm not the only one
Thank you for clear explanation. I think there is an issue. in this line ( hourplus <= "0" & hour;), I think you should use OR(|) instead of AND (&).
'&' here is concatenation (i.e., joining the bits into a longer vector), not logical AND! We need a 6-bit vector going into the digit-splitter, but hours will only be 5 bits. So we tack on an extra zero to make it match.
@@botsnlinux thank you for clarifying
Which VHDL editor can I download for free
GHDL is a good open-source simulator for VHDL. You can use whatever editor you'd like! (I happen to prefer Vim, but there are plugins for VSCode and plenty of other editors as well.)
What is it about the radiant that makes it not great as you put it?
Thank you for taking the time to make this video. Much appreciated.
Thanks just what I needed. Great video
Hi, i have experience with Ladder Logic. Do you think this would give me an advantage in learning VHDL?
Nope, not unless you used it to siplify logic like using demorgans, karnaugh maps, state machine etc.
By far the clearest and both concise on YT. Thanks!
Hello
❤
Hi, i think there is a mistake in the S0 KMAP 11:44 . 0110 is a minterm, but you accidentally put it as 0.
not in your class but going through the paces in CompE, thanks
Thank you
thanks!