Thông báo

Collapse
No announcement yet.

giúp đỡ về timer

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

  • #16
    thì cái đó như là mình gọi các component mà.liên kết các module với nhau thôi.đầu tiên em tưởng ý anh khác.

    Comment


    • #17
      Nguyên văn bởi hoanglonghv Xem bài viết
      Nhưng anh Jefflieu ơi cái phím đó là theo kiểu chuyển vòng trạng thái khác với mục đích này.pause,start + full-screen khác hẳn với pause+start+reset.
      A gợi ý thôi. Ý nói có thể thực hiện được nhiều lệnh với 1 phím.
      Tại sao không dùng vòng trạng thái. Như vậy timer của bạn có thêm block "User interface" ...
      User interface gồm:
      - Input: button
      - Ouput: start/clear
      Máy trạng thái sẽ điều khiển start/clear

      Comment


      • #18
        Nguyên văn bởi jefflieu Xem bài viết
        A gợi ý thôi. Ý nói có thể thực hiện được nhiều lệnh với 1 phím.
        Tại sao không dùng vòng trạng thái. Như vậy timer của bạn có thêm block "User interface" ...
        User interface gồm:
        - Input: button
        - Ouput: start/clear
        Máy trạng thái sẽ điều khiển start/clear
        Tại thấy thread FPGA này nó nguội quá nên em vào khuấy cho nó nóng tí chứ bài này đâu phải của em đâu anh.hihi.là của hai_mta mà.

        Comment


        • #19
          Về variable và signal:

          Một tín hiệu được khai báo signal thì có thể được synthesize thành register hoặc wire tùy cách dùng tín hiệu đó.
          Ví dụ:

          signal Start: std_logic;

          start là 1 wire:
          start <= (not clear) and run;

          start là 1 register
          process(clk)
          begin
          if(rising_edge(clk)) then
          start <= (not clear) and run;
          end if
          end process;
          Về variable
          some_input và some_output là input và output kiểu std_logic;
          process(clk,rst)
          variable var1 : std_logic:='0';
          begin
          if(rst='1') then
          var1:='0';
          some_output <= '0';
          elsif(rising_edge(clk)) then
          var1:= not var1;
          some_output <= var1 and some_input;
          end if
          end process
          Bây giờ già sử var1 đang bằng 0, some_input = 1 không đổi. Thì sau rising clock tiếp theo var1 = 1. some_output sẽ bằng gì 0 hay 1?

          xong rồi bạn so sánh với code này:
          process(clk,rst)
          variable var1 : std_logic:='0';
          begin
          if(rst='1') then
          var1:='0';
          some_output <= '0';
          elsif(rising_edge(clk)) then
          var1:= not some_input_1;
          some_output <= var1 and some_input;
          end if
          end process
          Tương tự, giả sử some_input_1 đang = 1, var1 = 0, some_input = 1. some_output = 0. nếu trong 1 chu kì nào đó, some_input_1 chuyển từ 1 sang 0, some_input vẫn bằng 1. Thì some_output trong cycle tới = 0 hay bằng 1?
          Bạn thử đem 2 phần code vào ISE, synthesis và coi "RTL view" ...

          Comment


          • #20
            anh Jettlieu ơi,vòng trạng thái sử dụng thế nào ạ?em mới bắt đầu làm quen nên còn gà lắm!!!

            Comment


            • #21
              Nguyên văn bởi hai_mta Xem bài viết
              anh Jettlieu ơi,vòng trạng thái sử dụng thế nào ạ?em mới bắt đầu làm quen nên còn gà lắm!!!
              Hi hai_mta,
              Theo anh em chưa học VHDL/Verilog được. Em cần học Digital Logic Design trước.
              Em coi cái link này, a thấy khá tạm.
              http://www.cse.nd.edu/courses/cse202.../calendar.html

              Comment


              • #22
                Nguyên văn bởi jefflieu Xem bài viết
                Về variable và signal:

                Một tín hiệu được khai báo signal thì có thể được synthesize thành register hoặc wire tùy cách dùng tín hiệu đó.
                Ví dụ:

                signal Start: std_logic;



                Về variable


                Bây giờ già sử var1 đang bằng 0, some_input = 1 không đổi. Thì sau rising clock tiếp theo var1 = 1. some_output sẽ bằng gì 0 hay 1?

                xong rồi bạn so sánh với code này:


                Tương tự, giả sử some_input_1 đang = 1, var1 = 0, some_input = 1. some_output = 0. nếu trong 1 chu kì nào đó, some_input_1 chuyển từ 1 sang 0, some_input vẫn bằng 1. Thì some_output trong cycle tới = 0 hay bằng 1?
                Bạn thử đem 2 phần code vào ISE, synthesis và coi "RTL view" ...
                Thank jefflieu nhiều.trước đến giờ em đọc sách chỉ biết vậy mà ko test.hihi.

                Comment


                • #23
                  Re

                  Nguyên văn bởi hai_mta Xem bài viết
                  bạn ơi,nếu chỉ có 2 đầu vào một là clk,đầu vào còn lại là chung giữa start/stop/restet thì làm thế nào?
                  coi như đầu vào còn lại là xung clk của 1 thanh ghi 2bit, 00 => đếm, 01=> stop, 10=> reset(đồng thời reset thanh ghi luôn).
                  Cheers!!!
                  dạo này mình đang bận ôn thi nên chưa code dc, khi nào thi xong mình sẽ code lên để anh em phán...

                  Comment


                  • #24
                    nhưng mà ở đây lại chú ý rằng cần có 00 <-> 01;01<->10;00->10;

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X