목차
없음
본문내용
module psdram_async(
//Main Clock
input clk, //50Mhz
//Switch Signal
input [7:0] SlideSwitch,
input [3:0] BtnSwitch,
//7 Segment Signal
output [7:0] Seg,
output reg [3:0] SegControl,
//Psdram Signal
output reg nMemOE,
output reg nMemWE,
output reg nMemADV,
output reg nMemCE,
output MemClk,
output reg MemCRE,
output reg nMemLB,
output reg nMemUB,
input MemWait,
output reg [22:0] MemAdr,
inout [15:0] MemDB
);
parameter HIGH = 1;
parameter LOW = 0;
parameter RESET = 4'b0001; //Reset Button Define
parameter WRITE = 4'b0010; //Write Button Define
parameter READ = 4'b0100; //Read Button Define
parameter PAGEREAD = 4'b1000; //PageRead Button Define
//State Define
parameter STATE0 = 0;
parameter STATE1 = 1;
parameter STATE2 = 2;
parameter STATE3 = 3;
parameter STATE4 = 4;
parameter STATE5 = 5;
parameter STATE6 = 6;
parameter STATE7 = 7;
parameter STATE8 = 8;
parameter STATE9 = 9;
parameter STATE10 = 'd10;
parameter STATE11 = 'd11;
parameter STATE12 = 'd12;
parameter STATE13 = 'd13;
parameter STATE14 = 'd14;
parameter STATE15 = 'd15;
parameter STATE16 = 'd16;
parameter STATE17 = 'd17;
parameter STATE18 = 'd18;
parameter STATE19 = 'd19;
parameter STATE20 = 'd20;
parameter STATE21 = 'd21;
parameter STATE22 = 'd22;
//Display Chracter Define.
parameter NICE = 'h13120C0E;
parameter HELO = 'h110E1700;
parameter EROR = 'h0E140014;
parameter PUSH = 'h15160511;
parameter MAXADR = 'd15;
wire SegRefreshCLK;
wire [7:0] DisplaySeg;
reg [7:0] InSegDigit;
reg [1:0] RefreshCounter;
reg [31:0] SegDigit;
reg [15:0] DataBuffer;
reg [5:0] CurrentState;
reg [7:0] ErrorCnt = 0;
reg [15:0] PageData1 = 0;
reg [15:0] PageData2 = 0;
reg [15:0] PageData3 = 0;
reg [15:0] PageData4 = 0;
assign Seg = DisplaySeg;
assign MemClk = LOW;
assign MemDB = (nMemOE == HIGH && nMemWE == LOW) ? DataBuffer : 16'hzzzz;
initial begin
SegDigit <= HELO; //Power On Default Display ON 7 Segment HELO
nMemCE <= HIGH; //Power On Default CE = HIGH;
nMemOE <= HIGH; //Power On Default OE = HIGH;
nMemWE <= HIGH; //Power On Default WE = HIGH;
nMemLB <= HIGH; //Power On Default LB = HIGH;
nMemUB <= HIGH; //Power On Default UB = HIGH;
MemCRE <= LOW; //Power On Default CRE = LOW;
nMemADV <= LOW; //Power On Default ADV = LOW;
MemAdr <= 0; //Power On Default Memory Adress = 0;
CurrentState<= STATE0; //Power On Default CurrentState = STATE0;
RefreshCounter = 0; //Power On Default RefreshCounter = 0;
end
---------- 생략
//Main Clock
input clk, //50Mhz
//Switch Signal
input [7:0] SlideSwitch,
input [3:0] BtnSwitch,
//7 Segment Signal
output [7:0] Seg,
output reg [3:0] SegControl,
//Psdram Signal
output reg nMemOE,
output reg nMemWE,
output reg nMemADV,
output reg nMemCE,
output MemClk,
output reg MemCRE,
output reg nMemLB,
output reg nMemUB,
input MemWait,
output reg [22:0] MemAdr,
inout [15:0] MemDB
);
parameter HIGH = 1;
parameter LOW = 0;
parameter RESET = 4'b0001; //Reset Button Define
parameter WRITE = 4'b0010; //Write Button Define
parameter READ = 4'b0100; //Read Button Define
parameter PAGEREAD = 4'b1000; //PageRead Button Define
//State Define
parameter STATE0 = 0;
parameter STATE1 = 1;
parameter STATE2 = 2;
parameter STATE3 = 3;
parameter STATE4 = 4;
parameter STATE5 = 5;
parameter STATE6 = 6;
parameter STATE7 = 7;
parameter STATE8 = 8;
parameter STATE9 = 9;
parameter STATE10 = 'd10;
parameter STATE11 = 'd11;
parameter STATE12 = 'd12;
parameter STATE13 = 'd13;
parameter STATE14 = 'd14;
parameter STATE15 = 'd15;
parameter STATE16 = 'd16;
parameter STATE17 = 'd17;
parameter STATE18 = 'd18;
parameter STATE19 = 'd19;
parameter STATE20 = 'd20;
parameter STATE21 = 'd21;
parameter STATE22 = 'd22;
//Display Chracter Define.
parameter NICE = 'h13120C0E;
parameter HELO = 'h110E1700;
parameter EROR = 'h0E140014;
parameter PUSH = 'h15160511;
parameter MAXADR = 'd15;
wire SegRefreshCLK;
wire [7:0] DisplaySeg;
reg [7:0] InSegDigit;
reg [1:0] RefreshCounter;
reg [31:0] SegDigit;
reg [15:0] DataBuffer;
reg [5:0] CurrentState;
reg [7:0] ErrorCnt = 0;
reg [15:0] PageData1 = 0;
reg [15:0] PageData2 = 0;
reg [15:0] PageData3 = 0;
reg [15:0] PageData4 = 0;
assign Seg = DisplaySeg;
assign MemClk = LOW;
assign MemDB = (nMemOE == HIGH && nMemWE == LOW) ? DataBuffer : 16'hzzzz;
initial begin
SegDigit <= HELO; //Power On Default Display ON 7 Segment HELO
nMemCE <= HIGH; //Power On Default CE = HIGH;
nMemOE <= HIGH; //Power On Default OE = HIGH;
nMemWE <= HIGH; //Power On Default WE = HIGH;
nMemLB <= HIGH; //Power On Default LB = HIGH;
nMemUB <= HIGH; //Power On Default UB = HIGH;
MemCRE <= LOW; //Power On Default CRE = LOW;
nMemADV <= LOW; //Power On Default ADV = LOW;
MemAdr <= 0; //Power On Default Memory Adress = 0;
CurrentState<= STATE0; //Power On Default CurrentState = STATE0;
RefreshCounter = 0; //Power On Default RefreshCounter = 0;
end
---------- 생략
추천자료
4층 엘리베이터 elevator controller 베릴로그 설계
State Transition Diagram of Signal Lamp, 베릴로그, 실험소스
ALU, Shifter, 베릴로그 소스, 예비, 결과레포트
Single Cycle CPU 제작,베릴로그, 소스, 레포트
RAM에서의loadstore 기능구현, 베릴로그, 쿼터스, 결과소스
ALU( Ripple Carry Adder 이용 ),Wallace( 곱셈기 ),베릴로그,쿼터스, 소스
Control Logic Unit, 베릴로그, 결과파일, 소스
RCA, CLA, Subtractor(Compararot이용), 베릴로그, 소스파일있음.
Verilog(베릴로그) 이용한 시계 설계
소개글