Thông báo

Collapse
No announcement yet.

Nhờ các cao thủ VHDL giúp!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nhờ các cao thủ VHDL giúp!

    Em có đoàn code VHDL sau, khi biên dịch file keysched thi no báo lỗi lạ quá, mong các anh chỉ giúp




    file keysched.vhd

    library ieee;
    use ieee.std_logic_1164.all;
    entity keysched is port
    (
    key : in std_logic_vector(1 to 64);
    k1x,k2x,k3x,k4x,k5x,k6x,k7x,k8x,k9x,k10x,k11x,k12x ,k13x,k14x,k15x,k16x : out std_logic_vector(1 to 48)
    );
    end keysched;
    architecture behaviour of keysched is
    signal
    c0x,c1x,c2x,c3x,c4x,c5x,c6x,c7x,c8x,c9x,c10x,c11x, c12x,c13x,c14x,c15x,c16x :
    std_logic_vector(1 to 28);
    signal
    d0x,d1x,d2x,d3x,d4x,d5x,d6x,d7x,d8x,d9x,d10x,d11x, d12x,d13x,d14x,d15x,d16x :
    std_logic_vector(1 to 28);

    component pc1
    port (
    key : in std_logic_vector(1 to 64);
    c0x,d0x : out std_logic_vector(1 to 28)
    );
    end component;

    component pc2
    port (
    c,d : in std_logic_vector(1 TO 28);
    k : out std_logic_vector(1 TO 48)
    );
    end component;

    begin
    pc_1: pc1 port map ( key=>key, c0x=>c0x, d0x=>d0x );
    c1x<=To_StdLogicVector(to_bitvector(c0x) rol 1);
    d1x<=To_StdLogicVector(to_bitvector(d0x) rol 1);
    c2x<=To_StdLogicVector(to_bitvector(c1x) rol 1);
    d2x<=To_StdLogicVector(to_bitvector(d1x) rol 1);
    c3x<=To_StdLogicVector(to_bitvector(c2x) rol 2);
    d3x<=To_StdLogicVector(to_bitvector(d2x) rol 2);
    c4x<=To_StdLogicVector(to_bitvector(c3x) rol 2);
    d4x<=To_StdLogicVector(to_bitvector(d3x) rol 2);
    c5x<=To_StdLogicVector(to_bitvector(c4x) rol 2);
    d5x<=To_StdLogicVector(to_bitvector(d4x) rol 2);
    c6x<=To_StdLogicVector(to_bitvector(c5x) rol 2);
    d6x<=To_StdLogicVector(to_bitvector(d5x) rol 2);
    c7x<=To_StdLogicVector(to_bitvector(c6x) rol 2);
    d7x<=To_StdLogicVector(to_bitvector(d6x) rol 2);
    c8x<=To_StdLogicVector(to_bitvector(c7x) rol 2);
    d8x<=To_StdLogicVector(to_bitvector(d7x) rol 2);
    c9x<=To_StdLogicVector(to_bitvector(c8x) rol 1);
    d9x<=To_StdLogicVector(to_bitvector(d8x) rol 1);
    c10x<=To_StdLogicVector(to_bitvector(c9x) rol 2);
    d10x<=To_StdLogicVector(to_bitvector(d9x) rol 2);
    c11x<=To_StdLogicVector(to_bitvector(c10x) rol 2);
    d11x<=To_StdLogicVector(to_bitvector(d10x) rol 2);
    c12x<=To_StdLogicVector(to_bitvector(c11x) rol 2);
    d12x<=To_StdLogicVector(to_bitvector(d11x) rol 2);
    c13x<=To_StdLogicVector(to_bitvector(c12x) rol 2);
    d13x<=To_StdLogicVector(to_bitvector(d12x) rol 2);
    c14x<=To_StdLogicVector(to_bitvector(c13x) rol 2);
    d14x<=To_StdLogicVector(to_bitvector(d13x) rol 2);
    c15x<=To_StdLogicVector(to_bitvector(c14x) rol 2);
    d15x<=To_StdLogicVector(to_bitvector(d14x) rol 2);
    c16x<=To_StdLogicVector(to_bitvector(c15x) rol 1);
    d16x<=To_StdLogicVector(to_bitvector(d15x) rol 1);
    pc2x1: pc2 port map ( c=>c1x, d=>d1x, k=>k1x );
    pc2x2: pc2 port map ( c=>c2x, d=>d2x, k=>k2x );
    pc2x3: pc2 port map ( c=>c3x, d=>d3x, k=>k3x );
    pc2x4: pc2 port map ( c=>c4x, d=>d4x, k=>k4x );
    pc2x5: pc2 port map ( c=>c5x, d=>d5x, k=>k5x );
    pc2x6: pc2 port map ( c=>c6x, d=>d6x, k=>k6x );
    pc2x7: pc2 port map ( c=>c7x, d=>d7x, k=>k7x );
    pc2x8: pc2 port map ( c=>c8x, d=>d8x, k=>k8x );
    pc2x9: pc2 port map ( c=>c9x, d=>d9x, k=>k9x );
    pc2x10: pc2 port map ( c=>c10x, d=>d10x, k=>k10x );
    pc2x11: pc2 port map ( c=>c11x, d=>d11x, k=>k11x );
    pc2x12: pc2 port map ( c=>c12x, d=>d12x, k=>k12x );
    pc2x13: pc2 port map ( c=>c13x, d=>d13x, k=>k13x );
    pc2x14: pc2 port map ( c=>c14x, d=>d14x, k=>k14x );
    pc2x15: pc2 port map ( c=>c15x, d=>d15x, k=>k15x );
    pc2x16: pc2 port map ( c=>c16x, d=>d16x, k=>k16x );

    end behaviour;

    file pc1.vhd

    library ieee;
    use ieee.std_logic_1164.all;
    entity pc1 is port
    (
    key : in std_logic_vector(1 TO 64);
    c0x,d0x : out std_logic_vector(1 TO 28)
    );
    end pc1;
    architecture behavior of pc1 is
    signal XX : std_logic_vector(1 to 56);
    begin
    XX(1)<=key(57); XX(2)<=key(49); XX(3)<=key(41);
    XX(4)<=key(33); XX(5)<=key(25); XX(6)<=key(17);
    XX(7)<=key(9);
    XX(8)<=key(1); XX(9)<=key(58); XX(10)<=key(50);
    XX(11)<=key(42); XX(12)<=key(34); XX(13)<=key(26); XX(14)<=key(18);
    XX(15)<=key(10); XX(16)<=key(2); XX(17)<=key(59);
    XX(18)<=key(51); XX(19)<=key(43); XX(20)<=key(35); XX(21)<=key(27);
    XX(22)<=key(19); XX(23)<=key(11); XX(24)<=key(3);
    XX(25)<=key(60); XX(26)<=key(52); XX(27)<=key(44); XX(28)<=key(36);
    XX(29)<=key(63); XX(30)<=key(55); XX(31)<=key(47); XX(32)<=key(39);
    XX(33)<=key(31); XX(34)<=key(23); XX(35)<=key(15);
    XX(36)<=key(7); XX(37)<=key(62); XX(38)<=key(54);
    XX(39)<=key(46); XX(40)<=key(38); XX(41)<=key(30); XX(42)<=key(22);
    XX(43)<=key(14); XX(44)<=key(6); XX(45)<=key(61);
    XX(46)<=key(53); XX(47)<=key(45); XX(48)<=key(37); XX(49)<=key(29);
    XX(50)<=key(21); XX(51)<=key(13); XX(52)<=key(5);
    XX(53)<=key(28); XX(54)<=key(20); XX(55)<=key(12); XX(56)<=key(4);
    c0x<=XX(1 to 28); d0x<=XX(29 to 56);
    end behavior;

    file pc2.vhd


    library ieee;
    use ieee.std_logic_1164.all;
    entity pc2 is port
    (
    c,d : in std_logic_vector(1 TO 28);
    k : out std_logic_vector(1 TO 48)
    );
    end pc2;
    architecture behavior of pc2 is
    signal YY : std_logic_vector(1 to 56);
    begin
    YY(1 to 28)<=c; YY(29 to 56)<=d;
    k(1)<=YY(14); k(2)<=YY(17); k(3)<=YY(11); k(4)<=YY(24); k(5)<=YY(1);
    k(6)<=YY(5);
    k(7)<=YY(3); k(8)<=YY(28); k(9)<=YY(15); k(10)<=YY(6); k(11)<=YY(21);
    k(12)<=YY(10);
    k(13)<=YY(23); k(14)<=YY(19); k(15)<=YY(12); k(16)<=YY(4);
    k(17)<=YY(26); k(18)<=YY(8);
    k(19)<=YY(16); k(20)<=YY(7); k(21)<=YY(27); k(22)<=YY(20);
    k(23)<=YY(13); k(24)<=YY(2);
    k(25)<=YY(41); k(26)<=YY(52); k(27)<=YY(31); k(28)<=YY(37);
    k(29)<=YY(47); k(30)<=YY(55);
    k(31)<=YY(30); k(32)<=YY(40); k(33)<=YY(51); k(34)<=YY(45);
    k(35)<=YY(33); k(36)<=YY(48);
    k(37)<=YY(44); k(38)<=YY(49); k(39)<=YY(39); k(40)<=YY(56);
    k(41)<=YY(34); k(42)<=YY(53);
    k(43)<=YY(46); k(44)<=YY(42); k(45)<=YY(50); k(46)<=YY(36);
    k(47)<=YY(29); k(48)<=YY(32);
    end behavior;
    |

  • #2
    Lỗi gì bạn cứ post lên mình xem cho. Còn code bạn viết trong tag code cho dễ nhìn chứ nhìn đống code đó ai mà hình dung nổi nhỉ ?
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment


    • #3
      Cảm ơn anh, em đã tìm ra được lỗi rùi!
      Luôn tiện cho em hỏi 1 lỗi khác: khi em viết chương trình mà có lẽ nó đoạn code nó dài quá hay nói cách khác là no xử lý nhiều lệnh, thì nó báo lỗi thế này anh:

      Error: No fif found, grenerating Report File
      Error:Project requires too many(3462/512) logic cells
      Error: Project requires too many(2266/512) shareable expanders

      Trường hợp này thì em bó tay rùi.Anh co thể giúp em được không?
      Last edited by gacon_hihi; 21-10-2007, 17:04.
      |

      Comment


      • #4
        Nguyên văn bởi gacon_hihi Xem bài viết
        Cảm ơn anh, em đã tìm ra được lỗi rùi!
        Luôn tiện cho em hỏi 1 lỗi khác: khi em viết chương trình mà có lẽ nó đoạn code nó dài quá hay nói cách khác là no xử lý nhiều lệnh, thì nó báo lỗi thế này anh:

        Error: No fif found, grenerating Report File
        Error:Project requires too many(3462/512) logic cells
        Error: Project requires too many(2266/512) shareable expanders

        Trường hợp này thì em bó tay rùi.Anh co thể giúp em được không?
        Bạn đã dùng quá nhiều cell, expander so với tài nguyên có sẵn, bạn xem lại phần lập trình nhé, lối như vậy nghĩa là bạn đang sử dụng nhiều hơn tài nguyên cho phép đó

        Comment


        • #5
          Nguyên văn bởi gacon_hihi Xem bài viết
          Cảm ơn anh, em đã tìm ra được lỗi rùi!
          Luôn tiện cho em hỏi 1 lỗi khác: khi em viết chương trình mà có lẽ nó đoạn code nó dài quá hay nói cách khác là no xử lý nhiều lệnh, thì nó báo lỗi thế này anh:

          Error: No fif found, grenerating Report File
          Error:Project requires too many(3462/512) logic cells
          Error: Project requires too many(2266/512) shareable expanders

          Trường hợp này thì em bó tay rùi.Anh co thể giúp em được không?
          Bạn đã dùng quá nhiều cell, expander so với tài nguyên có sẵn, bạn xem lại phần lập trình nhé, lối như vậy nghĩa là bạn đang sử dụng nhiều hơn tài nguyên cho phép đó

          Comment

          Về tác giả

          Collapse

          gacon_hihi Tìm hiểu thêm về gacon_hihi

          Bài viết mới nhất

          Collapse

          Đang tải...
          X