Yeah schematic design is a nice step. Currently working on a project initiated through Schematic design then generated its test_filename_bench, once done simulation task will be done. Although, i am designing in VHDL but have done Verilog projects before.
Yeah, I agree. Most of what I've done is pretty simple by comparison. Would you believe I'm already 20-some-odd blogs in? The schematics have been an excellent tool for learning some of the stuff, especially the code that's not horriblky obvious to me. I'm still Verilogging along, though.
I've been given an opinion from a friend, and so far I tend to agree - that is that Verilog is much easier and flexible, due to it's more programming-like nature, whereas VHDL is much more inflexible, yet also more powerful, as it's much more descriptive of actual hardware.
...
Sort of like a comparison between, say, C++ and Assebly.
Duane Benson 1/20/2013 6:12:54 PM User Rank Blogger
Re: Following along
Tomii - I'm going back in time to see what I can learn about VHDL. It certainly make sense to spend some time implementing designs schematic first too. Part of my problem though is that most of my hardware experience is decades old. The MCU boards I design seem pretty simple compared to what I'm trying to do now.
So, i'm in a similar boat. I've been an analog sensor engineer for a long time (mostly camera heads), and I wanted to start learning the digital side of things a little better.
Several years ago, I bought an Opal Kelly XEM3005 board and the associated breakout board. Similar to what you're using, with some differences.
I saw your posts, and so have decided to try to follow along a bit. I've taken a VHDL class several years ago, but with nothing to immediately apply it, ... well...
So, I've downloaded the newest Xilinx Webpack, and plugged in my board.
My "hello world" is a bit different than yours to start, but mainly based on the hardware being used. Videos are here:
Right now, I've done the implementation using schematics, as that's my fastest way forward. I'm looking for some good refeences to self-learn the vhdl, but I'm not real good at learning from books. I guess we'll see.
I have in mind a goal to push towards - a project, that is. It will be a camera controller and data buffer for some various projects I have in mind where I've yet to find a MCU fast enough to do the job.
Duane Benson 6/11/2012 11:14:54 AM User Rank Blogger
Re: More information about the .UCF file
Adam - I hadn't thought of it from this perspective. I had just been thinking about making things easier for whomever is doing the PC board layout. But after reading your comment, it makes sense that the timing and optimization inside the chip might be far more important. I can certainly see some back and forth between board layout and chip internal optimization, but I would guess that the chip internal is likely to have a much greater impact on overall system performance.
Max Maxfield 6/11/2012 9:30:43 AM User Rank Blogger
Re: More information about the .UCF file
@Duane: I'm guessing that the .PCF can be edited, but why would you want to? My understanding is that it's just a "failsafe" to make sure that there are some pin assignments, even if they don;t make much sense.
If you want your own pin assignments (which you really do) then the .UCF is the way to go. And remember that in the latest version of the tool suite -- Vivado -- even the .UCF file goes away ... but we will worry about that on another day :-)
Adam Taylor 6/10/2012 6:45:22 PM User Rank Blogger
Re: More information about the .UCF file
Once you have placed and routed your design if you did not specify a UCF you can create one using the back annotate pin locations option under the Place and Route stage.
You can also use plan ahead to place pins pre and post synthesis this is under the user constraints option in the design tab window.
many engineers often allow the device to place the pins where it wants first time to try and get optimal timing unless specific pins likes clocks etc are locked.They then generate the UCF file and use that one for future builds. This is where a tool like IO Designer are useful to tie up the FPGA design and the hardware schematic and ensure they are in step.
Duane Benson 6/10/2012 2:28:31 AM User Rank Blogger
Re: More information about the .UCF file
Max - That explains a lot. When trying to get the ISE going, it would seem to include the UCF, but it didn't seem to care too much if there wasn't a UCF.
Did they say if the .PCF can be edited? Or is that set only by ISE and if you want your own pin assignments, a UCF is required?
Max Maxfield 6/7/2012 5:29:04 PM User Rank Blogger
More information about the .UCF file
I realized that I was a little confused about some aspects of the .UCF file, so I asked the folks at Xilinx. They replied as follows:
ISE does create a file, unfortunately it is not called an .UCF file; it is a .PCF (program constraints file).
If ISE doesn't find a .UCF file, then it will default to the .PCF file. This explains your confusion. As to the algorithm for assignments in this file... it is a simple ordered assignment of resources in order, no real magic.
The recommendation is to create the UCF file as early as possible to assure all constraints are captured and all pin assignments are made.
However, you should also note that out new Vivado design environment solves all of this by eliminating the Xilinx proprietary UCF entirely; instead it uses the open standard XDC (Synopsys Design Constraints derivative) only, which is created prior to synthesis and which can be changed at any step in the flow. This gives more control over results, not only in terms of QoR but also runtime and analysis.
Duane Benson 6/7/2012 4:29:06 PM User Rank Blogger
Re: A crucial point
These crossbar implementations must be more common than I had thought. I just ran across a number of the Microchip PIC24F family MCUs that have remappable peripherals via a crossbar. The PIC24FJ16MC101, for example, has ten peripheral pins that can be remapped around. Again, it's not FPGA, but it does add PC board layout flexibility similar to what you get with an FPGA.
Duane has decided that the time is ripe to get his ZedBoard bolted onto his robot with a Linux distribution up and running. That was the ultimate plan anyway, so why wait?
To save this item to your list of favorite All Programmable Planet content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.