-
2006-08-13
在FPGA使用除法器碰到的问题 - [VHDL]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
由于在设计中需要用到除法器,开始的时候使用是如下的形式
http://darnshong.52blog.net/logs/2187041.html
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个像素,这样一来就没问题了。一试,果然可以,这个方法确实不错。随机文章:
用FPGA进行图像的直方图统计 2006-08-13采用直方图方法来进行红外图像灰度拉伸显示 2006-08-132FSK/2PSK信号产生器设计报告(三) 2005-12-162FSK/2PSK信号产生器设计报告(二) 2005-12-162FSK/2PSK信号产生器设计报告(一) 2005-12-16
收藏到:Del.icio.us






评论
module divider_N(CLK_1M,A,B,C,D,RFD);
input CLK_1M;
input [15:0]A;
input [15:0]B;
output [15:0]C;
output [15:0]D;
output RFD;
// 实例化除法器divide
divide U1 (
.clk(CLK_1M),
.dividend(A),
.divisor(B),
.quotient(C),
.remainder(Q),
.rfd(RFD));
endmodule
但是,在用ISE自带的仿真工具进行仿真时,出现如下的error提示:
ERROR:HDLParsers:3482 - Could not resolve instantiated unit DIV_GEN_V1_0 in Verilog module work/divide in any library
ERROR:Simulator:198 - Failed when handling dependencies for module divider_N_tbw
功能仿真无法实现,请指教
我的邮箱是yangyan_0103@163.com