Thông báo

Collapse
No announcement yet.

delay!

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

  • delay!

    mình đang học lập trình trên kit DE1 của Altera ,chỉ mới phần căn bản thôi!
    mình k bít viết hàm delay sao hết nên mong các bác chỉ giúp! thanks
    cho mình 1 ví dụ đi chẳng hạn như chương trình delay 1s.
    SỰ HỌC LÀ MÃI MÃI......!!!!

  • #2
    <ko hiểu>

    Comment


    • #3
      Hi tallht,
      Bạn lập trình bằng ngôn ngữ gì? VHDL, Verilog HDL hay C/C++(Nios II)? Nếu bạn lập trình bằng VHDL hay Verilog, bạn chỉ cần tạo bộ đếm mà thôi. Ví dụ: bạn muốn tạo bộ delay 1 giây thì nó tương ứng cho tạo sóng vuông có chu kỳ 1 giây, nếu tần số đầu vào bộ đếm của bạn là 50MHz thì bạn chỉ cần đếm từ 0 đến 49,999,999 (50 triệu xung 50MHz) sau đó lặp lại từ 0. Trong lúc bạn đếm từ 0 đến 49,999,999 bạn có thề qui định chu kỳ nhiệm vụ là bao nhiêu, vidu 50% từ 0 đến 24,999,999 ngõ ra là 0; 25,000,000 đến 49,999,999 ngõ ra là 1. Còn nếu bạn lập trình trên NIOS II thì bạn có thể dùng bộ timer cho chính xác, tài liệu của bộ timer là miễn phí, bạn có thể download tại trang chủ altera.com

      Comment


      • #4
        Ừ bạn danbeo85 đề xuất cách giải quyết đó cũng hay đó.
        Nhưng nếu bạn sử dụng VHDL thì bạn có thể dùng trễ truyền tải.
        Ví dụ như: a <= b after 20 ns. Tín hiệu b sẽ được truyền cho a sau một khoảng được xác định là 20 ns.
        Và cũng còn một cách khác. Trong cấu trúc tuần tự, bạn có thể dụng lệnh wait for thời_gian
        Đó những cách đễ thực hiện trễ.

        Comment


        • #5
          uhm tui dùng verilog để viết ! cảm ơn mấy bác nhiều nhá! ah còn chuyện này nữa cái vụ delay trong verilog dùng cấu trúc #(1 số) ,ví dụ như :#100 là dùng để làm gì>? ngta nói nó bị bỏ wa trong lúc tổng hợp mạch nên trên thực tế nó k là delay thật! mog mấy bác giải thích cho!
          SỰ HỌC LÀ MÃI MÃI......!!!!

          Comment


          • #6
            Tổng hợp (synthesis) có nghĩa là cấu hình lên phần cứng (là các logic cell). Ký hiệu # chỉ để tạo độ trễ trên phần mềm thôi. Muốn delay trên phần cứng thì phải dựa vào counter hay timer để tạo. Vậy thôi.

            Comment


            • #7
              Bạn shellingford nói đúng. # (Verilog HDL) hay "wait for, after" (VHDL) chỉ dùng để tạo độ trễ trong testbench thôi. Muồn kiểm soát được hệ thống số thì cần phải có một clock chuẩn .

              Comment


              • #8
                delay 1s sử dụng verilog

                e viết delay 1s theo dướng dẫn nhưng vẩn bị lỗi.ai chỉ e với
                reg count;
                reg clk;
                count = 0;
                clk=0
                always@(posedge CLOCK_50)
                begin
                count++;
                if (count=4999999)
                clk=1;
                else if (count=50000000)
                begin
                clk=0;
                count =0;
                end
                end
                no cứ báo lỗi
                Error (10170): Verilog HDL syntax error at counter16.v(11) near text "="; expecting ".", or "("
                Error (10112): Ignored design unit "counter16" at counter16.v(1) due to previous errors
                Info: Found 0 design units, including 0 entities, in source file counter16.v
                Info: Found 1 design units, including 1 entities, in source file t_ff.v
                Info: Found entity 1: T_FF
                Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 0 warnings
                Error: Peak virtual memory: 216 megabytes
                Error: Processing ended: Sun Nov 28 14:50:46 2010
                Error: Elapsed time: 00:00:01
                Error: Total CPU time (on all processors): 00:00:01
                Error: Quartus II Full Compilation was unsuccessful. 4 errors, 0 warnings

                Comment


                • #9
                  Nhìn đoạn code. Không hiểu ý muốn của bạn là gì. Viết code sai rất nhiều. Quartus II báo sai như vậy là ít đó. Hãy cho biết yêu cầu cụ thể hơn. Ví dụ như: tạo xung vuông với chu kì 1s?????.

                  Comment


                  • #10
                    Lỗi sai là bạn viết sai cấu trúc. ví dụ chỗ lệnh If phải là If (count==50000000)

                    Comment


                    • #11
                      Nguyên văn bởi hieu16031989 Xem bài viết
                      e viết delay 1s theo dướng dẫn nhưng vẩn bị lỗi.ai chỉ e với
                      reg count;
                      reg clk;
                      count = 0;
                      clk=0
                      always@(posedge CLOCK_50)
                      begin
                      count++;
                      if (count=4999999)
                      clk=1;
                      else if (count=50000000)
                      begin
                      clk=0;
                      count =0;
                      end
                      end
                      no cứ báo lỗi
                      Error (10170): Verilog HDL syntax error at counter16.v(11) near text "="; expecting ".", or "("
                      Error (10112): Ignored design unit "counter16" at counter16.v(1) due to previous errors
                      Info: Found 0 design units, including 0 entities, in source file counter16.v
                      Info: Found 1 design units, including 1 entities, in source file t_ff.v
                      Info: Found entity 1: T_FF
                      Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 0 warnings
                      Error: Peak virtual memory: 216 megabytes
                      Error: Processing ended: Sun Nov 28 14:50:46 2010
                      Error: Elapsed time: 00:00:01
                      Error: Total CPU time (on all processors): 00:00:01
                      Error: Quartus II Full Compilation was unsuccessful. 4 errors, 0 warnings
                      Bạn học viết Verilog kiểu này ở đâu vậy?

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X