Ai giúp mình cai giao tiếp keyboard với kit DE2 với. Đang làm cái đó mà giờ mình không biết gì hết nè. Hình như trong diễn đàn này co sư huynh làm về cái này rồi. Mong các su huynh chỉ giáo với.
Thông báo
Collapse
No announcement yet.
VHDL & Verilog
Collapse
X
-
Vhdl
Nguyên văn bởi meocondihocv Xem bài viếtgui minh theo dia chỉ này với tapthe12a42002@yahoo.com
mình xin chân thành cám ơn
1 --------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 --------------------------------------
5 ENTITY dff IS
6 PORT (d, clk, rst: IN STD_LOGIC;
7q: OUT STD_LOGIC);
8 END dff;
9 --------------------------------------
10 ARCHITECTURE dff OF dff IS
11 BEGIN
12 PROCESS
13 BEGIN
14 WAIT ON rst, clk;
15 IF (rst='1') THEN
16 q <= '0';
17 ELSIF (clk'EVENT AND clk='1') THEN
18 q <= d;
19 END IF;
20 END PROCESS;
21 END dff;
22 --------------------------------------học học nữa và học khi...... đến chết
Comment
-
giải thích
Nguyên văn bởi hoangphi Xem bài viếtco ai giup mình giai thich chuong trinh nay ko?, help me
1 --------------------------------------; Khai báo thư viện
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 --------------------------------------; khai báo thực thể D flip flop
5 ENTITY dff IS
6 PORT (d, clk, rst: IN STD_LOGIC; các ngõ vào
7q: OUT STD_LOGIC); ngõ ra q
8 END dff; kết thúc khai báo thực thể
9 --------------------------------------; chương trình
10 ARCHITECTURE dff OF dff IS ; Cấu trúc 1 architecture bạn phải học nhé
11 BEGIN
12 PROCESS ; thực hiện tuần tự nên dùng PROCESS
13 BEGIN
14 WAIT ON rst, clk; chờ sự kiện rst, theo xung clock
15 IF (rst='1') THEN ; if.....then ...elseif...then hàm điều kiện,
16 q <= '0'; gán 0 cho ngõ ra q
17 ELSIF (clk'EVENT AND clk='1') THEN
18 q <= d; gán giá trị ngõ vào d cho q
19 END IF;
20 END PROCESS;
21 END dff; kết thúc
22 --------------------------------------
Comment
-
Thank A longlinux nhiều nhé, vấn dề la 14/01 này em phải nộp bài kiểm tra rồi, gio mua sách về đọc cũng ko kịp, nếu A có file hướng dẫn và giải thích các câu lệnh về VHDL thì hay wa, Nếu có thể A giai thick giùm em vài dòng được ko??ah, sau lệnh nào đò muốn giải thích phải dùng dấu ---------- chứ
có phải thế này ko:
q <= d;------------ gán giá trị ngõ vào d cho qhọc học nữa và học khi...... đến chết
Comment
-
Nguyên văn bởi hoangphi Xem bài viếtco ai giup mình giai thich chuong trinh nay ko?, help me
1 --------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 --------------------------------------
5 ENTITY dff IS
6 PORT (d, clk, rst: IN STD_LOGIC;
7q: OUT STD_LOGIC);
8 END dff;
9 --------------------------------------
10 ARCHITECTURE dff OF dff IS
11 BEGIN
12 PROCESS
13 BEGIN
14 WAIT ON rst, clk;
15 IF (rst='1') THEN
16 q <= '0';
17 ELSIF (clk'EVENT AND clk='1') THEN
18 q <= d;
19 END IF;
20 END PROCESS;
21 END dff;
22 --------------------------------------Nguyên văn bởi hoangphi Xem bài viếtThank A longlinux nhiều nhé, vấn dề la 14/01 này em phải nộp bài kiểm tra rồi, gio mua sách về đọc cũng ko kịp, nếu A có file hướng dẫn và giải thích các câu lệnh về VHDL thì hay wa, Nếu có thể A giai thick giùm em vài dòng được ko??ah, sau lệnh nào đò muốn giải thích phải dùng dấu ---------- chứ
có phải thế này ko:
q <= d;------------ gán giá trị ngõ vào d cho q
Bạn có thể tìm hiểu thêm trong file gởi kèm, có gì thì hỏiAttached Files
Comment
-
Pro Long linux ah, bạn có tài liệu này ma tiếng việt ko? thời gian sap đến rồi mà toàn là tiếng anh , hay la mình post thêm vài chương trình mẫu rồi A long giai thick gium em từng câu lệnh nhé
bài 1:
1 ---------------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------------
5 ENTITY decoder IS
6 PORT ( ena : IN STD_LOGIC;
7 sel : IN STD_LOGIC_VECTOR (2 DOWNTO 0);
8 x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
9 END decoder;
10 ---------------------------------------------
11 ARCHITECTURE generic_decoder OF decoder IS
12 BEGIN
13 PROCESS (ena, sel)
14 VARIABLE temp1 : STD_LOGIC_VECTOR (x'HIGH DOWNTO 0);
15 VARIABLE temp2 : INTEGER RANGE 0 TO x'HIGH;
16 BEGIN
17 temp1 := (OTHERS => '1');
18 temp2 := 0;
19 IF (ena='1') THEN
20 FOR i IN sel'RANGE LOOP -- sel range is 2 downto 0
21 IF (sel(i)='1') THEN -- Bin-to-Integer conversion
22 temp2:=2*temp2+1;
23 ELSE
24 temp2 := 2*temp2;
25 END IF;
26 END LOOP;
27 temp1(temp2):='0';
28 END IF;
29 x <= temp1;
30 END PROCESS;
31 END generic_decoder;
32 ---------------------------------------------
bài 2: bài này thì em viết chay chuong trinh rồi nhưng ngỏ ra Y lam sao ấy, khó hiểu quá, a giai thick phần ngỏ ra nhe kĩ nhé
1 ---------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------
5 ENTITY mux IS
6 PORT ( a, b, c, d, s0, s1: IN STD_LOGIC;
7y: OUT STD_LOGIC);
8 END mux;
9 ---------------------------------------
10 ARCHITECTURE pure_logic OF mux IS
11 BEGIN
12 y <= (a AND NOT s1 AND NOT s0) OR
13 (b AND NOT s1 AND s0) OR
14 (c AND s1 AND NOT s0) OR
15 (d AND s1 AND s0);
16 END pure_logic;
17 ---------------------------------------
bài 3: bài này liên wan đến count, nhưng ko hoc được buổi nào hết nên mù tịt luôn
1 ---------------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------------
5 ENTITY counter IS
6 PORT (clk : IN STD_LOGIC;
7 digit : OUT INTEGER RANGE 0 TO 9);
8 END counter;
9 ---------------------------------------------
10 ARCHITECTURE counter OF counter IS
11 BEGIN
12 count: PROCESS(clk)
13 VARIABLE temp : INTEGER RANGE 0 TO 10;
14 BEGIN
15 IF (clk'EVENT AND clk='1') THEN
16 temp := temp + 1;
17 IF (temp=10) THEN temp := 0;
18 END IF;
19 END IF;
20 digit <= temp;
21 END PROCESS count;
22 END counter;
Nguồn :bài mẫu copy từ altera
Mong tin A long sớmhọc học nữa và học khi...... đến chết
Comment
-
bài tập VHDL
Pro Long linux ah, bạn có tài liệu này ma tiếng việt ko? thời gian sap đến rồi mà toàn là tiếng anh , hay la mình post thêm vài chương trình mẫu rồi A long giai thick gium em từng câu lệnh nhé
bài 1
1 ---------------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------------
5 ENTITY decoder IS
6 PORT ( ena : IN STD_LOGIC;
7 sel : IN STD_LOGIC_VECTOR (2 DOWNTO 0);
8 x: OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
9 END decoder;
10 ---------------------------------------------
11 ARCHITECTURE generic_decoder OF decoder IS
12 BEGIN
13 PROCESS (ena, sel)
14 VARIABLE temp1 : STD_LOGIC_VECTOR (x'HIGH DOWNTO 0);
15 VARIABLE temp2 : INTEGER RANGE 0 TO x'HIGH;
16 BEGIN
17 temp1 := (OTHERS => '1');
18 temp2 := 0;
19 IF (ena='1') THEN
20 FOR i IN sel'RANGE LOOP -- sel range is 2 downto 0
21 IF (sel(i)='1') THEN -- Bin-to-Integer conversion
22 temp2:=2*temp2+1;
23 ELSE
24 temp2 := 2*temp2;
25 END IF;
26 END LOOP;
27 temp1(temp2):='0';
28 END IF;
29 x <= temp1;
30 END PROCESS;
31 END generic_decoder;
32 ---------------------------------------------
bài 2: bài này thì em viết chay chuong trinh rồi nhưng ngỏ ra Y lam sao ấy, khó hiểu quá, a giai thick phần ngỏ ra nhe kĩ nhé
1 ---------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------
5 ENTITY mux IS
6 PORT ( a, b, c, d, s0, s1: IN STD_LOGIC;
7y: OUT STD_LOGIC);
8 END mux;
9 ---------------------------------------
10 ARCHITECTURE pure_logic OF mux IS
11 BEGIN
12 y <= (a AND NOT s1 AND NOT s0) OR
13 (b AND NOT s1 AND s0) OR
14 (c AND s1 AND NOT s0) OR
15 (d AND s1 AND s0);
16 END pure_logic;
17 ---------------------------------------
bài 3: bài này liên wan đến count, nhưng ko hoc được buổi nào hết nên mù tịt luôn
1 ---------------------------------------------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 ---------------------------------------------
5 ENTITY counter IS
6 PORT (clk : IN STD_LOGIC;
7 digit : OUT INTEGER RANGE 0 TO 9);
8 END counter;
9 ---------------------------------------------
10 ARCHITECTURE counter OF counter IS
11 BEGIN
12 count: PROCESS(clk)
13 VARIABLE temp : INTEGER RANGE 0 TO 10;
14 BEGIN
15 IF (clk'EVENT AND clk='1') THEN
16 temp := temp + 1;
17 IF (temp=10) THEN temp := 0;
18 END IF;
19 END IF;
20 digit <= temp;
21 END PROCESS count;
22 END counter;
Nguồn :bài mẫu copy từ altera
Mong tin A long sớmhọc học nữa và học khi...... đến chết
Comment
-
Chắc bạn Hoangphi là sinh viên. Tớ chẳng biết bạn học kiểu gì mà mấy câu lệnh VHDL như vậy cũng không hiểu. Ngày trước lúc tớ làm PhD bên Mỹ đã từng làm TA có hướng dẫn sinh viên viết Verilog. Sinh viên Mỹ học có 1 quarter (10 tuần) về RTL code đã có thể thiết kế cả môt processor 16 bit rồi (tất nhiên không phải sinh viên nào cũng làm tốt). Bây giờ sánh báo ngành điện tử toàn bằng tiếng Anh mà bạn không chịu đọc thì kiến thức làm sao nâng cao được. Tớ lúc đầu định để bạn tự làm nhưng thôi mong lần sau bạn cố gắng hơn.
Bài thứ nhất: giá trị X đầu ra có 8 bit. Nếu ena =0, 8 bit đều là 1 (lệnh 17). Nếu ena=1 X có 7 bit 1 và 1 bit 0 (lệnh 19-28). Vị trí của bit 0 phụ thuộc vào giá trị sel (lệnh 20-26). Đoạn vòng lặp for dùng để chuyển từ giá trị sel từ binary sang số để gán bit 0 vào vị trí tương ứng.
Bài thứ 2 là decoder. Y=A nếu s1=0, s2=0; Y=B nếu s1=0 s0=1; Y=C nếu s1=1 s0=0; và Y=D nếu s1=1 s0=1
Bài thứ 3 là counter nhưng bài này viết code sai. counter này không có đầu vào reset vậy thì làm sao có thể kiểm soát được giá trị ra. Câu lệnh 15 viết đây là rising edge flipflop. Mỗi lần có sườn lên của tín hiệu clk thì đầu ra lại tăng lên 1 giá trị. Nếu giá trị tăng lên bằng 10 thì nó bị chuyển lại thành 0. (bộ đếm từ 0 đến 9).
Comment
-
Nguyên văn bởi danbeo85 Xem bài viếtNếu bạn đã nắm phần căn bản về verilog và nios thì hãy tập viết IP cho hệ thống NIOS đi như thế sẽ vừa có kinh nghiệm về verilog và C/C++ luôn. Trong hệ thống của bạn, các IP core là tự làm hay sử dụng của nhà cung cấp. Bạn nói đã làm trên hệ thống âm thanh thì IP giao tiếp âm thanh đó bạn tự viết hay dùng IP có sẵn của KIT DE2 do nhà sản xuất cung cấp trên mạng. Hiện nay hình như chưa có nơi nào dạy về NIOS II cả, ngay cả phòng thí nghiệm vi mạch các thầy còn đang tìm hiểu nó. Vào đợt luận văn mới đây có 2 người làm về NIOS II đó, họ đều làm về xử lý tín hiệu âm thanh, bạn có thể tham khảo tại bộ môn. Trong luận văn họ chỉ cho bạn trình tự tạo một hệ thống NIOS, trình tự thiết kế IP, và một số lỗi có thể mắc khi thiết kế. Bạn là sv hay đã ra trường rồi, nếu là sv bạn có thể mượn lv xem, trong hai lv đó có một cuốn do thầy Luật hướng dẫn làm equalizer, echo, reverb, giao tiếp máy tính. đa số các IP là do sv viết chỉ có một số là phải lấy của nhà sản xuất: SDRAM controller, JTAG UART. Nếu mượn không được luận văn thì mình sẽ chép file cho bạn.
Comment
-
Nguyên văn bởi chmt Xem bài viếtCó ai đã làm giải mã MP3 trên kit DE2/DE1 chưa? Có ai có tài liệu về cái đó ko cho mình xin với.
Comment
-
Nguyên văn bởi danbeo85 Xem bài viếtrockphuthuy đang tìm hiểu phần nào của KIT DE2, bạn đã làm các bài lab của Altera chưa? Nếu làm được 5 bài đầu là phần căn bản về KIT bạn ok rồi. Sau đó hãy làm quen với giao tiếp SRAM, VGA, Audio codec. Còn USB thì từ từ tìm hiểu, nó rất khó chịu. Sau khi đã có thể giao tiếp thiết bị trên KIT thì hãy tìm hiểu qua NIOS II, và tập viết IP core cho hệ thống. Khi nào bạn có thể tạo ra được một hệ thống NIOS II có các thiết bị ngoại vi ví dụ như Audio codec interface, VGA controller, RS232, PS2 Interface,... lúc đó bạn mới có thể viết một ứng dụng thật sự mạnh ví dụ như tạo một hệ điều hành trên hệ thống NIOS II. Nếu bạn chỉ viết ứng dụng thuần túy là tạo ra một IP core để thực thi một nhiệm vụ nào đó thì mình khuyên nên làm về DSP(ví dụ tạo các bộ lọc số, FFT,...). Để làm về DSP trước tiên bạn phải biết cách giao tiếp với VGA và Audio codec. Hai thành phần này rất quan trọng trong các ứng dụng xử lý ảnh và xử lý âm thanh. Hai đề tài này phù hợp cho việc viết ứng dụng thuần vẻilog và VHDL. Nếu bạn là SV BK thì bạn được mượn KIT tại phòng thí nghiệm vi mạch 203B3, và nhớ kiểm tra trước khi sử dụng do có một số KIT bị hư một số thiết bị, tốt nhất là lấy KIT có chương trình mặc định của Altera( Coi LCD có chữ "WELCOME ...").
Comment
-
Nguyên văn bởi l_anh60 Xem bài viếtAnh ơi, anh có thể cho em xin tài liệu về giao tiếp audio codec như thế nào được không ạ? Em không học bách khoa nên ko thể mượn các quyển luận văn được
http://www.dientuvietnam.net/forums/...64/#post424167
Comment
-
module Counter(a1, a2, b1, clk_in, rst, set, bcd_out, clk_out, b2);
input clk_in, a1, a2, b1; // clock
input rst; // reset : low active
input [3:0] set;
output reg [3:0] bcd_out;
output reg clk_out;
output reg [2:0] b2 = 0;
always@(posedge clk_in or negedge rst)
begin
if (~rst)
begin
bcd_out <= 0;
clk_out <= 0;
end
else if(b2==0)
begin
if (bcd_out == set)
begin
bcd_out <= 0;
clk_out <= 1;
end
else
begin
bcd_out <= bcd_out + 1;
clk_out <= 0;
end
end
end
always@(posedge a1)
begin
b2 <= b2 + 1 ;
if (b2 == 6)
b2 <= 0;
end
always@(posedge a2)
if(b1)
begin
bcd_out <= bcd_out + 1;
if(bcd_out==9 && b2==1)
bcd_out <= 0;
if(bcd_out==5 && b2==2)
bcd_out <= 0;
if(bcd_out==9 && b2==3)
bcd_out <= 0;
if(bcd_out==5 && b2==4)
bcd_out <= 0;
if(bcd_out==3 && b2==5)
bcd_out <= 0;
if(bcd_out==2 && b2==6)
bcd_out <= 0;
end
endmodule
giúp mình với code mình bị lỗi: Error (10028): Can't resolve multiple constant drivers for net "bcd_out" at Counter.v(37) mọi người giúp e nhé, mai e phải nộp rùi
Comment
Bài viết mới nhất
Collapse
-
bởi vietroadTheo mình biết thì chọn dây dẫn dựa vào dòng tải. Thường thì tiết diện 1mm2 cho dòng 6A. Nhưng trong các mạch điện tử, như mạch nguồn tổ ong chẳng hạn, dòng đến vài chục Ampe mà đường mạch mỏng dính. Phải chăng điện DC nó khác với...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 14:19 -
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 08:19 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
28-11-2024, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2024, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
27-11-2024, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
27-11-2024, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
27-11-2024, 11:28 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 15:06 -
Comment