master0722 发表于 2009-7-3 14:22:46

请教大侠们,如何在CPLD里实现除法运算?

请教一下各位大侠,我现在碰到了一个问题,不知道大家能不能帮我解决一下??
就是如何在CPLD芯片里,实现除法运算。我用的是verilog语言。
举个例子吧,我现在有个四位的十进制数:abcd。a是千位数,b是百位数,c是十位数,d是个位数。然后我另外有四个寄存器x1,x2,x3,x4。我想得到的结果是x1=a,x2=b,x3=c,x4=d。这样的算法,以前在C语言好像很容易实现,即x1=abcd/1000,x2=abcd/100%10,x3=abcd/10%10,x4=abcd%10。但是在verilog里,这样一算,CPLD占用量巨大。肯定不合适。
不知道哪位大哥能帮帮我,谢谢!!
在线等待!!

zgq800712 发表于 2009-7-4 12:39:45

1,除以2的n次;
2,移位相减;

master0722 发表于 2009-7-6 11:04:21

除以2我也知道的,问题是现在我要除以10,除以100的样子呀!!

oldtom 发表于 2009-7-6 12:17:19

你是要转bcd码吧?用判断来实现!

dickhou 发表于 2009-7-6 12:30:40

晕死,你这哪是要做除法啊?进来的数abcd已经是十进制了啊,不是二进制的!

module xxx (
input abcd,
output x1,
output x2,
output x3,
output x4
);

assign x1 = abcd;
assign x2 = abcd;
assign x3 = abcd;
assign x4 = abcd;

endmodule

liuhengming 发表于 2009-7-6 20:53:07

LS正解 MARK

linxiaolong 发表于 2009-9-26 17:47:30

4楼,输出x1,x2,x3,x4怎么是abcd的各个位的值啊?
页: [1]
查看完整版本: 请教大侠们,如何在CPLD里实现除法运算?