Thông báo

Collapse
No announcement yet.

vehavior and RTL code...

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

  • vehavior and RTL code...

    chào các bác!
    em cũng đang tìm hiểu về công nghệ vi mạch. hiện em đang tập tành viết code verilog. nhưng em hơi phân vân ở một vấn đề này, mong các bác quan tâm và chỉ bảo giúp:
    - vấn đề delay cho các gate và net trong verilog ta có thể tính toán và khai báo thông qua trễ thời gian và trễ sự kiện (ví dụ : khai báo trễ 10 đơn vị thời gian #10 rega =regb; trễ sự kiện @(posedge) rega = regb. đó là cách viết và tính toán ở mức behavior code, nhưng trong cách viết RTL code thì cách viết này không đúng. em đang tìm tài liều về vấn đề này. các bác có thể giải thích hoặc share cho em tài liệu được không ạ? em cám ơn lắm lắm!
    - vấn đề thứ hai là cách kiểm tra source của mình có hoạt đúng như mong muốn không? ví dụ như ta cho dữ liệu ngõ vào thì sẽ nhận ngõ ra là một giá trị nào đó mà mình biết được. các vector bít ngõ vào <--> các vector bit ngõ ra. và các bác có thể chỉ em tool để simulate wareform của tín hiệu, data của ngõ vào, và data ngõ ra không ah? em còn rất mơ hồ về những vấn đề này.
    em rất thích công nghệ vi mạch nhưng điều kiện học hỏi quá hạn chế, mong các bác thông cảm cho. em cảm ơn các bác nhiều nhiều.

  • #2
    - Về vấn đề trễ thì theo mình bạn phải thiết kế mạch trễ hẳn hoi (bạn có thể search trên google). Nếu một vài bài toán phức tạp không thể tạo được mạch trễ quá nhỏ theo yêu cầu thì khâu này được thực hiện ở giai đoạn Place&Route (P&R). Mình không rành về Verilog nên chỉ biết nêu suy nghĩ của mình như vậy.

    - Về simulation bạn có thể dùng các phần mềm mô phỏng như ModelSim (của Mentor Graphics) hay NanoSim (của Cadence). Ngoài ra, bạn cũng có thể sử dụng các tool của Xilinx, Altera, Active HDL,... (có cả bản xài thử). Bạn tìm trên trang web của các hãng đó để xem. Bạn cũng có thể xài các phần mềm miễn phí (thường do các nhóm nghiên cứu ở các trường Đại học cung cấp).

    Phương pháp mô phỏng thì có hai cách cơ bản. Cách thứ nhất là viết script khai báo thông tin về tín hiệu lối vào và sau đó quan sát tín hiệu lối ra. Cách thứ hai là xây dựng một test-bench gồm một khối phát các tín hiệu để test và một khối để quan sát tín hiệu ra.


    Comment


    • #3
      to eboy!
      bạn cần phân biệt rõ giữa RTL code và behavior
      RTL code viết để mô tả chức năng của design, mô tả cấu tạo của design nên sẽ ko có những câu lệnh về delay (#) và các câu lệnh, cú pháp ko hỗ trợ cho việc synthesis (vd: task, $finish, initial, fork join ...)
      còn behavior sẽ được dùng để viết testbench để bạn kiểm tra lại chức năng để design, trong testbench bạn có thể control các input tại các thời điểm với giá trị mong muốn. sau khi simulation thì bạn sẽ có output tương ứng với RTL code mà bạn viết cho desgin.
      Phần mềm modelsim có hỗ trợ để viết testbench, còn phần mềm Quartus hay Maxplus thì ko hỗ trợ nếu bạn ko cài thêm modelsim, để simulation dc thì bạn phải tạo ra file waveform

      Comment


      • #4
        a small project for asic....

        Em cảm ơn bác kakalat và bác yesm rất nhiều.
        trong thời gian qua trên diễn đàn dientuvietnam, phần box asic em cảm thấy hình như có rất ít các bài viết về chủ đề này. mà box này lại rất hay. không biết các bác có định hướng gì để phát triển box này không? theo em thì nên có một project nhỏ nhỏ được đưa ra để chúng ta cùng thảo luận và thực hành thì rất là hay. trên lý thuyết là thế nhưng khi làm thì mới gặp nhiều khó khăn. em cũng đang tìm hiểu về phần thiết kế hệ thống trên sơ đồ khối. các bác có ý kiến gì thì chỉ bảo thêm. em rất mong box này sẽ thực sự phát triển mạnh vì đây là công nghệ mà ở việt nam ta đang định hướng phát triển cho tương lai. nếu các bác đồng ý thì chúng ta sẽ xây dựng một giải pháp cho từng bước làm một chip thật sự ( ví dụ như asic hay là fpga) như thế chúng ta mới đi sâu vào vấn đề và cách giải quyết vấn đề được.

        Comment


        • #5
          Việc thực hiện một dự án cụ thể đòi hỏi các yếu tố cần thiết như nhân lực, điều kiện phòng thí nghiệm, tài chính chứ không thể bàn chơi trên diễn đàn được. Theo mình trên diễn đàn chỉ xoay quanh các thảo luận về công nghệ, các trao đổi về kinh nghiệm, các thắc mắc liên quan đến kỹ thuật,... chứ thực hiện một dự án thì hơi khó.

          Nếu anh em nào có cùng hoài bão xây dựng những ứng dụng cụ thể thì nên gặp nhau để trao đổi và tìm giải pháp. Rất tiếc năm nay mình không thể tham gia. Hy vọng đến năm 2008 thì có thể mời anh em ghé qua chỗ mình uống cà-phê và hợp tác làm việc.


          Comment


          • #6
            Hi eboy!
            - Những yêu cầu delay(#) chỉ sử dụng trong behavior code để testbench cho design của bạn. Chúng không thể sử dụng trong RTL Code. Tất cả các yêu cầu delay của các tín hiệu tử Pads đến FlipFlop, từ FlipFlop đến Pads hay giữa các logic bên trong FPGA cần sử dụng timing constraints theo yêu cầu của thiết kế. Tất cả các constraints phải meet thi thiết kế mới chạy tốt được.
            - Muốn kiểm tra thiết kế chạy có đúng không thì phải viết module testbench(Verilog hay VHDL) sử dụng các simulate tool để mô phỏng thiết kế của bạn bẳng wave form. Bạn có thể sử dụng Modelsim XE Starter cùng với phần mếm thiết kế ISE của Xilinx có thể download free www.xilinx.com .Vì simulate tool free nên đối với các thiết kế lớn nó chạy rất chậm. Tool này có 4 mode simulate, ở mode behavior thì nó chỉ mô phỏng chức năng của design không có delay bên trong con chip. Ở mode Place and Route Simulate thì nó mô phỏng có chứa delay trong con chip và các delay mà sử dụng trong timing constraint.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X