fpga verilog语法篇 1基本概念 1综合
verilog是描述硬件的语言,
也就是一篇verilog的代码,下载到fpga中,
可以把fpga内部的器件进行连线,和配置,
让fpga内部生成一个想要的芯片.

综合:
verilog中分为可综合代码和不可综合代码:
可综合代码,就是这些代码在经过软件编译之后,下载到程序中,就可以通过代码实现电路,比如:串口的verilog程序会生成串口; pwm的verilog程序会在fpga上生成产生pwm的电路.
不可综合代码,就是这些代码用于测试的,假如我们编写了一个用按键点亮led的程序,下载到fpga板子中.运行时候发现按下按键led没有亮,就需要查问题,这个时候可以写一个测试程序(tb程序).
在测试程序中编写一个按键信号,然后输入给led,然后运行测试程序,查看led和按键的高低电平波形. 这个时候,测试程序可以不用运行在fpga上,只在软件上仿真,就有个问题?没有fpga板子,那么就没有晶振怎么产生时钟呢? verilog语言中有个语句:比如:`timescale 1ns/1ns.用于替代晶振,产生时钟,进行仿真,所以,这一类语句是不可以综合的.
在verilog中,有些语句是可以综合的,有些语句是不可以综合的,有些语句只有在特定情况下才可以综合(这个要看环境和使用的工具).硬件开发很依赖工具.要在编写程序的时候,时刻提醒自己是在编写硬件,不单是代码.


模块:
模块就是组成verilog的基本单元.
模块是可以相互嵌套的,这样就可以组成大型的系统.模块中有用于生成电路的,也有用于测试功能的,在verilog中测试是很重要的环节.只有每个模块稳定了,才能保证系统稳定,否则有可能一个信号的错误扩散到整个系统.(测试需要考虑到信号的长时间多次运行是否稳定,需要看各种输入情况下是否稳定.)