Em đang làm bài về FSM , có chút thắc mắc (lab7 trong bộ 10lab của altera )
Đề bài cụ thể ( post lun cái đề gốc bằng tiếng anh , tại trình độ còn thấp , nên dịch ra sợ hem chuẩn lắm )
For this part you are to design a circuit for the DE2 board that scrolls the word "HELLO" in ticker-tape fashion on
the eight 7-segment displays HEX7 − 0. The letters should move from right to left each time you apply a manual
clock pulse to the circuit. After the word "HELLO" scrolls off the left side of the displays it then starts again on
the right side.
Design your circuit by using eight 7-bit registers connected in a queue-like fashion, such that the outputs of the
first register feed the inputs of the second, the second feeds the third, and so on. This type of connection between
registers is often called a pipeline. Each register’s outputs should directly drive the seven segments of one display.
You are to design a finite state machine that controls the pipeline in two ways:
1. For the first eight clock pulses after the system is reset, the FSMinserts the correct characters (H,E,L,L,0, , , )
into the first of the 7-bit registers in the pipeline.
2. After step 1 is complete, the FSM configures the pipeline into a loop that connects the last register back to
the first one, so that the letters continue to scroll indefinitely.
Write Verilog code for the ticker-tape circuit and create a Quartus II project for your design. Use KEY0 on the
DE2 board to clock the FSM and pipeline registers and use SW0 as a synchronous active-low reset input. Write
Verilog code in the style shown in Figure 3 for your finite state machine.
Compile your Verilog code, download it onto the DE2 board and test the circuit.
đây là phần nối mấy cái register của em
Register R0(.Data_in(Data_in_R0) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R0));
Register R1(.Data_in(Data_out_R0) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R1));
Register R2(.Data_in(Data_out_R1) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R2));
Register R3(.Data_in(Data_out_R2) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R3));
Register R4(.Data_in(Data_out_R3) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R4));
Register R5(.Data_in(Data_out_R4) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R5));
Register R6(.Data_in(Data_out_R5) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R6));
Register R7(.Data_in(Data_out_R6) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R7));
Qua đó , em nghĩ là vấn đề mình sẽ cho cái Data_in_R0 vào là cái gì thui ( vì sau xung clock nó sẽ đẩy dữ liệu qua các register sau )
Ý tưởng là ở trạng thái 1 , em sẽ sử dụng 1 cái DISPLAY[55:0] lưu [H E L L O Blank blank blank]
sau đó em dịch dispay sang trái 7 bít DISPLAY = [E L L O Blank Blank Blank H]
rùi cho cái Data_in_R0 = DISPLAY[6:0] ( =H);
Sau 8 lần dịch thì xong trạng thái 1 , chuyển sang trạng thái số 2
Đề bài yêu cầu ( theo em hiểu) là sau trạng thái 1 , HELLO sẽ dịch sang trái , khi nào dịch hết chữ HELLO (Tức là chữ HELLO mất lun ) thì mới bắt đầu hiện chữ H ở LED đầu tiên và dịch tiếp sang trái .
Em muốn hỏi làm cách nào để dịch kiểu như vậy
Hix , cho em chút gợi ý là được rùi , em nghĩ hoài mà hem ra ( dùng theo kiểu FSM nha các anh )
Thank you so much!
Đề bài cụ thể ( post lun cái đề gốc bằng tiếng anh , tại trình độ còn thấp , nên dịch ra sợ hem chuẩn lắm )
For this part you are to design a circuit for the DE2 board that scrolls the word "HELLO" in ticker-tape fashion on
the eight 7-segment displays HEX7 − 0. The letters should move from right to left each time you apply a manual
clock pulse to the circuit. After the word "HELLO" scrolls off the left side of the displays it then starts again on
the right side.
Design your circuit by using eight 7-bit registers connected in a queue-like fashion, such that the outputs of the
first register feed the inputs of the second, the second feeds the third, and so on. This type of connection between
registers is often called a pipeline. Each register’s outputs should directly drive the seven segments of one display.
You are to design a finite state machine that controls the pipeline in two ways:
1. For the first eight clock pulses after the system is reset, the FSMinserts the correct characters (H,E,L,L,0, , , )
into the first of the 7-bit registers in the pipeline.
2. After step 1 is complete, the FSM configures the pipeline into a loop that connects the last register back to
the first one, so that the letters continue to scroll indefinitely.
Write Verilog code for the ticker-tape circuit and create a Quartus II project for your design. Use KEY0 on the
DE2 board to clock the FSM and pipeline registers and use SW0 as a synchronous active-low reset input. Write
Verilog code in the style shown in Figure 3 for your finite state machine.
Compile your Verilog code, download it onto the DE2 board and test the circuit.
đây là phần nối mấy cái register của em
Register R0(.Data_in(Data_in_R0) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R0));
Register R1(.Data_in(Data_out_R0) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R1));
Register R2(.Data_in(Data_out_R1) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R2));
Register R3(.Data_in(Data_out_R2) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R3));
Register R4(.Data_in(Data_out_R3) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R4));
Register R5(.Data_in(Data_out_R4) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R5));
Register R6(.Data_in(Data_out_R5) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R6));
Register R7(.Data_in(Data_out_R6) , .Clk(Clk) , .Reset(Reset), .Data_out(Data_out_R7));
Qua đó , em nghĩ là vấn đề mình sẽ cho cái Data_in_R0 vào là cái gì thui ( vì sau xung clock nó sẽ đẩy dữ liệu qua các register sau )
Ý tưởng là ở trạng thái 1 , em sẽ sử dụng 1 cái DISPLAY[55:0] lưu [H E L L O Blank blank blank]
sau đó em dịch dispay sang trái 7 bít DISPLAY = [E L L O Blank Blank Blank H]
rùi cho cái Data_in_R0 = DISPLAY[6:0] ( =H);
Sau 8 lần dịch thì xong trạng thái 1 , chuyển sang trạng thái số 2
Đề bài yêu cầu ( theo em hiểu) là sau trạng thái 1 , HELLO sẽ dịch sang trái , khi nào dịch hết chữ HELLO (Tức là chữ HELLO mất lun ) thì mới bắt đầu hiện chữ H ở LED đầu tiên và dịch tiếp sang trái .
Em muốn hỏi làm cách nào để dịch kiểu như vậy
Hix , cho em chút gợi ý là được rùi , em nghĩ hoài mà hem ra ( dùng theo kiểu FSM nha các anh )
Thank you so much!
Comment