刚开始玩CPLD/FPGA开发板的时候使用的一块基于EPM240T100的板子,alter的这块芯片虽说功耗小体积小,但是资源还是很小的,你写点稍微复杂的程序,如果不注意coding style,很容易就溢出了。当时做一个三位数的解码基本就让我苦死了,对coding style的重要性也算是有一个比较深刻的认识了。本文引用地址:http://www.eepw.com.cn/article/268450.htm
后来因为一直在玩xilinx的spartan3 xc3s400,这块芯片资源相当丰富,甚至于我在它里面缓存了一帧640*480*3/8BYTE的数据都没有问题(VGA显示用)。而最近接触EPM7128,它的资源似乎也不丰富,我写着写着有时不注意就无法布线了。由此可见coding style对设计的重要性,尤其是在资源紧张或者速度要求较高的设计中。我个人对前者的体会深一些,高速的设计没有涉及过,只是明白一些用流水线提高速度的方法。
可以步入正题了,先拿一段简单的代码开始吧。我先提一点,这回我用的是quartus II 7.0进行测试,其它的EDA工具综合出来的RTL视图可能会不一样,所以仅作为在quartus II 7.0环境下的一些参考吧。不过思路是一样的,可以借鉴的。
Ex1:
input[1:0] xin;
output dout;
assign dout = (xin == 2'b0);
代码很简单,就是当xin==2’b0时dout=1,否则dout=0。上面这段程序的RTL视图如下:
其实就是一个比