概述
■FPGA(Filed Programmable Gate Array)和CPLD(Complex Progammable Logic Device)的本质差异是电路结构不同,FPGA是基于查找表的CLB阵列,CPLD是基于乘积项的与或逻辑阵列。
■FPGA定义:一种可通过编程来修改逻辑功能的数字集成电路。
■Verilog三大数据类型:寄存器(reg型数据默认初始值为不定值X,只能用于always或initial语句块中)、线网(主要包括wire、tri两种类型,不能储值,由驱动元件决定,若无驱动则为高阻态值、参数。
■verilog程序一般包括以下四个主要部分:端口定义、IO说明、内部信号声明、逻辑功能定义(其中assign语句用于描述组合逻辑,always语句可用于描述组合逻辑&时序逻辑,实例元件例化)。
■Always块中是顺序执行,各always块之间是并行执行。
■在模块调用时,上一层传递的参数,会自动覆盖被调用模块中的参数定义(parameter语句)的原始值。
■结构语句主要是initial语句(用于测试文件中仿真测试信号的产生或者存储器变量的初始化,模块中只执行一次)和always语句(重复执行,常结合时间控制,时间控制可以是边沿触发或电平触发,其中电平触发常用于描述组合逻辑,用到or关键词或者敏感列表,边沿触发常用于描述时序逻辑)。
■数字电路主要分为组合逻辑(输出只与输入有关,与电路原来状态无关)与时序逻辑(具有记忆功能,输出取决于输入和电路原来状态)。
■信号赋值方式分为阻塞赋值(=)和非阻塞赋(符号为<=,用于寄存器变量赋值,只能用于initial块或always块中)值;同一个always中不可以同时出现阻塞赋值和非阻塞赋值,不可以在多个always块中对同一变量赋值。
■条件语句主要是if_else语句和case多分支语句(casez比较时不考虑高阻值,casex比较时不考虑不定值和高阻值),必须用在initial或always块语句中;条件语句书写时else语句或default分支的缺失都会造成电路中锁存器的产生。
最后
以上就是美好星星为你收集整理的Verilog学习笔记的全部内容,希望文章能够帮你解决Verilog学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复