thì cái đó như là mình gọi các component mà.liên kết các module với nhau thôi.đầu tiên em tưởng ý anh khác.
giúp đỡ về timer
Collapse
X
-
-
Nguyên văn bởi hoanglonghv Xem bài viếtNhưng anh Jefflieu ơi cái phím đó là theo kiểu chuyển vòng trạng thái khác với mục đích này.pause,start + full-screen khác hẳn với pause+start+reset.
A gợi ý thôi. Ý nói có thể thực hiện được nhiều lệnh với 1 phím.
Tại sao không dùng vòng trạng thái. Như vậy timer của bạn có thêm block "User interface" ...
User interface gồm:
- Input: button
- Ouput: start/clear
Máy trạng thái sẽ điều khiển start/clear
Comment
-
Tại thấy thread FPGA này nó nguội quá nên em vào khuấy cho nó nóng tí chứ bài này đâu phải của em đâu anh.hihi.là của hai_mta mà.Nguyên văn bởi jefflieu Xem bài viết
A gợi ý thôi. Ý nói có thể thực hiện được nhiều lệnh với 1 phím.
Tại sao không dùng vòng trạng thái. Như vậy timer của bạn có thêm block "User interface" ...
User interface gồm:
- Input: button
- Ouput: start/clear
Máy trạng thái sẽ điều khiển start/clear
Comment
-
Về variable và signal:
Một tín hiệu được khai báo signal thì có thể được synthesize thành register hoặc wire tùy cách dùng tín hiệu đó.
Ví dụ:
signal Start: std_logic;
Về variablestart là 1 wire:
start <= (not clear) and run;
start là 1 register
process(clk)
begin
if(rising_edge(clk)) then
start <= (not clear) and run;
end if
end process;
Bây giờ già sử var1 đang bằng 0, some_input = 1 không đổi. Thì sau rising clock tiếp theo var1 = 1. some_output sẽ bằng gì 0 hay 1?some_input và some_output là input và output kiểu std_logic;
process(clk,rst)
variable var1 : std_logic:='0';
begin
if(rst='1') then
var1:='0';
some_output <= '0';
elsif(rising_edge(clk)) then
var1:= not var1;
some_output <= var1 and some_input;
end if
end process
xong rồi bạn so sánh với code này:
Tương tự, giả sử some_input_1 đang = 1, var1 = 0, some_input = 1. some_output = 0. nếu trong 1 chu kì nào đó, some_input_1 chuyển từ 1 sang 0, some_input vẫn bằng 1. Thì some_output trong cycle tới = 0 hay bằng 1?process(clk,rst)
variable var1 : std_logic:='0';
begin
if(rst='1') then
var1:='0';
some_output <= '0';
elsif(rising_edge(clk)) then
var1:= not some_input_1;
some_output <= var1 and some_input;
end if
end process
Bạn thử đem 2 phần code vào ISE, synthesis và coi "RTL view" ...
Comment
-
Hi hai_mta,Nguyên văn bởi hai_mta Xem bài viếtanh Jettlieu ơi,vòng trạng thái sử dụng thế nào ạ?em mới bắt đầu làm quen nên còn gà lắm!!!
Theo anh em chưa học VHDL/Verilog được. Em cần học Digital Logic Design trước.
Em coi cái link này, a thấy khá tạm.
Comment
-
Thank jefflieu nhiều.trước đến giờ em đọc sách chỉ biết vậy mà ko test.hihi.Nguyên văn bởi jefflieu Xem bài viếtVề variable và signal:
Một tín hiệu được khai báo signal thì có thể được synthesize thành register hoặc wire tùy cách dùng tín hiệu đó.
Ví dụ:
signal Start: std_logic;
Về variable
Bây giờ già sử var1 đang bằng 0, some_input = 1 không đổi. Thì sau rising clock tiếp theo var1 = 1. some_output sẽ bằng gì 0 hay 1?
xong rồi bạn so sánh với code này:
Tương tự, giả sử some_input_1 đang = 1, var1 = 0, some_input = 1. some_output = 0. nếu trong 1 chu kì nào đó, some_input_1 chuyển từ 1 sang 0, some_input vẫn bằng 1. Thì some_output trong cycle tới = 0 hay bằng 1?
Bạn thử đem 2 phần code vào ISE, synthesis và coi "RTL view" ...
Comment
-
Re
coi như đầu vào còn lại là xung clk của 1 thanh ghi 2bit, 00 => đếm, 01=> stop, 10=> reset(đồng thời reset thanh ghi luôn).Nguyên văn bởi hai_mta Xem bài viếtbạn ơi,nếu chỉ có 2 đầu vào một là clk,đầu vào còn lại là chung giữa start/stop/restet thì làm thế nào?
Cheers!!!
dạo này mình đang bận ôn thi nên chưa code dc, khi nào thi xong mình sẽ code lên để anh em phán...
Comment
-
Bài viết mới nhất
Collapse

Comment