资源描述
Digilent(德致伦)nexys2开发板学习记录
基于芯片xilinx Spartan 3E FPGA
xc3s500e
Webpack
JTAG
Xilinx Spartan #AN FPGA 芯片型号代表的意义
以XC3S200AN-4FTG256C为例:
XC3S: Xilinx公司Spartan 3 系列FPGA芯片的代号
200:该芯片由200k个逻辑门组成
AN: 该芯片具有非易失功能,内部具有flash memory
-4:速度等级(-4为标准效能,-7为高效能)
FTG: 封装形式package type 为fine-pitch thin ball grid array
256: 具有256个引脚
C: 工作范围为商业用途,工作温度为0-85° I代表商业用途,工作温度为-40-100°
关于执行implementdesign的动作
Translate:使设计电路的netlist能够与所连接的FPGA芯片一致,并且检查ucf文件是否有不一致的情况
Map:将所设计的电路换到FPGA芯片的CLB上
Place:选择适当位置的CLB
Route:将FPGA芯片内部的CLB以及IO互相连接
Configuration功能:generate programming file命令 可将完成配置与布线的电路转换为能下载到FPGA芯片的位流程序文件(*.bit文件)
对于一些功能模块的编写,尤其是数字电路中的经典模块,可以尝试用真值表写出其表达式来完成对于其的设计。
Xilinx ise 开发流程
1 设计构想
2设计输入(design entry)
(1) schematic capture :以绘图的方式设计电路
(2) 使用VHDL、verilog 、 ABEL等硬件描述语言方式设计电路
(3) State machine 编辑器:使用state CAD 以绘图的形式表现state machine 状态来设计电路
3合成(synthesis)
将不同方式的编辑输入电路的程序合成出其所对应的RTL电路,并将其最优化,以产生EDIF文件(electronic data interchange file),netlist文件。若design entry 采用schematic的方式,则会传换成VHDL之后在执行合成的动作。
4 功能模拟behavioral simulation
用VHDL test bench或verilog test fixture测试信号
5 执行 (implementation)
将经由合成器合成出来的RTL电路转换成制定FPGA芯片内部电路组件,也就是进行FPGA芯片的转换translate 对应map布局place布线router。
6时序模拟(timing simulation)
将时间电路的延时时间加以模拟,也同样是使用Isim/Moldelsim。
7规划(configure)
(1) 执行generation programming file动作:用所设计好的电路产生可以下载到FPGA的位流文件(.bit)
(2) 执行configure target device (iMPACT)命令:将.bit经过JTAG Cable下载至开发板上
注意: 如何解决Isim仿真报错ERROR: Signal Unknown signal received
解决方法:
1. Start> 运行: services.msc
2. Enable "WebClient" only.
3. Return ISE simulation, and rerunSimulation Behavioral Model
4. This error should be minimized.
在modelsim中添加xilinx库
unimacro = F:/ise_modelsim_lab/unimacro
unimacro_ver = F:/ise_modelsim_lab/unimacro_ver
unisim = F:/ise_modelsim_lab/unisim
unisims_ver = F:/ise_modelsim_lab/unisims_ver
secureip = F:/ise_modelsim_lab/secureip
XilinxCoreLib = F:/ise_modelsim_lab/XilinxCoreLib
XilinxCoreLib_ver = F:/ise_modelsim_lab/XilinxCoreLib_ver
simprim = F:/ise_modelsim_lab/simprim
simprim_ver = F:/ise_modelsim_lab/simprim_ver
VHDL中所使用的运算符
表1 设定运算符
信号的设定
<=
变量的设定
=
表2 关系运算符
等于
=
大于
>
小于
<
不等于
/=
大于等于
>=
小于等于
<=
表3 数值移位运算符
ROL
循环左移(原MSB移入LSB)
ROR
循环右移(原LSB移入MSB)
SLL
逻辑左移(0移入LSB)
SRL
逻辑右移(0移入MSB)
SLA
算数左移(原LSB保留)
SRA
算数右移(原MSB保留)
表4 逻辑运算符
假设A、B为输入,Z为输出
AND
与
OR
或
NOT
非
NAND
与非
NOR
或非
XOR
异或
XNOR
同或
表5 算数运算符
+ 加
A+ B
- 减
A - B
* 乘
A.B
/ 除
A/B
** 次方
AB
- 批注
Example
: 声明使用
=>对应
& 串接
Z <= A&B
表6 其他运算符
REM
整数相除取余数
MOD
整数相除取商
-
取2的补码
ABS
取绝对值
VHDL的保留字
VHDL的保留字也是关键词,依器字母顺序排序如下。在使用VHDL的描述时,不能使用保留字为VHDL命名,尤其不能将保留字作为文件的名称,否则在执行模拟(simulate)以及合成(synthesis)时会出现错误。
(1) A
ABS,ACCESS,AFTER,ALIAS,ALL ,AND,ARCHITECTURE,ARRAY,ASSERT,ATTRIBURE,ARRAY
(2) B
BEGIN,BLOCK,BODY,BUFFER,BUS
(3) C
CASE,COMPONENT,CONFIGURATION,CONSTANT
(4) D
DISCONNECT,DOWNTO
(5) E
ELSE,ELSIF,END,ENTITY,EXIT
(6) F
FILE,FOR,FUNCTION
(7) G
GENERATE,GENERIC,GROUP,GUARDED
(8) I
IF,IMPURE,IN,INERTIAL,INOUT,IS
(9) L
LABEL,LINKAGE,LITERAL,LOOP
(10) M
MAP,MOD
(11) N
NAND,NEW,NEXT,NOR,NOT,NULL
(12) O
OF,ON,OPEN,OR,OTHERS,OUT
(13) P
PACKAGE,PORT,POSTPONED,PROCEDURE,PROCESS,PURE
(14) R
RANGE,RECORD,REGISTER,REJECT,REPORT,RETURN,ROL,ROR
(15) S
SELECT,SEVERITY,SIGNAL,SHARED,SLA,SLL,SRA,SRL,SUBTYPE
(16) T
THEN,TO,TRANSPORT,TYPE
(17) U
UNAFFECTED,UNITS,UNTIL,USE,UARIABLE
(18) W
WAIT,WHEN,WHILE,WITH
(19) X
XNOR,XOR
展开阅读全文