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

📄 program.fmt

📁 Xilinx的培训教程的源码 virtex
💻 FMT
字号:
            ;================================================================
            ; Port address definitions...
            ;================================================================
            CONSTANT switch_in, 00      ; Switch read port
            CONSTANT leds_out, 01       ; LED write port
            CONSTANT uart_data_rx, 02   ; UART receive read port
            CONSTANT uart_data_tx, 03   ; UART transmit write port
            CONSTANT data_present, 04   ; UART stat read port, lsb
            CONSTANT buffer_full, 05    ; UART stat read port, lsb
            ;================================================================
            ; Useful constant declarations...
            ;================================================================
            CONSTANT all_clear, 00      ; define zero
            CONSTANT ascii_NUL, 00      ; ascii code (null character)
            CONSTANT ascii_SOH, 01      ; ascii code (start of header)
            CONSTANT ascii_STX, 02      ; ascii code (start of text)
            CONSTANT ascii_ETX, 03      ; ascii code (end of text)
            CONSTANT ascii_EOT, 04      ; ascii code (end of xmit)
            CONSTANT ascii_ENQ, 05      ; ascii code (enquiry)
            CONSTANT ascii_ACK, 06      ; ascii code (acknowledge)
            CONSTANT ascii_BEL, 07      ; ascii code (bell)
            CONSTANT ascii_BS, 08       ; ascii code (backspace)
            CONSTANT ascii_HT, 09       ; ascii code (horiz tab)
            CONSTANT ascii_LF, 0A       ; ascii code (line feed)
            CONSTANT ascii_VT, 0B       ; ascii code (vert tab)
            CONSTANT ascii_FF, 0C       ; ascii code (form feed)
            CONSTANT ascii_CR, 0D       ; ascii code (carriage return)
            CONSTANT ascii_SO, 0E       ; ascii code (shift out)
            CONSTANT ascii_SI, 0F       ; ascii code (shift in)
            CONSTANT ascii_DLE, 10      ; ascii code (data link esc)
            CONSTANT ascii_DC1, 11      ; ascii code (device ctrl 1, xon)
            CONSTANT ascii_DC2, 12      ; ascii code (device ctrl 2)
            CONSTANT ascii_DC3, 13      ; ascii code (device ctrl 3, xoff)
            CONSTANT ascii_DC4, 14      ; ascii code (device ctrl 4)
            CONSTANT ascii_NAK, 15      ; ascii code (negative acknowledge)
            CONSTANT ascii_SYN, 16      ; ascii code (sync idle)
            CONSTANT ascii_ETB, 17      ; ascii code (end xmit block)
            CONSTANT ascii_CAN, 18      ; ascii code (cancel)
            CONSTANT ascii_EM, 19       ; ascii code (end of medium)
            CONSTANT ascii_SUB, 1A      ; ascii code (substitute)
            CONSTANT ascii_ESC, 1B      ; ascii code (escape)
            CONSTANT ascii_FS, 1C       ; ascii code (file separator)
            CONSTANT ascii_GS, 1D       ; ascii code (group separator)
            CONSTANT ascii_RS, 1E       ; ascii code (record separator)
            CONSTANT ascii_US, 1F       ; ascii code (unit space)
            CONSTANT ascii_SPACE, 20    ; ascii code
            CONSTANT ascii_EXCLAIM, 21  ; ascii code
            CONSTANT ascii_DBLQUOT, 22  ; ascii code
            CONSTANT ascii_NUMSIGN, 23  ; ascii code
            CONSTANT ascii_DOLLAR, 24   ; ascii code
            CONSTANT ascii_PERCENT, 25  ; ascii code
            CONSTANT ascii_AMP, 26      ; ascii code
            CONSTANT ascii_SINQUOT, 27  ; ascii code
            CONSTANT ascii_LPAREN, 28   ; ascii code
            CONSTANT ascii_RPAREN, 29   ; ascii code
            CONSTANT ascii_ASTERISK, 2A ; ascii code
            CONSTANT ascii_PLUS, 2B     ; ascii code
            CONSTANT ascii_COMMA, 2C    ; ascii code
            CONSTANT ascii_MINUS, 2D    ; ascii code
            CONSTANT ascii_PERIOD, 2E   ; ascii code
            CONSTANT ascii_FWDSLASH, 2F ; ascii code
            CONSTANT ascii_0, 30        ; ascii code
            CONSTANT ascii_1, 31        ; ascii code
            CONSTANT ascii_2, 32        ; ascii code
            CONSTANT ascii_3, 33        ; ascii code
            CONSTANT ascii_4, 34        ; ascii code
            CONSTANT ascii_5, 35        ; ascii code
            CONSTANT ascii_6, 36        ; ascii code
            CONSTANT ascii_7, 37        ; ascii code
            CONSTANT ascii_8, 38        ; ascii code
            CONSTANT ascii_9, 39        ; ascii code
            CONSTANT ascii_COLON, 3A    ; ascii code
            CONSTANT ascii_SEMI, 3B     ; ascii code
            CONSTANT ascii_LESS, 3C     ; ascii code
            CONSTANT ascii_EQUAL, 3D    ; ascii code
            CONSTANT ascii_GREATER, 3E  ; ascii code
            CONSTANT ascii_QUESTION, 3F ; ascii code
            CONSTANT ascii_CIRCAT, 40   ; ascii code
            CONSTANT ascii_A, 41        ; ascii code
            CONSTANT ascii_B, 42        ; ascii code
            CONSTANT ascii_C, 43        ; ascii code
            CONSTANT ascii_D, 44        ; ascii code
            CONSTANT ascii_E, 45        ; ascii code
            CONSTANT ascii_F, 46        ; ascii code
            CONSTANT ascii_G, 47        ; ascii code
            CONSTANT ascii_H, 48        ; ascii code
            CONSTANT ascii_I, 49        ; ascii code
            CONSTANT ascii_J, 4A        ; ascii code
            CONSTANT ascii_K, 4B        ; ascii code
            CONSTANT ascii_L, 4C        ; ascii code
            CONSTANT ascii_M, 4D        ; ascii code
            CONSTANT ascii_N, 4E        ; ascii code
            CONSTANT ascii_O, 4F        ; ascii code
            CONSTANT ascii_P, 50        ; ascii code
            CONSTANT ascii_Q, 51        ; ascii code
            CONSTANT ascii_R, 52        ; ascii code
            CONSTANT ascii_S, 53        ; ascii code
            CONSTANT ascii_T, 54        ; ascii code
            CONSTANT ascii_U, 55        ; ascii code
            CONSTANT ascii_V, 56        ; ascii code
            CONSTANT ascii_W, 57        ; ascii code
            CONSTANT ascii_X, 58        ; ascii code
            CONSTANT ascii_Y, 59        ; ascii code
            CONSTANT ascii_Z, 5A        ; ascii code
            CONSTANT ascii_LBKT, 5B     ; ascii code
            CONSTANT ascii_BKSLASH, 5C  ; ascii code
            CONSTANT ascii_RBKT, 5D     ; ascii code
            CONSTANT ascii_CARET, 5E    ; ascii code
            CONSTANT ascii_UNDER, 5F    ; ascii code
            CONSTANT ascii_TICK, 60     ; ascii code
            CONSTANT ascii_a, 61        ; ascii code
            CONSTANT ascii_b, 62        ; ascii code
            CONSTANT ascii_c, 63        ; ascii code
            CONSTANT ascii_d, 64        ; ascii code
            CONSTANT ascii_e, 65        ; ascii code
            CONSTANT ascii_f, 66        ; ascii code
            CONSTANT ascii_g, 67        ; ascii code
            CONSTANT ascii_h, 68        ; ascii code
            CONSTANT ascii_i, 69        ; ascii code
            CONSTANT ascii_j, 6A        ; ascii code
            CONSTANT ascii_k, 6B        ; ascii code
            CONSTANT ascii_l, 6C        ; ascii code
            CONSTANT ascii_m, 6D        ; ascii code
            CONSTANT ascii_n, 6E        ; ascii code
            CONSTANT ascii_o, 6F        ; ascii code
            CONSTANT ascii_p, 70        ; ascii code
            CONSTANT ascii_q, 71        ; ascii code
            CONSTANT ascii_r, 72        ; ascii code
            CONSTANT ascii_s, 73        ; ascii code
            CONSTANT ascii_t, 74        ; ascii code
            CONSTANT ascii_u, 75        ; ascii code
            CONSTANT ascii_v, 76        ; ascii code
            CONSTANT ascii_w, 77        ; ascii code
            CONSTANT ascii_x, 78        ; ascii code
            CONSTANT ascii_y, 79        ; ascii code
            CONSTANT ascii_z, 7A        ; ascii code
            CONSTANT ascii_LBRACE, 7B   ; ascii code
            CONSTANT ascii_VBAR, 7C     ; ascii code
            CONSTANT ascii_RBRACE, 7D   ; ascii code
            CONSTANT ascii_TILDE, 7E    ; ascii code
            CONSTANT ascii_DEL, 7F      ; ascii code
            ;================================================================
            ; Actual assembly program goes here...
            ;================================================================
cold_start: LOAD s0, all_clear          ; zero out reg s0
            LOAD s1, ascii_X            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_i            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_l            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_i            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_n            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_x            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_SPACE        ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_R            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_u            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_l            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_e            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_s            ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_EXCLAIM      ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_CR           ;
            OUTPUT s1, uart_data_tx     ;
            LOAD s1, ascii_LF           ;
            OUTPUT s1, uart_data_tx     ;
            ; LAB TASK #2
            ; Write code to output a short (10 characters
            ; or less) message to the serial port.
      loop: INPUT s1, switch_in         ; read switch state
            OUTPUT s1, leds_out         ; write it to leds
            ; LAB TASK #1
            ; Write code to read the switch state and
            ; then write it to the LED control port.
rs232_echo: INPUT s1, data_present      ; check uart for data
            XOR s1, s0                  ; used to set flags
            JUMP Z, loop                ; nothing, loop again
            INPUT s1, uart_data_rx      ; read received byte
            OUTPUT s1, uart_data_tx     ; write it back out
            JUMP loop                   ; loop again
            ; LAB TASK #3
            ; Write code to check if a byte has been
            ; received by the uart.  If so, write it
            ; back to the uart transmit port.  If not
            ; don't do anything and just...
            JUMP loop                   ; loop again
            ;================================================================
            ;
            ;================================================================

⌨️ 快捷键说明

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