
1.always块中所有的赋值语句声明都是reg类型的,不然编译器会出错;
2.组合逻辑中的赋值语句用“=”,时序逻辑中的赋值语句用“<=” or ">="进行赋值;
3.不同的always块是并行执行的,当触发条件达到,所有的always块一起执行,没有先后顺序,也就意味着同一个信号不能同时在不同的always块中定义不同的状态!
4.当需要写到begin...end语句时候,注意将begin...end对齐书写,形成良好的习惯,防止编译过程中begin...end的对齐处理不合适,导致逻辑错误,很难检查出来;
5.在组合逻辑的书写过程中,所有的分支语句都应该写完整,比如:有了if就要写else,有了case就要有endcase,即if...else,case...endcase都应该是成对出现,不然写出组合逻辑在编译时候回出现我们不想让出现的锁存器,这会导致写出的功能达不到预期的效果;如果编写的是时序逻辑,
如果分支不完整是不会出现锁存器的;
6.如果在一个较复杂的设计中写了分支结构(if...else),且分支结构下面的语句不止一条,一定写完整begin...end,不然编译过程中会持续报错。(写计数器控制数码管灯出现的错误)
7.不仅要有完整的if-else、case-endcase分支结构,而且所有的输出在每一个分支结构中都必须有相应的输出值。
8.解决5、7两个问题的最好办法是在分支结构开始前,对所有的输出信号给与一个初始值,因为reg类型的数据,如果不是有新的值赋给它,那么它会始终保持原来的数据状态。
9.特别注意Routing Structure的问题,考虑清楚在条件控制下要综合成那种类型(priority routing structure or multiplexing routing structure)的电路;