首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Atlys开发板FPGA Design Flow LAB3的KPSM3程序--参加年度达人

Atlys开发板FPGA Design Flow LAB3的KPSM3程序--参加年度达人

最近在使用Atlys开发板,简单地过了一下板子光盘上的程序。因为例子用到了PicoBlaze,而在这之前并没有接触过PicoBlaze的东西,所以一开始有畏难情绪。后来画了十几分钟读了一下PicoBlaze的用户手册和kcpsm3的指南,发现也没有那么难;而且PicoBlaze真的是非常简单。因为例程里有的东西并没有讲到,可能会对初学者造成不顺利,所以在此把缺失的部分补上,希望对后来者有用。
首先修改program.psm文件,用记事本或者写字板都可以打开。它是一个函数模版的性质,打开基本就是一目了然:
;================================================================
; 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)
PicoBlaze
PicoBlaze
program.psm
loop:             LOAD     s0, all_clear     ; zero out reg s0 (nop)
      INPUT S0       , 00    ; Switch read port
                  OUTPUT S0    , 01    ; LED write port
                ; LAB TASK #1
                ; Write code to read the switch state and
                ; then write it to the LED control port.

端口定义里面,00是switch(拨码开关)端口对应的地址,s0是无等待寄存器,分号用来注释
INPUT S0 , 00 ; Switch read port 把switch开关对应的状态读入s0寄存器
OUTPUT S0 , 01 ; LED write port
然后启用kpsm3编译程序进行编译。windows系统的开始--运行,输入cmd然后回车,切换到assemble对应的目录,如图所示:



然后回车,就可以生成program.v文件了;然后把它加入ISE的工程里面。这里需要注意的是kcpsm3是个dos程序,只能运行在32位程序。在我的64位win7下,虽然ISE可以原生支持,但是kcpsm3这个程序不能在64位运行,幸亏我还有虚拟PC。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表