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

          • bqviet
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi bqviet
            Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
            06-12-2025, 17:17
          • nguyendinhvan
            Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
            bởi nguyendinhvan
            Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
            05-12-2025, 19:59
          • afrendly
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi afrendly
            Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
            04-12-2025, 01:27
          • nick22
            Trả lời cho Máy điện châm ?
            bởi nick22
            Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
            01-12-2025, 13:23
          Đang tải...
          X