Thông báo

Collapse
No announcement yet.

Số CLB cần dùng!

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

  • Số CLB cần dùng!

    Xin mấy anh cho biết làm thế nào để tính số CLB cần dùng không?Vì em xem tren Quartus || cua Altera thì nó thông báo số CL, còn ISE cua Xilinx thì thông báo số Slice.Mà bài toán của em là cần tính số CLB để so sánh.Ví dụ như Virtex thì 1 CLB có mấy slice?Em không tìm được tài liệu nói về cái này.Mấy anh chỉ em cách tính nhé.Cảm ơn mấy anh nhiều!
    |

  • #2
    Các dòng bình thường của Xinlinx thì 1CLB có 2 slices, mỗi Slice có 2 LUTs, nhưng từ Virtex4 thì mỗi slice lại có 2 half-slices, mỗi half-slice có 2 LUTs.

    Còn bên Altera thì họ gọi cái khái niệm tương đương với CLB là LAB, và mỗi LAB có 10 cái LE hay LC, mỗi cái này là 1 LUT.


    Tuy nhiên nếu quy đổi tương đương theo kiểu dùng Quartus compile rồi quy đổi sang CLB của Xilinx thì tớ e là ko chính xác do cách thức của tool 2 bên là khác nhau, khi synthesize sẽ khác nhau phù hợp với cấu trúc phần cứng khác nhau của 2 hãng

    Comment


    • #3
      Cảm ơn anh! Nhưng em thử Synthesize 1 bài chọn device là Virtex, em thu được kết quả là:
      Number of Slices 8786
      Number of 4 input LUTs 17230
      sao tỉ lệ giửa LUT/ Slice khác 2 hả anh?


      Nguyên văn bởi NEO3F Xem bài viết
      Các dòng bình thường của Xinlinx thì 1CLB có 2 slices, mỗi Slice có 2 LUTs, nhưng từ Virtex4 thì mỗi slice lại có 2 half-slices, mỗi half-slice có 2 LUTs.
      Last edited by gacon_hihi; 10-11-2007, 21:07.
      |

      Comment


      • #4
        Ko phai Slice na`o 2 LUT cung deu duoc du`ng ... nen thuong la` SLICE > LUT/2

        Comment


        • #5
          Cảm ơn anh Jefflieu. Cho em hỏi thêm câu nửa anh nhé, nếu như em viết 1 hàm F_3_2, có 3 input và 2 out, như vậy mình dùng 1 CLB, em sử dụng hàm F_3_2 để xây dựng lên hàm F_12_8 gồm 12 đầu vào và 8 đầu ra, tức là em dùng 4 hàm F_3_2 song song nhau, vậy số CLB có thể nhỏ hơn 4 đúng không anh?
          |

          Comment


          • #6
            ??? no idea what you are saying

            Comment


            • #7
              Ý em là thế này anh: Em muốn viết 1 hàm có tên là F_12_8, hàm này có 12 input va 8 out put. Để làm điều này, em viết 1 hàm con là có tên là f_3_2, hàm này có 3 input va 2 out put.Sau đó em dùng hàm 4 hàm f_3_2 để xây dựng nên hàm F. Em phụ họa sơ như sau, như thế thì liệu em có tốn 4 CLB hay không?Hay nhỏ hơn ạ?

              f_3_2:
              port
              {
              x1:in std_logic;
              x2:in std_logic;
              x3:in in std_logic;
              y1: out std_logic;
              y2: out std_logic

              }
              -------
              y1<=x1 xor x2;
              y2<=x1 xor x2 xor x3;
              -------

              /////////////////////////////////////////

              F_12_8
              port
              {
              X: in std_logic_vector(1 to 12);
              Y: out std_logic_vector(1 to 8)
              }
              -----
              f1: port map f_3_2(X(1),X(2),X(3),Y(1),Y(2));
              f2: port map f_3_2(X(4),X(5),X(6),Y(3),Y(4));
              f3: port map f_3_2((X(7),X(8),X(9),Y(5),Y(6));
              f4: port map f_3_2((X(10),X(11),X(12),Y(7),Y(8));
              -------
              |

              Comment


              • #8
                moi f_3_2 to'n 2 LUT -->Tren ly' thuyet se to'n 8 LUT (Look-up table) ... chi ca`n 1 CLB de co' 8 LUT ... (ko tin thi coi Datasheet) ... (moi CLB co' 4 slice, moi slice co' 2 LUTs) ... Neu e ra~nh thi code thu? roi du`ng FPGA editor (ke`m voi ISE) tu*. place and route de kiem tra xem co' du'ng chi? ca`n du`ng 1 CLB ko? ...
                virtex datasheet, coi phan CLB http://www.xilinx.com/support/docume.../virtex-ii.htm
                Last edited by jefflieu; 12-11-2007, 23:28.

                Comment


                • #9
                  Cảm ơn anh Jefflieu!Em không hiểu 1 điểm này nửa anh.Em dung F_3_2 để xây dựng nên F_20_8, tức là em dùng 12 hàm F_3_2 chia thành 3 lớp, mỗi lớp có 4 hàm F_3_2, đầu ra của mỗi hàm F_3_2 của lớp trên làm đầu vào của hàm F_3_2 ở lớp dưới, như đoạn code dưới. Nếu như tính toán trên thì ta sẽ dùng 12 slices, nhưng kết quả em mô phỏng cho thấy là đã dùng 14 slices, vậy 2 slices dùng để làm gì hả anh?

                  library ieee;
                  use ieee.std_logic_1164.all;
                  entity f_20_8 is port
                  (
                  inblock : in std_logic_vector(1 to 8);
                  vt : in std_logic_vector(1 to 12);
                  outblock : out std_logic_vector(1 to 8)
                  );
                  end f_20_8;
                  architecture behaviour of f_20_8 is

                  component f_3_2
                  port(
                  x1 : in std_logic;
                  x2 : in std_logic;
                  v : in std_logic;
                  o1 : out std_logic;
                  o2 : out std_logic
                  );
                  end component;

                  signal xx1,xx2,x3,x4,x5,x6,x7,x8 : std_logic;
                  signal x21,x22,x23,x24,x25,x26,x27,x28 : std_logic;
                  signal x31,x32,x33,x34,x35,x36,x37,x38 : std_logic;
                  begin

                  ---vector vt tham gia vao ca 3 lop

                  ---lop 1---

                  f1: f_3_2 port map(x1=>inblock(1), x2=>inblock(2), v=>vt(1), o1=>xx1, o2=>xx2);
                  f2: f_3_2 port map(x1=>inblock(3), x2=>inblock(4), v=>vt(2), o1=>x3, o2=>x4);
                  f3: f_3_2 port map(x1=>inblock(5), x2=>inblock(6), v=>vt(3), o1=>x5, o2=>x6);
                  f4: f_3_2 port map(x1=>inblock(7), x2=>inblock(8), v=>vt(4), o1=>x7, o2=>x8);

                  ---lop 2---- xx1,xx2,x3,x4,x5,x6,x7,x8 lam dau vao cho lop thu 2

                  f5: f_3_2 port map(x1=>xx1, x2=>x5, v=>vt(5), o1=>x21, o2=>x22);
                  f6: f_3_2 port map(x1=>xx2, x2=>x6, v=>vt(6), o1=>x23, o2=>x24);
                  f7: f_3_2 port map(x1=>x3, x2=>x7, v=>vt(7), o1=>x25, o2=>x26);
                  f8: f_3_2 port map(x1=>x4, x2=>x8, v=>vt(8), o1=>x27, o2=>x28);

                  ---lop 3--- x21,x22,x23,x24,x25,x26,x27,x28 lam dau vao cho lop thu 3

                  f9 : f_3_2 port map(x1=>x21, x2=>x25, v=>vt(9), o1=>x31, o2=>x32);
                  f10: f_3_2 port map(x1=>x22, x2=>x26, v=>vt(10), o1=>x33, o2=>x34);
                  f11: f_3_2 port map(x1=>x23, x2=>x27, v=>vt(11), o1=>x35, o2=>x36);
                  f12: f_3_2 port map(x1=>x24, x2=>x28, v=>vt(12), o1=>x37, o2=>x38);

                  outblock<= x31 & x32 & x33 & x34 & x35 & x36 & x37 & x38;
                  end;
                  Last edited by gacon_hihi; 14-11-2007, 01:59.
                  |

                  Comment


                  • #10
                    Hehe, hok biet nua ! , ma` co' dung so' LUT la` 24 ko?, co`n so slice thi chiu, ko biet no tinh bang cach na`o ... e Implement (Map roi PAR) xong roi vo FPGA editor coi 2 slice no' la`m gi, nhieu khi no' ko xa`i het 2 LUT tren 1 slice dau ... ma` e ti`m hieu cai nay chi vay? Cai nay software no lam` de y' lam gi...

                    Comment


                    • #11
                      Đúng là dùng hết 24 LUTs anh ạ.Nhưng đi đâu mất 2 slice thi em hổng biết nửa!Em vào FPGA Editor nhưng không thu được kết quả nào...Thui giống như anh nói, không phải LUT cua slices nào cũng được dùng, nên có thể nó xảy ra trường hợp đó, hihi kiểu này là máy nó không tối ưu hóa rùi anh nhỉ?
                      Mà anh ơi, kết quả khi mình Synthesize và Implement Design, nó thông báo chỉ số slices khác nhau, vậy khi sản xuất con chip cho mạch đó thì mình dùng chỉ số nảo vậy anh?
                      Last edited by gacon_hihi; 15-11-2007, 04:43.
                      |

                      Comment


                      • #12
                        ket qua Implement moi du'ng e. Nhieu khi ko xai het 2 LUT trong 1 SLICE vi ko co' Route signal duoc ... Phai dem 1 LUT bo qua slice khac ...

                        Comment


                        • #13
                          hic quá trình Implement thì nó không thông báo về tần số anh ơi, chỉ có quá trình Synthesize mới cho biết tần số có thể của mạch!Mà em lại cần biết tần số bao nhiêu anh ạ
                          |

                          Comment


                          • #14
                            Sau Synthesize cai tan so' do' ko co' du'ng lam ... (Xilinx co' noi coi timing report sau Implementation moid du'ng). Sau khi Implement co' phan "timing report", neu nhu ko co' lo^~i gi thi mach chay duoc voi tan so' < hoa(.c = tan so' da chi ra trong phan timing Constraint

                            Comment


                            • #15
                              Nguyên văn bởi jefflieu Xem bài viết
                              Sau Synthesize cai tan so' do' ko co' du'ng lam ... (Xilinx co' noi coi timing report sau Implementation moid du'ng). Sau khi Implement co' phan "timing report", neu nhu ko co' lo^~i gi thi mach chay duoc voi tan so' < hoa(.c = tan so' da chi ra trong phan timing Constraint
                              Hic anh ơi, sao em implement xong em không nhìn thấy timming report ở đâu cả anh ạ. Anh có thể nói cho em với được không ạ?làm phiền anh nhiều quá. hic hic
                              |

                              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