📄 i8253.v
字号:
`define D {D7,D6,D5,D4,D3,D2,D1,D0}`timescale 1ns / 1nsmodule I8253(A0, A1, RD_, WR_, CS_, D7, D6, D5, D4, D3, D2, D1, D0, CLK0, CLK1, CLK2, GATE0, GATE1, GATE2, OUT0, OUT1, OUT2); input A0, A1, RD_, WR_, CS_, CLK0, CLK1, CLK2, GATE0, GATE1, GATE2; inout D7, D6, D5, D4, D3, D2, D1, D0; output OUT0, OUT1, OUT2; wire SELMODE0 = ~CS_ & (A1 & A0 & ~D7 & ~D6); wire SELMODE1 = ~CS_ & (A1 & A0 & ~D7 & D6); wire SELMODE2 = ~CS_ & (A1 & A0 & D7 & ~D6); wire SEL0 = ~CS_ & (~A1 & ~A0); wire SEL1 = ~CS_ & (~A1 & A0); wire SEL2 = ~CS_ & (A1 & ~A0); COUNT C0(WR_,RD_,SEL0,SELMODE0,D7,D6,D5,D4,D3,D2,D1,D0,CLK0,GATE0,OUT0), C1(WR_,RD_,SEL1,SELMODE1,D7,D6,D5,D4,D3,D2,D1,D0,CLK1,GATE1,OUT1), C2(WR_,RD_,SEL2,SELMODE2,D7,D6,D5,D4,D3,D2,D1,D0,CLK2,GATE2,OUT2);endmodulemodule COUNT(WR_,RD_,SEL,SELMODE,D7,D6,D5,D4,D3,D2,D1,D0,CLK,GATE,OUT); input WR_, RD_, SEL, CLK, GATE, SELMODE; inout D7, D6, D5, D4, D3, D2, D1, D0; output OUT; wire LOAD, RELOAD, SETOUT_, CLROUT_, MODETRIG, LATCHCNT, MODEWRITE; wire [ 5:0] MODE; wire [ 7:0] COUNTLSB, COUNTMSB, LATCHLSB, LATCHMSB; wire [15:0] COUNT; wire LOADCNT = LOAD | RELOAD; READ READ(`D,LATCHLSB,LATCHMSB,MODE[5:4],SEL,RD_,WR_,MODEWRITE,CLRLATCH); CNTREG CNTREG(`D,MODE[5:1],SEL,RD_,WR_,CLK,COUNTLSB,COUNTMSB,MODEWRITE,LOAD,OUTEN); MODEREG MODEREG(`D,MODE,SELMODE,RD_,WR_,MODEWRITE,SETOUT_,CLROUT_,MODETRIG,LATCHCNT); OUTLATCH OUTLATCH(COUNT,LATCHLSB,LATCHMSB,LATCHCNT); DOWNCNTR DOWNCNTR(COUNT,MODE[3:0],COUNTMSB,COUNTLSB,LOADCNT,CLK,GATE,OUT); OUTCTRL OUTCTRL(COUNT,MODE[3:1],CLK,GATE,OUTEN,MODETRIG,LOADCNT,SETOUT_,CLROUT_,RELOAD,OUT);endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -