3) Vì sao giá trị bạn ghi vào LED lại là :0xC7200001?[/QUOTE]
trong phần khai báo IP user port, Em có khai báo sử dụng thanh ghi 32bit là slv_reg0(0xc7200000->0xc720ffff). Nên em nghĩ mình xuất giá trị ra thanh ghi này. Phần user_port.vhd: led_port<=slv_reg0; Vì giá trị của thanh ghi này sẽ được xuất ra port led.
Thông báo
Collapse
No announcement yet.
Tâm sự về FPGA
Collapse
X
-
Nice and slowly ! Mình thích topic này của Jefflieu, nó cho tôi thấy nhiều thứ cần thiết mà trên trường các thầy cô có lẽ quên không dậy,mình đang nhắm tới một cái đề tài bảo vệ hơi "siêu thực" một chút (với tôi thì thế ^^) là thực hiện mô tả ở một mức độ cao một bộ vi điều khiển 16 bit,hướng đến là trong họ avr. Thực sự xuất phát điểm của mình hiện tại là hơi thấp về mảng thiết kế số, nếu Jefflieu rảnh cho mình một vài cái định hướng và gợi ý, thực sự mình đang "bơi" theo nghĩa đen... Thanks Jefflieu trước !!!
Leave a comment:
-
Một ứng dụng đơn giản như trên là đủ làm quen với phần mềm rồi.
Khi làm project, bạn cần phân biệt "mục tiêu":
- Làm quen với Tool (Verilog,VHDL, Xilinx/Altera FPGA)
Hay
- Làm quen với các kiến thức chuyên ngành như xử lý ảnh, tín hiệu số ....
Bạn cần phải nhắm diệt từng cái một.
Leave a comment:
-
Ok, trong thực tế khi đi làm việc, trước khi cho ra lò (release) một phiên bản mới, mọi người phải qua phần duyệt code (code review), các thành viên trong nhóm sẽ duyệt code cho nhau để code tốt hơn.
Các bạn khi thực tập nhóm cũng nên làm như vậy.
Đoạn code này đơn giản không cần kiến thức chuyên ngành, nên mình có thể giúp bạn review được:Nguyên văn bởi ngocdt2k3 Xem bài viết#include"stdio.h"
#include"conio.h"
#include"led_port.h"
#include"xutil.h"
#define LED_PORT_BASE_ADDR 0xC7200000(Địa chỉ trong file xparameter.h)
#define LED_PORT_WRITE(value)\
LED_PORT_mWriteSlaveReg0(LED_PORT_BASE_ADDR,(Value ))
void delay(unsigned int n)
{
unsigned int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
}
}
}
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{}
}
void main(void)
{
while(1)
{
LED_PORT_WRITE(0xC7200001);
delay(10000);
LED_PORT_WRITE(0xC7200000);
delay(10000);
}
}
Em chưa biết cách mô phỏng bằng Modelsim vs cap cũng không có(Vì đắt mà ở trường lại ít người quan tâm lên đành chịu).
1) Nếu không lầm thì trong file xparameter.h đã có sẵn
#define LED_PORT_BASE_ADDR
Tại sao bạn lại define lại ? Bạn nên include "xparameter.h" và dùng luôn macro trong file xparameter. Vì khi bạn thay đổi system --> file xparamter sẽ được tạo lại bởi software --> bạn không cần sửa code của bạn nếu bạn dùng luôn macro trong xparameter.
2) Sao bạn lại có 2 hàm delay với giải thuật khác nhau mà lại có cùng 1 prototype?
3) Vì sao giá trị bạn ghi vào LED lại là :0xC7200001?
Leave a comment:
-
Vào năm cuối nên e cũng bận đi thực tập. hôm nay Em mới tiếp tục được. E có một số câu hỏi thế này:
- Với edk mình có thể viết code C được không hay bắt buộc phải qua SDK để viết.
- Em cũng đã biết cách add IP user port, còn phần lập trình C mình sẽ tham khảo các hàm trong file ip_user_port.h có phải không anh? Mong anh đi sâu vào phần này giúp em.
Đây là phần code C em viết. Anh cho e ý kiến
#include"stdio.h"
#include"conio.h"
#include"led_port.h"
#include"xutil.h"
#define LED_PORT_BASE_ADDR 0xC7200000(Địa chỉ trong file xparameter.h)
#define LED_PORT_WRITE(value)\
LED_PORT_mWriteSlaveReg0(LED_PORT_BASE_ADDR,(Value ))
void delay(unsigned int n)
{
unsigned int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
}
}
}
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{}
}
void main(void)
{
while(1)
{
LED_PORT_WRITE(0xC7200001);
delay(10000);
LED_PORT_WRITE(0xC7200000);
delay(10000);
}
}
Em chưa biết cách mô phỏng bằng Modelsim vs cap cũng không có(Vì đắt mà ở trường lại ít người quan tâm lên đành chịu).
Leave a comment:
-
-
Thông thường các board mạch sẽ có luôn cổng USB mà thực chất là kết nối với một con microcontroller, con này làm cầu giữa USB và JTAG, bạn mở schematic của board mạch bạn có coi phải vậy không. Nếu đúng vậy thì đối với PC, mạch vẫn được kết nối qua JTAG.Nguyên văn bởi ngocdt2k3 Xem bài viếtEm nạp xuống kit qua cáp USB. Tiện đây em cung hỏi anh luôn.
Bạn nói gì mình ko hiểuNhư trong tutorial của Kame ở box lcd_Spartan3 thì em thấy có phần khai báo số thanh ghi+kích thước khi add IP user port. Nhưng trong các bản edk mới thj kich thước thấp nhất cũng là 32bit? Vậy làm thế nào để có thể add được tín hiệu dạng như std_logic ạ?
Leave a comment:
-
Em nạp xuống kit qua cáp USB. Tiện đây em cung hỏi anh luôn. Như trong tutorial của Kame ở box lcd_Spartan3 thì em thấy có phần khai báo số thanh ghi+kích thước khi add IP user port. Nhưng trong các bản edk mới thj kich thước thấp nhất cũng là 32bit? Vậy làm thế nào để có thể add được tín hiệu dạng như std_logic ạ?
Leave a comment:
-
Hệ thống các bài tâm sự
Mình tính gom mấy bài tâm sự lại thành 1 tài liệu nhỏ giúp các bạn có thể tiếp cận từng bước, viết lại có hệ thống hơn.
Mình đang viết tới phần ngôn ngữ Verilog và sẽ lấy một ví dụ nhỏ hướng để thể hiện những điều muốn nói.
Hiện này, phần Verilog khá khó viết vì viết không khéo sẽ dẫn đến mất căn bản ?!?!
Các bạn cho ý kiến ..
FPGA for impatient dummies.pdf
Leave a comment:
-
Trong project, bạn cần block ram và block RAM controller. Block RAM thì connect vo Block RAM Controller, block RAM controller thì connect với I-BUS và D-BUS của microblaze.Nguyên văn bởi ngocdt2k3 Xem bài viếtE cũng đã hỏi giá bộ cable nhưng mà mắc quá(hix, sv chịu ko nổi). Nên anh có thể nói chi tiết hơn về cách sử dụng block RAM không ạ?
Trong menu phần Hardware có nút "Init BlockRAM", nút đó sẽ chèn code của bạn vào block RAM, bạn tạo lại file bit rồi down xuống mạch. Ủa vậy chứ bạn nạp bit file xuong mạch bằng cáp gì?
Nhân đây cũng nói luôn, sao mấy bạn không gom lại 4-5 bạn gì đó góp tiền mua một bộ kít rồi share ra nếu trong lab các trường ko có.
Leave a comment:
-
E cũng đã hỏi giá bộ cable nhưng mà mắc quá(hix, sv chịu ko nổi). Nên anh có thể nói chi tiết hơn về cách sử dụng block RAM không ạ?
Leave a comment:
-
Có hai cách đưa phần mềm xuống mạch:Nguyên văn bởi ngocdt2k3 Xem bài viếtVấn đề phần mềm em đã giải quyết xong(quay lại xài 10.1
). Vấn đề là bây giờ là em đã build được file bit treams và nạp xuống kit, nhưng còn phần driver thì em chưa biết đưa xuống kit ntn? có phải mình dùng cable jtag để nạp xuống kit không ạ? Em đang dùng kit basys xc3s-250e của digilents và em lại không có cable jtag của nó 
1) Qua đường JTAG. Đề làm được điều này phải cần có mạch debug gắn chung với microblaze. Phần mềm sẽ giao tiếp với mạch này và truyền phần mềm (file .elf) xuống bộ nhớ của hệ thống.
2) Hệ thống của bạn phải dùng block RAM. Bạn tạo 1 binary file từ elf file (bạn tìm thử make bin from elf Xilinx), xong rồi dùng file này đề chèn vào blockRAM của bạn trong quá trình tao bit file --> trong bit file chứa sẵn code của microblaze -- Bạn chỉ cần download bit file là mạch có thể chạy được.
Ngoài lề chút, càng ngày Altera và Xilinx tích cực đưa microcontroller/microprocessor lên FPGA, tính thâu tóm thị trường hệ thống nhúng. Qua kinh nghiệm cho thấy một hệ thống có thể không cần FPGA, nhưng một khi đã cần FPGA thì thường cần 1 microprocessor đề làm cộng việc quản lý (management) như GUI, đọc các sensor ... cho nên mấy bác Xilinx và Altera bỏ luôn microprocessor lên luôn FPGA cho tiện:
- 1 stop shop, mua một con chíp có hết, khỏi phải vẽ mạch kết nối 2 con
- Băng thông giữa microprocessor và FPGA tăng hơn hẳn so với kết nối một con microprocessor và một con FPGA riêng rẽ. Đây là một yếu tố rất quan trọng trong các ứng dụng cần xử lý nhanh.
Hiện giờ cả Xilinx và Altera đều đã bỏ con ARM duo-core lên FPGA rồi, ngoài ra còn có luôn hết mấy ngoại vi: Gigabit Ethernet, USB, UART, ... mạnh khủng. Tăng cường kiến thức về hệ thống nhúng là một việc cần làm nếu muốn theo đuổi ngành này, có thể một lúc nào đó bạn cần viết cả Firmware lẫn FPGA.
Leave a comment:
-
Vấn đề phần mềm em đã giải quyết xong(quay lại xài 10.1
). Vấn đề là bây giờ là em đã build được file bit treams và nạp xuống kit, nhưng còn phần driver thì em chưa biết đưa xuống kit ntn? có phải mình dùng cable jtag để nạp xuống kit không ạ? Em đang dùng kit basys xc3s-250e của digilents và em lại không có cable jtag của nó
Leave a comment:
-
Mình lâu rồi không dùng XPS ... bạn thử export project qua ben SDK rồi mở SDK lên. Nó sẽ tạo một cái thư viện reference, trong đó bạn có thể chỉnh software platform setting được.Nguyên văn bởi ngocdt2k3 Xem bài viếtEm có thắc mắc chút về phần mềm EDK. Hôm xưa e có nhờ thằng bạn down được bản 13.2 kèm key(cài lên cũng đủ cả bộ nên nặng kinh khủng 13G lận ). Em thấy trên bar menu của nó lại không có phần sofware như trong clip tutorial nên đến bước "software platform setting " thì chịu. Tên bản em đang dùng "Xilinx plastform studio(EDK_0.61xd)" thế là nó bị sao hả anh? hay mình chưa ***** được ạ?
clip tutorial: Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 1 - YouTube
Leave a comment:
-
Em có thắc mắc chút về phần mềm EDK. Hôm xưa e có nhờ thằng bạn down được bản 13.2 kèm key(cài lên cũng đủ cả bộ nên nặng kinh khủng 13G lận ). Em thấy trên bar menu của nó lại không có phần sofware như trong clip tutorial nên đến bước "software platform setting " thì chịu. Tên bản em đang dùng "Xilinx plastform studio(EDK_0.61xd)" thế là nó bị sao hả anh? hay mình chưa ***** được ạ?
clip tutorial: Xilinx EDK Tutorial - Adding custom IP to an EDK Project - Part 1 - YouTube
Leave a comment:
Về tác giả
Collapse
Bài viết mới nhất
Collapse
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
Hôm qua, 18:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
Hôm qua, 18:04 -
-
bởi bqvietDiễn đàn vốn vắng, muốn vào viết bài trả lời chút nhưng cứ thấy luồng nào thành viên này mở thì cũng đồng thời xuất hiện ở Otofun, thế là chùn tay ... Thôi thì dientuvietnam không thể so sánh được về độ phổ cập, biết thân biết phận vậy.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 17:49 -
-
bởi chinhnguyen9So sánh sóng 2 mạch nguồn Push-pull
· Sóng vuông giửa 2 cực D của mạch Pushpull trong module inverter 24-220V sine giả của TQ. Mạh điện này khá đặc biêt ở chổ, không thấy mạch snubber mà hiêu quả triêt sóng hài quá tốt dù hoạt...-
Channel: Nguồn!
Hôm qua, 14:27 -
-
bởi chinhnguyen9Mạch điên bếp tù gộm 2 khối:
Khối điêu khiển:
-Thiết lập công suất nấu
-Thiết lập thời gian nấu
-Kiểm tra có đặt nồi hay không, đúng loại hay không?
-Có quá nhiệt không?
Khối công suất:
- Nắn+ lọc điên AC ra 310VDC +loọc nhiểu...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 14:05 -
-
bởi ittcHi các bác, sau khi được vài lời khuyên thì em có vào lướt web để xem vài mẫu máy, thì ở phần thông số kỹ thuật của máy, thấy họ để vài thông số sau thì em không rành lắm, nhờ các bác giải thích hộ em được không, cụ thể như hình...
-
Channel: Điện tử gia dụng
15-03-2026, 18:34 -

Leave a comment: