⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ram_inst.psm

📁 xilinx ISE 实例代码。可用ISE直接打开
💻 PSM
字号:
;NAMEREG sX, <name>     ; Rename register sX with <name>
CONSTANT VGA_ADDR_R, 10 ; Define constant <name>, assign value
CONSTANT VGA_ADDR_G, 11 ;
CONSTANT VGA_ADDR_B, 12 ;

CONSTANT PUSHBUTTON_ADDR,20;

CONSTANT SEGLED_ADDR_LED,00;
CONSTANT SEGLED_ADDR_SEGUP,01;
CONSTANT SEGLED_ADDR_SEGLOW,02;
CONSTANT SEGLED_ADDR_SEGDOT,03;

; ROM output file is always called
; <filename>.vhd


ADDRESS 000      ; Programs always start at reset vector 0
ENABLE INTERRUPT ; If using interrupts, be sure to enable
                 ; the INTERRUPT input
BEGIN:
                 ; <<< your code here >>>
LOAD S0, 00;
LOAD S1, 00;
LOAD S2, 00;
LOAD S3, 00;

DEALS6:
  COMPARE S6,FF;
  JUMP Z, DEALS5;
;  LOAD S7,S7;
  LOAD S7,S7;
  LOAD S7,S7;
  ADD S6,01
  JUMP DEALS6

DEALS5:
  LOAD S6,00;
  ADD S5,01;
  COMPARE S5,FF;
  JUMP Z, DEALS4;
  JUMP DEALS6

DEALS4:
  LOAD S5,00;
  ADD S4,01;
  COMPARE S4,07;
  JUMP Z, S407
  JUMP DEALS6

S407:
  ADD S0,01
  ADD S1,01
  ADD S2,01
  ADD S3,01   

  OUTPUT S0,SEGLED_ADDR_LED;
  OUTPUT S1,SEGLED_ADDR_SEGUP;
  OUTPUT S2,SEGLED_ADDR_SEGLOW;
  OUTPUT S3,SEGLED_ADDR_SEGDOT;
  LOAD S4,00;
  LOAD S5,00;
  LOAD S6,00;
  JUMP DEALS6

JUMP BEGIN ; Embedded applications never end


ISR:           ; An Interrupt Service Routine (ISR) is
               ; required if using interrupts
               ; Interrupts are automatically disabled
               ; when an interrupt is recognized
               ; Never re-enable interrupts during the ISR
INPUT SA, PUSHBUTTON_ADDR ; Read the ISR register from Push Button module
LOAD SB, SA ;
AND SB,0F   ; mask out the 3 bit of LSB ( B,G,R )

R:
RR SB       ; The LSB is in the carry => R field
JUMP NC, G       ;
INPUT SC, VGA_ADDR_R;
ADD SC , 01 ;
OUTPUT SC,VGA_ADDR_R;
G:
  RR SB       ; The Less LSB is in the carry => G field
  JUMP NC, B       ;
  INPUT SC, VGA_ADDR_G;
  ADD SC , 01 ;
  OUTPUT SC,VGA_ADDR_G;
B:
  RR SB       ; The 3rd LSB is in the carry => B field
  JUMP NC, CLEAR  ;
  INPUT SC, VGA_ADDR_B;
  ADD SC , 01 ;
  OUTPUT SC,VGA_ADDR_B;

CLEAR:
  RR SB
  JUMP NC, INTEND  ;
  LOAD S0,00
  LOAD S1,00  
  LOAD S2,00  
  LOAD S3,00
  LOAD S4,00;
  LOAD S5,00;
  LOAD S6,00;    
  OUTPUT S0,SEGLED_ADDR_LED;
  OUTPUT S1,SEGLED_ADDR_SEGUP;
  OUTPUT S2,SEGLED_ADDR_SEGLOW;
  OUTPUT S3,SEGLED_ADDR_SEGDOT;

INTEND:
LOAD SD, 00
OUTPUT SD, PUSHBUTTON_ADDR;

RETURNI ENABLE ; Return from interrupt service routine
               ; Use RETURNI DISABLE to leave interrupts
               ; disabled
ADDRESS 3FF    ; Interrupt vector is located at highest
               ; instruction address
JUMP ISR       ; Jump to interrupt service routine, ISR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -