Thông báo

Collapse
No announcement yet.

[PSOC] Beginner

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

  • #31
    Nguyên văn bởi phuongdua Xem bài viết
    hi, mình đã viết code cho bài này, vì mình định làm bằng 2 cách viết ( thêm cách của bạn tony), mà cách của bạn tony chắc đúng rồi, nên mình viết thử cách bình thường trước, nhưng nó lại báo lỗi "type conflict"


    -------------------------
    ý, mình bik tại sao rồi, lẽ ra phải để hàm Counter trước, hì, lỗi sơ đẳng mà cũng sai, ngại quá
    Chúc mừng bạn đã hiểu và giải quyết được vấn đề. Bạn có thể đem phần "main" qua bài khác và dùng bài đầu (header file) để giữ chỗ cho Counter.

    Code:
    // testbench.c
    unsigned char Counter( unsigned int test_num);
    int main()
    {
      unsigned int test_num = 232;
      unsigned char num_1s = Counter(test_num);
      return 0;
    }
    Code:
    // Counter.c
    unsigned char Counter( unsigned int test_num)
    {
      unsigned char count = 0;
      unsigned int temp = test_num;
      unsigned char max = 0;
      while (temp >0)
      {
        if((temp %2)==1)
          count ++;
        else
        {
          if(count > max)
             max = count;
          count = 0;
        }
        temp = temp >> 1;
      }
      return max;
    }
    Chúc một ngày vui vẻ
    Tony
    email : dientu_vip@yahoo.com

    Comment


    • #32
      Cho bạn thêm cái code viết bằng VHDL, ngâm cứu đi
      ---------------------------
      entity string_search is
      generic(STRING_LEN: integer :=32);
      Port ( string_in : in STD_LOGIC_VECTOR (STRING_LEN-1 downto 0);
      clk : in STD_LOGIC;
      rst : in std_logic;
      num_ones : out STD_LOGIC_VECTOR(7 downto 0));
      end string_search;

      architecture Behavioral of string_search is
      type my_ram is array (0 to STRING_LEN-1) of std_logic_vector(7 downto 0);
      signal result: my_ram;
      signal all_ones: std_logic_vector(STRING_LEN-1 downto 0):=(others=>'1');

      begin
      loop1: for I in 0 to STRING_LEN-1 generate
      process(clk,rst)
      begin
      if(rst='1') then
      result(I) <= (others=>'0');
      elsif(rising_edge(clk)) then
      if(string_in(I)='1') then
      for J in I to STRING_LEN-1 loop
      if(string_in(J downto I)=all_ones(J downto I)) then result(I)<=conv_std_logic_vector(J-I+1,8); end if;
      end loop;
      end if;
      end if;
      end process;
      end generate;

      process(clk,rst)
      variable max: std_logic_vector(7 downto 0):=(others=>'0');
      begin
      if(rst='1') then
      max := (others=>'0');
      elsif(rising_edge(clk)) then
      max := (others=>'0');
      loop2: for K in 0 to STRING_LEN-1 loop
      if(result(K)>max) then max:=result(K); end if;
      end loop;
      num_ones<=max;
      end if;
      end process;
      end Behavioral;

      Comment


      • #33
        So sánh giữa mã nguồn C và RTL

        Cám ơn bạn Jeff đã bỏ công để mô tả cùng một hoạt động nhưng ở dạng RTL. Bây giờ các bạn đã thấy cả hai cách mô tả, cách nào các bạn thấy dễ làm và hiểu hơn. Xin các bạn cho ý kiến. Cám ơn các bạn.

        Tony
        Chúc một ngày vui vẻ
        Tony
        email : dientu_vip@yahoo.com

        Comment


        • #34
          Nguyên văn bởi phuongdua Xem bài viết
          _ 1 câu nữa nhé. Sử dụng thư viện stdio thì cần phải có STDOUT device, nhưng ko rõ STDOUT device vd là cái gì ?
          STDOUT là bất cứ device nào hiển thị được và có driver hỗ trợ của altera. Ví dụ như tiêu biểu hay dùng là uart, hoặc có thể port lại thành lcd (chưa thử). Khi đã biết STDOUT là device nào thì NiosIDE sẽ chuyển các câu lệnh printf...thành các hàm tương ứgn để hiển thị lên device đó.
          Nếu trong project SOPC của bạn có nhiều thiết bị hiển thị được hỗ trợ thì bạn có thể thiết lập cái nào là stdout bằng cách chọn properties của project/AssociatedSystemLibrary/SystemLibraryProperties/stdout rồi select device. Tương tự cho stdin (dùng để nhập liệu) và stderr (dùng để xuất thông báo lỗi chuẩn).
          Chuyện nhỏ như con thỏ,bắt thỏ mới là chuyện lớn!!!

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X