Thông báo

Collapse
No announcement yet.

Tâm sự về FPGA

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

  • huuhuynhkim
    replied
    #include "xgpio.h"
    #include "xparameters.h"
    #include "xbasic_types.h"
    #include "xstatus.h"
    #include "xuartlite.h"
    #include "xuartlite_l.h"
    #include "xil_exception.h"
    void RecvHandler(void *CallBackRef, unsigned int EventData);
    void RecvHandler(void *CallBackRef, unsigned int EventData)
    {
    Xuint8 RxCharacter;

    RxCharacter=XUartLite_RecvByte (0x84000000);
    XUartLite_SendByte (0x84000000,RxCharacter);
    }

    int main(void)
    {
    Xuint32 Status;
    XUartLite Uart;

    Status=XUartLite_Initialize(&Uart,XPAR_RS232_PORT_ DEVICE_ID);
    if(Status != XST_SUCCESS)
    return XST_FAILURE;

    XUartLite_SetRecvHandler(&Uart,RecvHandler,(void*) RecvHandler);
    XUartLite_ResetFifos(&Uart);
    XUartLite_EnableInterrupt(&Uart);
    xil_printf("huukute: \r\n");

    while(1)
    {

    }
    }
    cho mình hỏi chuơng trình mình muốn dùng ngắt uart.viết theo chuơng trình này mình đã khai báo ngắt rồi nhưng khi gửi dữ liệu tới fpga vẫn ko nhận được dữ liệu là sao vậy..có ai pít giúp đỡ mình xíu nhé

    Leave a comment:


  • huuhuynhkim
    replied
    minh làm được rùi..m khai báo chân đúng ..tại các bước làm của mình sai..thank bạn nhiều

    Leave a comment:


  • robocon2011
    replied
    Nguyên văn bởi huuhuynhkim Xem bài viết
    chân của mình lấy từ file do xilink cung cấp lun rui ...trong phan khai báo mình khai báo về led ,micron ram,rs232,ko bit còn thieu gì ko nhỉ.m đang dùng xilink 14.2.có cần phải khai báo blockk_bram ko bạn.
    Bạn gửi file .ucf lên xem nào

    Leave a comment:


  • huuhuynhkim
    replied
    chân của mình lấy từ file do xilink cung cấp lun rui ...trong phan khai báo mình khai báo về led ,micron ram,rs232,ko bit còn thieu gì ko nhỉ.m đang dùng xilink 14.2.có cần phải khai báo blockk_bram ko bạn.

    Leave a comment:


  • robocon2011
    replied
    Nguyên văn bởi huuhuynhkim Xem bài viết
    mọi người cho mình hỏi sao minh tạo file elf rồi nhưng khi nạp vào kit nó ko hiện lên đèn led như chương trình m đã viết #include "xparameters.h"
    #include "xgpio.h"
    #include "xutil.h"
    int main(void)
    {
    đáng lẽ 8 led pải sáng chứ..có ai có thể giúp mình ko?

    while(1)
    { XGpio LEDs_8Bit;
    XGpio_Initialize(&LEDs_8Bit,XPAR_LEDS_8BIT_DEVICE_ ID);
    XGpio_SetDataDirection(&LEDs_8Bit,1,0x11);
    XGpio_DiscreteWrite(&LEDs_8Bit,1,0xff);
    }
    }

    Tôi nghĩ là do file .ucf của bạn gán chưa đúng chân.

    Leave a comment:


  • huuhuynhkim
    replied
    mọi người cho mình hỏi sao minh tạo file elf rồi nhưng khi nạp vào kit nó ko hiện lên đèn led như chương trình m đã viết #include "xparameters.h"
    #include "xgpio.h"
    #include "xutil.h"
    int main(void)
    {
    đáng lẽ 8 led pải sáng chứ..có ai có thể giúp mình ko?

    while(1)
    { XGpio LEDs_8Bit;
    XGpio_Initialize(&LEDs_8Bit,XPAR_LEDS_8BIT_DEVICE_ ID);
    XGpio_SetDataDirection(&LEDs_8Bit,1,0x11);
    XGpio_DiscreteWrite(&LEDs_8Bit,1,0xff);
    }
    }

    Leave a comment:


  • yaen
    replied
    Nguyên văn bởi jefflieu Xem bài viết
    ISE dễ dùng hơn, nhưng tùy người nữa
    em đang là sinh viên năm 3. hiện tại em đang lên ý tưởng và chuẩn bị cho đề tài tốt nghiệp. ý tưởng của em là 3D scanner. Em không biết để thực hiện ý tưởng này thì cần chuẩn bị những kiến thức nào. Và bắt đầu công việc từ đâu. Rất mong anh có thể chỉ điểm cho.

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi KnowMore Xem bài viết
    Mình muốn hỏi thêm là công cụ lập trình cho 2 thằng đó thì thằng nào dùng hay hơn? Những mã chip nào dễ mua ở HN (VN)?
    Những ứng dụng mình có thể sử dụng chắc là không cần tốc độ cao (<50MHz là ok), và mình thích những chip ít chân, dễ hàn lắp bằng tay.
    Thằng này có lẽ dùng để mã hóa/ giải mã truyền thông điều khiển rất phù hợp . Nhưng không rẻ bằng mcu
    ISE dễ dùng hơn, nhưng tùy người nữa

    Leave a comment:


  • KnowMore
    replied
    Mình muốn hỏi thêm là công cụ lập trình cho 2 thằng đó thì thằng nào dùng hay hơn? Những mã chip nào dễ mua ở HN (VN)?
    Những ứng dụng mình có thể sử dụng chắc là không cần tốc độ cao (<50MHz là ok), và mình thích những chip ít chân, dễ hàn lắp bằng tay.
    Thằng này có lẽ dùng để mã hóa/ giải mã truyền thông điều khiển rất phù hợp . Nhưng không rẻ bằng mcu

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi KnowMore Xem bài viết
    Tự dưng tối nay lại ngồi đến giờ này đọc về FPGA, hic .

    Cảm ơn jefflieu! Bài viết rất hay.

    Không biết ở HN, VN có thể mua chip FPGA ở đâu? Những mã nào dễ mua, và những mã nào nên mua?

    Nhu cầu hiện tại của mình không thực sự cần FPGA, nhưng mình thấy một cách giải quyết khác cho những công việc mình đang và sẽ làm (có thể chả bao giờ dùng nhưng vẫn cần biết).

    Mình có thể dùng FPGA thay cho các tổ hợp logic (hoặc để test các mạch logic), đệm vào ra ngoại vi (mcu không phải quan tâm nữa, đơn giản hơn trong cấu trúc lập trình), mã hóa - giải mã... hoặc đơn giản là giấu thiết kế. Không biết mình nên chọn dòng FPGA nào? hãng nào? công cụ lập trình nào? Và với tầm ứng dụng như thế mình có nên học FPGA không?
    Thiết kế FPGA gồm các nhánh chính:
    1) Thiết kế logic:
    a+ Thiết kế logic thường dùng để kết nối các chip khác của hệ thống lại với nhau, ví dụ như khi tắt mở các board mạch, cần 1 chuỗi các tín hiệu bật mở có tuần tự (power-on/off sequence) --> thiết kế này thường ở tốc độ chậm (<10MHz). Yêu cầu chính của các FPGA dùng trong việc này là nhiều chân IO. Ít tốn năng lượng.
    b+ Thiết kế các interface: ví dụ như đọc ADC như bạn nói rồi tải thẳng lên bộ nhớ của máy tính bằng DMA, việc này cần tốc độ cao hơn chút và cần các IO nhanh hơn cao cấp hơn như PCI, PCIe, double data rate.

    2) Thiết kế ứng dụng:
    a+ Thiết kế các bộ lọc xử lý tín hiệu số
    b+ Thiết kế các bộ giải mã (codec), encrypt/decrypt ...
    ...
    Rất nhiều ứng dụng việc này cần kiến thức chuyên ngành về phần đó và FPGA thường là cần ít IO nhưng phải nhanh.

    2 nhà sản xuất lớn FPGA là Xilinx và Altera. Cả hai đều tốt, nếu được bạn nên biết cả 2. Kinh nghiệm bản thân, khi mua hàng, nếu X biết bạn có thể chuyển sang A bất cứ lúc nào thì giá sẽ mềm hơn và ngược lại.

    Cả 2 nhà sản xuất này đều có các dòng phù hợp với yêu cầu của ứng dụng

    A) Dòng thấp nhất: Các CPLD
    - Xilinx: CoolRunner, Alteral : MAXII
    Dòng này ứng dụng trong phần 1a

    B) Dòng trên chút:
    Xilinx: Spartan3, Spartan6, Artix-7
    Altera: Cyclone II, III, IV, V
    Dòng này ứng dụng trong 1a, 2a

    C) Dòng trung:
    Xilinx: Kintex
    Altera: Arria
    Dòng này ứng dụng trong 2a, ... 2b ...

    D) Dòng cao cấp:
    Xilinx: Virtex 5,6,7
    Altera: Stratix
    Dòng này ứng dụng trong các app cao cấp hơn nữa 40Gbit transmission ....

    Ứng dụng như bạn nói thì spartan 6 hoặc cyclone IV, V là thích hợp rồi. Tùy công việc của bạn làm:
    - Nếu bạn thiết kế sản phẩm để bán thì cần tính toán giữa chi phí và giá thành
    - Nếu bạn muốn học hỏi thì mình nghĩ biết thêm thì sẽ có lợi thế.

    Jeff

    Leave a comment:


  • KnowMore
    replied
    Tự dưng tối nay lại ngồi đến giờ này đọc về FPGA, hic .

    Cảm ơn jefflieu! Bài viết rất hay.

    Không biết ở HN, VN có thể mua chip FPGA ở đâu? Những mã nào dễ mua, và những mã nào nên mua?

    Nhu cầu hiện tại của mình không thực sự cần FPGA, nhưng mình thấy một cách giải quyết khác cho những công việc mình đang và sẽ làm (có thể chả bao giờ dùng nhưng vẫn cần biết).

    Mình có thể dùng FPGA thay cho các tổ hợp logic (hoặc để test các mạch logic), đệm vào ra ngoại vi (mcu không phải quan tâm nữa, đơn giản hơn trong cấu trúc lập trình), mã hóa - giải mã... hoặc đơn giản là giấu thiết kế. Không biết mình nên chọn dòng FPGA nào? hãng nào? công cụ lập trình nào? Và với tầm ứng dụng như thế mình có nên học FPGA không?

    Một ví dụ mà mình nghĩ nên dùng FPGA thay logic và mcu là: lấy tín hiệu ADC theo tín hiệu khởi động ngẫu nhiên (random start signal), đếm biến tương ứng giá trị ADC nhận được (với ADC 8-bit sẽ có mảng 256 biến đếm).
    Vấn đề là nếu 2 tín hiệu khởi động quá gần nhau thì có thể xử lý không kịp (dẫn đến lỡ dữ liệu, lỡ xung) (ở mức độ nào đó thì chấp nhận được - trong phạm vi sai số). Mình đã nghĩ đến việc dùng 2 bộ Sample and Hold.

    Leave a comment:


  • hungk41
    replied
    Và mình hỏi them, khi kết thúc phần create ip, e thấy có dòng chữ “WARNING:MDT - Search path C:\Documents and Settings\ksao\My Documents\Micro Exam\VD5\ directly contains pcores directory” ko biết là cảnh báo j đó?

    Leave a comment:


  • hungk41
    replied
    Cám ơn bạn, mình làm được rùi, nhưng vẫn không hiểu sao mà sau khi Import được cái user_ip vào rồi mà nó chẳng thấy hiện ra cái BUS mà lúc ta create ip. Bus này e chọn là OPB Bus

    Leave a comment:


  • et2
    replied
    Nguyên văn bởi hungk41 Xem bài viết
    Câu này kông dám hỏi bác jefflieu: tại sao em import một USER_IP xong xuôi nhưng cuối cùng chẳng thấy thư mục drivers đâu cả để chỉnh sửa code thưa các bác.

    Ngay lúc đầu tạo IP Core, bạn phải tick vào cái option Add software driver (hay đại loại như vậy).

    Chúc thành công.
    Last edited by et2; 30-03-2012, 20:19.

    Leave a comment:


  • hungk41
    replied
    L C D Demo Cho Microblaze

    Leave a comment:

Về tác giả

Collapse

jefflieu Email minh trực tiếp nếu bạn cần download tài liệu gấp Tìm hiểu thêm về jefflieu

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

Collapse

Đang tải...
X