![]() You don't want to end up in what I call FPGA Hell: that state where you cannot tell why the FPGA is (or isn't) doing what you want. Think carefully about how you are going to go about your design process. (If you move faster than 1ms, you'll get more than one light turning on at a time. I'd recommend turning each light in your SSD on in turn, one at a time, perhaps rotating through them at one second each so you can see what is going on.Īs I recall, you don't want to turn any light on for less than 1ms, so when you are ready to go faster you may need to divide a 100MHz clock down 100k times. You can use this post as advice in how to build any of the timing information you need. Now, build a state machine that walks through each of the lights, turning them on in order. Adjust the switches on your board to select which light you wish to have chosen, and have that light turn on based upon the switch setting. Repeat, until you understand how to turn each of the lights on individually.Ĭreate a module that will turn on a chosen light. Make sure you understand which light is now being turned on. Make it so your design does nothing but turning on one of the lights and that light only.īuild a new design, turning on a second light. To get that SSD going, try this (in order): By separating the components out like this, you'll find it easier to 1) write them, 2) maintain them, 3) know what is working and what isn't, design work is one of those things that is done a little bit at a time if you wish to be successful. Another module should have your counter in it, and should actually drive the various pins of the SSD. Use another module to convert this into a list of LED's that need to be turned on. Use one module to convert from a 7-bit binary value to an 8-bit BCD value. This will help you reason about what is going on and produce better quality code. is it properly being set? I can't tell, since it's not a part of your project.įurther, it looks like your are struggling to put too much logic into one component. the only problem you have is how to convert from binary to BCD, right? Something like: which board do you have? Were you able to create all 8-bits of the input using your buttons and switches? Could you display every number that the display can produce? If you can display a pair of hex digits without a problem, then. In your case, you have an 8-bit input, so your synthesis tool should be able to generate a divide in just 4-LUTs and an 8-mux per bit. there's a reason why that example used the divide within a C program to be run on a CPU, and not an FPGA program.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |