Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Duane Benson

Discovering FPGAs: Returning to VHDL, Part 2

Duane Benson
Page 1 / 8   >   >>
Crusty
Crusty
2/10/2013 4:51:41 PM
User Rank
Blogger
Re: Keep stirring the pot. Software to hardware conversion comes at a price
@Duane Picking up the logic of some language is one issue. Picking up the vocabulary is quite interrelated and just as important.

I would totally agree with what you said in this reply.

It's so like a learning a second languauge, all the time you consciously have to think in the mother tongue and then interpret to the second language you have trouble communicating.

I am beginning to get a lexicon of words but the vocabulary lacks, as I am still not thinking in my second language yet.

I have started to modify Hamsters PS2 key board code, some success some failure, but it's the second stage in UK101 on an FPGA.

The Address decoder was simple and works on the test bench.

Now I have to find a way to make the key codes from Hamsters logic, act like push button switches on the old UK101 8*8 keyboard matrix input to output.

I am doing it the hard way and not changing the operating code of the UK101

50%
50%
Duane Benson
Duane Benson
2/10/2013 3:13:13 PM
User Rank
Blogger
Re: Now that you've returned to the VHDL fold ...
Mandrews - Thanks for the link. I downloaded VHDL Pacemaker and installed it. A few notes for anyone else that might want to try it out: It does require registration first, but so does everything. What startled me is that it's an installable application (.exe). There's nothing wrong with that, but I always tend to be wary of executable.

It's not compatible with my Windows 7 installation, so I had to install it on the Windows XP virtual machine. I've found that having that VM is pretty handy. This isn't the first applications I've run across that doesn't play well with Win7. Compatibility mode doesn't always help, but the VM solves the problem.

I've just run the tutorial (the tutorial on how to use the tutorial). It seems pretty thorough, but I'll know more once I've run through a bit of the actual VHDL tutorial.

50%
50%
mandrews
mandrews
2/6/2013 6:26:56 PM
User Rank
Beginner
Now that you've returned to the VHDL fold ...
Doulos has a very nice, FREE - aka even nicer - interactive VHDL tutorial called VHDL PaceMaker that's great for breaking into VHDL. Complete with cute little pictures of talking ICs. Includes worthwhile question and answer sessions at the end of each step. They also sell a series of 8 'Golden Books' that are concise, real-world design references. Amazingly helpful. Among them are Golden Books for VHDL and Verilog. I highly recommend them! The people at Doulos have been great to work with, too.

You might enjoy "VHDL for Programmable Logic" by Kevin Skahill of Cypress Semiconductor. Easy entry level book with lots of examples and explanations. Then check out "Essential VHDL - RTL Synthesis Done Right" by Sundar Rajan. This is a book I reference a *lot* along with the VHDL Golden Book while designing.

Welcome back to "real" HDL.  :-)

BTW, I do not work for Doulos, nor do I get paid for saying nice things about Doulos or any of the people above - drat.

100%
0%
Duane Benson
Duane Benson
2/6/2013 12:11:07 PM
User Rank
Blogger
Re: Keep stirring the pot. Software to hardware conversion comes at a price
Devel,  Jan - Picking up the logic of some language is one issue. Picking up the vocabulary is quite interrelated and just as important. That vocabulary always seems to be more of a challenge for me than it should be. Some times it seems like every text I read has a different take on concepts like the description of what a register is.

I will get it eventually, and I appreciate your insight. It's helping me and will no doubt be helping other newbies out there in APP land.

100%
0%
Max Maxfield
Max Maxfield
2/6/2013 9:27:16 AM
User Rank
Blogger
Re: Time traveling: Descending spirally I was swirling down the blackhole . . .
@intseeker: I want to be like you, Max

You are flattering me (don't stop, keep it up :-)

50%
50%
aj1s
aj1s
2/5/2013 9:32:50 PM
User Rank
Guru
Re: compact vhdl
"I wonder if an optimizing synthesizer will recognize the implicit sensitivity list (it's sensitive to clk_66mhz, reset and clk_divider) and not actually evaluate the statement when there are no events on those signals? "

Devel,

Ooops, I should have said "Even a concurrent assignment statement..."

In VHDL, a concurrent assignment statement is equivalent to a sequential assignment statement wrapped in an implied process:

equivalent: process (reset, clk_divider, clk_66mhz) is

begin

if reset = '1' then

clk_divider <= (others => '0');

elsif rising_edge(clk_66mhz) then

clk_divider <= clk_divider + 1;

end if;

end process equivalent;

 

Just like the equivalent process, the concurrent assignment statement will not execute or be evalutated if there are no events on the signals.

But also just like the equivalent process, the statement will execute again one delta cycle after the clock, due to the event on clk_divider, but clk_divider is not updated because all the conditionals are false. This extra evaluation is what I was referring to by "slowing down simulation performance. 

Andy

50%
50%
intseeker
intseeker
2/5/2013 8:54:50 PM
User Rank
Beginner
Re: Time traveling: Descending spirally I was swirling down the blackhole . . .
No, "you are like me!" :0) Of course, I want to be like you, Max, and write as many good blogs as you, by the minute.

50%
50%
jandecaluwe
jandecaluwe
2/5/2013 4:55:29 PM
User Rank
Blogger
Re: Keep stirring the pot. Software to hardware conversion comes at a price
@Duane "In my mind, a Verilog "register" refers to any form of logic, where "wire" is just an interconnect. So, I'm not using the 7400 series, or inside the CPU definition of register. Just generically to refer to some sort of gate or other active silicon, as used in the Verilog vernacular."

In my mind, a Verilog "reg" is a Verilog thing that I can assign to in two ways (blocking or non-blocking), in a certain context (level-sensitive, edge-triggered, or more general as in a test bench) and that may or may not have a hardware meaning, depending on how it is used.

Note that the HDLs that have survived have mainly been used as Hardware Verification Languages in industry. That is why their semantic power is not limited to "hardware description". Here also one shouldn't be misled by a name.

50%
50%
Max Maxfield
Max Maxfield
2/5/2013 4:17:19 PM
User Rank
Blogger
Re: looking good
@aser: Good points -- I think a lot of us had a knee-jerk reaction when we were first exposed to VHDL along the lines of "why did them make it so convoluted" -- but the truth of the matter -- as you say -- is that they designed it to be extremely felexible and adaptable and extendable...

100%
0%
devel@latke.net
devel@latke.net
2/5/2013 4:15:00 PM
User Rank
Guru
Re: Keep stirring the pot. Software to hardware conversion comes at a price
Duane,

In my mind, a Verilog "register" refers to any form of logic, where "wire" is just an interconnect.

No. See above. Jan and I are trying to disabuse you of this notion.

So, I'm not using the 7400 series, or inside the CPU definition of register. Just generically to refer to some sort of gate or other active silicon, as used in the Verilog vernacular.

the Verilog vernacular is actually a lot worse, since the language includes a lot of primitive and gates that nobody actually uses.

50%
50%
Page 1 / 8   >   >>
More Blogs from Duane Benson
Now it's time to delve deeper into the state machine I'm using to control my I2C interface.
The three states associated with bi-directional "inout" pins can cause confusion for the unwary.
It's time to jump into unexplored territory -- the state machine that will control Duane Benson's I2C interface.
We're now ready for the I2C master to transmit a command set to a remote device.
Duane Benson has his SPI interface working. At some point, he'll want to rewrite the Verilog code, but first he wants to get the I2C interface up and running.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS