此 系列献给想学习FPGA的友们,同时也是个人学习知识的回忆与总结。
FPGA,不知道它干嘛的,官方的解释是FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。说了那么多,都是写专有名词,也不好理解,就先不去管它吧。
VHDL,它是什么,编程序的,怎么编写,看例子吧,解释下。
这就是VHDL语言编写的程序,每次写的时候基本结构需要有这2部分哦。
开始的是库文件申明,每次写代码的时候都加上去,当然你有牛X的能力也可以自己写库文件哦。 接着entity test is 这是实体名申明,然后申明端口port();,表明你这个代码有那几个端口,每个端口的输入的还是输出,或者是其他。在这里 有个文件叫test 它有一个clk 输入口,一个blck输出口。然后怎么对信号进行作用呢,看看下面是不是有个process()的程序。这里面就是对clk'信号进行作用的。process()里面有clk,它是敏感的东西,这个家伙一直再偷偷看着clk这个信号, if rising_edge(clk) then 当它是上升沿的时候(上升沿就是由低电平到高电平,咱们伟大的数字电路有说这个事情),我们有个变量variable 叫做 cnt ,它就会加1, if cnt>=2 then cnt:=0; bclk<='1'; 加之前还得检查下这个变量是不是到2了,到2了就自动变为0,输出信号blck就变相反的电平,否则就是cnt加1 。
几几几几几几几几几几几几几几几,假设现在有这个一高一低的clk输入信号,process()监测到clk的变化了,按照上面说的程序意思,开始第一个上升沿的时候假设blck是0,cnt是由0----》1,第二个clk上升沿来了,cnt到2后马上变0,bclk输出信号就变1了,程序就一直在干这个事情,它不会累的,除非它坏了。
说了这些,这个程序能干嘛,我也不知道,但它是认识vhdl,FPGA的开始,慢慢来吧。现在就知道VHDL语言有几大模块,开始要那3个库文件,它支持后面程序的运作。接着就是写程序的输入输出口有几个,程序取名字叫什么,然后就写代码对信号进行操作,利用这个输入产生输出的效果。
假如有led那种小灯呢,怎么让它亮,产生漂亮的闪烁,接下忆FPGA课--2来一起回忆下吧。
用户377235 2013-1-17 16:44
wxg1988 2013-1-17 08:51
用户377235 2013-1-15 21:50
用户422236 2012-5-29 15:36
用户377235 2012-4-4 10:17
值得学习
用户1650588 2012-3-31 19:00
用户377235 2012-3-28 16:36
嗯,好文章好学习
用户377235 2012-3-28 15:44
忆FPGA课----3等待,希望可更新快点
用户403664 2012-3-22 15:46
用户423727 2012-3-22 15:19
刚工作时,买了块xilinx的FPGA开发板,然后纠结了,各种不会,学了1个多月学不下去了,看了博主的这篇文章又点燃我的信心了