
1. 12.26
14:00~18:00
교수님과 면담,건강실비 / 연구자 등록번호 발급 / 개인정보 동의 서 등 필요한 서류 작성
Window10 , Slack 등 필요한 프로그램 환경 구축
2. 12.28
10:00~18:00
파이썬 개발환경 프로그램 구축 , [ CUBe 4차 ] Pthon 강의 - 알고리즘과 절차지향프로그램
self study : Pthon 기본 개념, 단축키, 함수
교수님과 면담. Project 받음
3. 12.30 (1-bit)
10:00~17:00
Vivado Verilog 개발환경 설정 , Orcad 다운로드
Verilog 설계
3.1. 신호가 온것을 확인
특정 신호를 받았을 때 특정 신호를 받은 이후 계속 1을 출력하도록 함. 이전 신호가 1이면 계속 1을 출력해야하기에 FF를 사용하였다. 즉 q가 결정되는 순강이 1이고 맨처음 D값은 q의 값이 지정되어 있지 않기 때문에 초기에만 rst'=0으로 설정해놓았다. |
//--------------------D FF------------------
module Dff(q,din,clk,rst );
input din,clk,rst;
output reg q;
wire D;
or(D,din,q);
always @(posedge clk or negedge rst)
begin
if(rst==0)
q<=0;
else
q<=D;
end
endmodule
//-------------------TESTBENCH--------------------------
module testbench();
wire Q;
reg inA;
reg clk,rst;
Dff dff(Q,inA,clk,rst);
always begin
clk=~clk;
#100;
end
initial begin inA=0; clk=0; rst=0;
#100 rst=1;
#100 inA=1;
#100
#100 inA=1;
#100
#100 inA=0;
end
endmodule

rst'=0일 때에는 결과값 Q가 0으로 출력된다. 위처럼 초기에 rst'=0으로 설정을 해놓지 않을 경우 q가 결정 될 때까지 그 값을 알 수가 없다. 따라서 초반에 q를 설정하기 위해 rst'=0으로 설정하였다. 그리고 다음 clock에서 rst'=1로 설정해야 output이 input의 영향을 받으므로 rst'=1로 설정해야한다.

따라서 위와 같이 input이 변했을대 다음 clock에서 output(Q)가 쭉 1이 되는 것을 확인 할 수 있다.
3.2. 신호 right shift
// ----------------DFF---------------------
module D_FF(q,din,clk,rst );
input din,clk,rst;
output reg q;
always @(posedge clk or negedge rst)
begin
if(rst==0)
q<=0;
else
q<=din;
end
endmodule
//------------TESTBENCH--------------------
module testbench();
wire Q;
wire out1,out2,out3;
reg inA;
reg clk,rst;
Dff dff(Q,inA,clk,rst);
D_FF dff1(out1,inA,clk,rst);
D_FF dff2(out2,out1,clk,rst);
D_FF dff3(out3,out2,clk,rst);
always begin
clk=~clk;
#100;
end
initial begin inA=0; clk=0; rst=0;
#100 rst=1;inA=1;
#100 inA=0;
#100
#100
#100
#100 inA=0;

DFF 세개를 만들어 DFF1의 output이 DFF2의 input에 연결 하면 위의 그림과 같이 rightShift 하는 것을 볼 수 있다.
'feram control signal 연구일지' 카테고리의 다른 글
5주차 ( 2023.01.23~2023.01.27 ) FPGA 연결 (0) | 2023.01.27 |
---|---|
4주차 ( 2023.01.16~2023.01.20 ) FeRam Contorl 신호 베릴로그 (0) | 2023.01.13 |
3주차 ( 2023.01.09~2023.01.13 ) (0) | 2023.01.11 |
2주차 (2023.01.02~01.6) (0) | 2023.01.04 |