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
co ai giup mình giai thich chuong trinh nay ko?, help meNguyê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
Để hiểu rõ bạn nên tìm đọc cuốn "Asic lập trình được" của Tống Văn On tập 2, trong đó sẽ có cụ thể cấu trúc 1 chương trình VHDL và bạn sẽ hiểu nhanh thôiNguyê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 --------------------------------------uhm, chỉ cần -- thôi bạnNguyê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ớm
họ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
-
Anh có thể send cho em một bản ko?! thanks a trước nha! em dang tap viet ip core ma ko biết bắt đầu từ đâu!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
-
ko biết bạn đã làm được cái này chưa! nếu có tai liệu j thi cho minh xin với! thanks!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
-
Anh ơ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 đượcNguyê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
-
Bạn đọc hẳn sách viết về fpga cho đầy đủ và chi tiết. Nói chung bạn nên đọc các sách của nước ngoài viết. Tớ không biết mấy bài luận văn viết thế nào nhưng chắc là thường chỉ cóp nhặt các phần khác nhau trong sách và viết lại theo một chủ đề nào đó mà thôi. Những luận văn đại học thì chắc là không có gì đáng để đọc. Những luận văn PhD thì thường là về các vấn đề chuyên sâu cần thiết cho nghiên cứu. Tuy nhiên thường người làm PhD thường đã xuất bản một số bài báo về nghiên cứu của họ trên các tạp chí quốc tế. Đọc thẳng các bài báo nhanh và tiện lợi hơn nhiều. Tớ có đưa lên mạng quyển sách viết tương đối tốt về fpga dùng cho nios II. Bạn xem lại ở đây.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
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
hôm nay, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
Hôm qua, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -

Comment