• 由于在设计中需要用到除法器,开始的时候使用是如下的形式
     g<=8192 when S>=0 and S<2 else
    8191 when S=2 else
    5460 when S=3 else
    4095 when S=4 else
    3276 when S=5 else
    2730 when S=6 else
    2340 when S=7 else
    2047 when S=8 else
    1820 when S=9 else
    ...
    4 when S>=3277 and S<4096 else
    3 when S>=4096 and S<5461 else
    2 when S>=5461 and S<8192 else
    1;
    来实现g=16383/s这个除法计算,上述那么长的一大串数据用人工来写是很累的,也容易出错。编个matlab程序就可以轻松实现。以前不是说工业革命让我们可以用机器来制造机器,那么现在我们可以用程序来帮助我们写程序,一个道理。这样做是可以实现的,并且没用延迟,就是所用的资源比较多。
      后来看到ISE中有除法器的IP核,被除数最多可以32位,并且是可以定制的。于是就试着使用。根据需要,我们在程序中设定被除数为28位,商只需整数部分,这样一来,从输入数据到得到商会用28个基本时钟的延迟(我们在定制中已经设定了一个基本时钟计算一位)。我们需要将计算出来的结果写入到一个显示ram中,以供给显示模块使用。在将数据写入ram中是用像素时钟、行时钟、场时钟来控制,如果不作任何的处理,直接写入ram中,显示出来的图像将会整体向右偏移28个像素,而最右边的28个像素跑到了图像的左边来了。最后导师告诉我一个方法,重新产生行时钟,新的时钟比原来的行时钟延迟28个像素,这样一来就没问题了。一试,果然可以,这个方法确实不错。