- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习FPGA100个值得注意的要点
学习FPGA100个值得注意的要点1.FPGA不是编程语言,而是一种可综合的硬件描述语言。2.Verilog 支持两种进程initial和always进程3.阻塞与非阻塞指的相对于进程本身而言的。4.使用进程模块的电路类型:? ?? ?? ? ? ? ? ? ? ? 组合电路-----对组合逻辑中使用的所有输入敏感? ?? ?? ? ? ? ? ? ? ? 例子:? ?? ?? ? ? ? ? ? ? ? always@(a or b or sel)? ?? ?? ? ? ? ? ? ? ? 时序电路-----仅对时钟和控制信号敏感? ?? ?? ? ? ? ? ? ? ? 例子:? ?? ?? ? ? ? ? ? ? ? always @(posedge clk or negedge clr)5.可以用case语句完成多路选择器的功能。? ?? ?? ? ? ? ? ? ? ??6.verilog中有两类子程序:? ? ? ? ? ? ? ? ? ? ? ? 函数和任务? ? ? ? ? ? ? ? ? ? ? ? 函数-----根据输入返回一个值? ? ? ? ? ? ? ? ? ? ? ?? ???-----产生组合逻辑? ? ? ? ? ? ? ? ? ? ? ?? ???-----用在表达式中:assign mult_out=mult(ina,inb);? ? ? ? ? ? ? ? ? ? ? ?? ???-----函数是组合逻辑,不能含有任何延时,事件,或者时序控制声明,至少有一个输入变量? ? ? ? ? ? ? ? ? ? ? ?? ?? ?? ? 总是返回一个变量? ? ? ? ? ? ? ? ? ? ? ?? ???-----可以调用函数,但是不能调用任务。? ???? ? ? ? ? ? ? ? ? ? ? ? 任务-----可以是组合或者寄存器? ? ? ? ? ? ? ? ? ? ? ?? ???-----以声明的形式调用任务:stm_out(nxt,first,sel,filter);?? ? ? ? ? ? ? ? ? ? ? ?? ???-----与其他编程语言中的任务相似? ? ? ? ? ? ? ? ? ? ? ?? ???-----与函数不同任务不需要传递参数,而函数要传递参数? ?? ???? ?? ?? ?? ?? ?? ?? ?? ?? ? -----可以调用任务和函数。? ?? ?? ?? ?? ?? ?? ?? ?? ? ----- 可以含有任何延时,事件,或者时序控制声明??? ?? ?? ?? ?? ?? ?? ?? ?? ? -----返回零个或者多个数值? ? ? ??7.可综合的verilog语法子集是指用硬件可以实现的语法。力求用最简单的语言实现最复杂的硬件电路。8.硬件都有相应的输入输出的接口,或者是输入或者是输出,或者是输入输出。9.reg型是指组合逻辑里面的一个寄存数据的,wire是组合逻辑里面的一条连线。10. define定义了一个参数,在整个工程里面都是有效地。parameter定义的一个参数? ???只在这个文件里面进行适用的。11.各种逻辑操作符,移位操作符,算术操作符大多是课综合的。12.assign??一般是只针对于组合逻辑,而always语句既可以用于组合逻辑? ?又可以用于时序逻辑,always模块的敏感表,如果是电平,则为组合逻辑? ?如果是沿信号posedge或者negedge 则为时序逻辑。13.begin-------end和C语言里面的{}是类似的??。14.for 语句??-----循环? ?因为综合出来的结果可能比较浪费资源? ? 所以就一般用的比较少,但是在一些特定的设计中可以起到? ? 事半功倍的效果。15.total logic element总共消耗的逻辑单元。? ?16. 行为级仿真可以理解为功能仿真(前仿真);布局布线后仿真可以理解为时序仿真(后仿真)17.第一个写的非常好的代码??如下:注意其中clk_div_r和cnt为什么被定义成reg型的,并且对应的含义是什么? ?? ?module clkdiv(? ? ? ? ? ? ? ? ? ? ? ? clk,rst_n,? ? ? ? ? ? ? ? ? ? ? ? clk_div? ? ? ??? ? ? ? ? ? ? ? );input clk;? ? ? ? ? ? ? ? //50MHzinput rst_n;? ? ? ? //低电平复位信号output clk_div;? ? ? ? //分频信号,连接到蜂鸣器//---------------------------------------------------reg[19:0] cnt;? ?
文档评论(0)