elemcudev 发表于 2010-1-1 01:09:02

cpld能否实现这样的功能?

输入一组数8bit DIN,一个时钟clk
输出3bit数DOUT,8bit数Dt和一个进位DCY
检测输入数据中1的个数和位置,把输入的0舍去,1移到最右边。
------------------------------------------------------------
      D7~D0
输入0b00000000时下一个clk时DOUT为0,Dt为0b00000000,DCY为1;
输入0b00000001时下一个clk时DOUT为0,Dt为0b00000001,DCY为0,再下一个clkDOUT为0,Dt为0b00000000,DCY为1
输入0b00000010时下一个clk时DOUT为1,Dt为0b00000001,DCY为0,再下一个clkDOUT为0,Dt为0b00000000,DCY为1;
输入0b00000100时下一个clk时DOUT为2,Dt为0b00000001,DCY为0,再下一个clkDOUT为0,Dt为0b00000000,DCY为1;
......
输入0b00100100时下一个clk时DOUT为2,Dt为0b00001001,DCY为0,再下一个clkDOUT为5,Dt为0b00000001,DCY为0,再下一个clkDOUT为0,Dt为0b00000000,DCY为1;
......
输入0b11111111时下一个clk时DOUT为0,Dt为0b11111111,DCY为0,再下一个clkDOUT为1,Dt为0b01111111,DCY为0,再下一个clkDOUT为2,Dt为0b00111111,DCY为0,再下一个clkDOUT为3,Dt为0b00011111,DCY为0,
            再下一个clk时DOUT为4,Dt为0b00001111,DCY为0,再下一个clkDOUT为5,Dt为0b00000111,DCY为0,再下一个clkDOUT为6,Dt为0b00000011,DCY为0,再下一个clkDOUT为7,Dt为0b00000001,DCY为0,再下一个clkDOUT为0,Dt为0b00000000,DCY为1;

ngzhang 发表于 2010-1-1 03:27:09

可以的。

again 发表于 2010-1-1 04:00:03

it's very easy!

elemcudev 发表于 2010-1-14 13:59:09

要是用单片机很容易,用CPLD怎么搞,没弄过CPLD,看了些资料,还不知如何下手,请给点思路。谢谢!
页: [1]
查看完整版本: cpld能否实现这样的功能?