在initial或always外的assign赋值语句称为连续赋值语句一般在描述纯组合电路时使用
在Verilog HDL中,可以使用三种方法来生成组合逻辑电路:使用连续赋值语句,使用不带时钟触发的always语句.和使用函数。
FPGA与CPLD相比。最大的一个特点就是它的寄存器相当丰富,因此.更加适合设计时序逻辑电路
用FPGA描述时序逻辑电路只有一种方法,就是用带时钟触发沿的always语句,
同步复位和异步复位的区别就在于:前者的复位信号不能出现在always语句的敏感信号表中。无论是同步复位还是异步复位,always语句的结构都是if(Reset)⋯else⋯,否则,综合工具将不能正确的综合。
推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。
逻辑资源优化
FPGA内部的逻辑资源是相当宝贵的.用Verilog HDL进行
FPGA设计时.良好的描述风格可以有效的节省程序所耗费的逻辑资源。以下是几个有效的节省硬件资源的方法。
1)资源共享。资源共享通常指的是互斥条件下的运算语句共享同一个算术逻辑单元。实现资源共享通常有两种方法。其一是在综合工具的选项中打开资源共享选项.则综合工具在遇到上面的代码时会自动进行资源共享。其二是用代码显式的描述。
2)提取公共子表达式。很多综合工具无法自动发现代码中公共的子表达式,因此,在用VerilogHDL描述时,将它们显式的提取出来可以有效的节省硬件资源。
3)注意语句出现的位置。在描述组合逻辑电路是,我们经常使用for循环语句,如果在for循环语句中存在这样的语句,它们的值在多次的循环过程中并不发生变化.则这样的语句须
移到for循环外面,否则,会占用大量的硬件资源。
always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定 复制代码
的。
对于reg型数据,如果未对它进行赋值,仿真工具会认为它是不定态。
书写规范
用最右边的字符下划线表示低电平有效,高电平有效的信号不得以下划线表示,短暂的引擎信号建议采用高有效。
如: Rst_ ,Trdy_, Irdy_, Idsel