信号与信息处理综合实验FPGA部分指导书lab1Word文档下载推荐.docx
- 文档编号:17253856
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:23
- 大小:885.35KB
信号与信息处理综合实验FPGA部分指导书lab1Word文档下载推荐.docx
《信号与信息处理综合实验FPGA部分指导书lab1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信号与信息处理综合实验FPGA部分指导书lab1Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
其中,Flash芯片使用了32Mb的SPIFlashM25P32,容量大,也适合于嵌入式系统开发。
系统时钟由外部晶振给入,频率为50MHz。
2S6CARD开发板驱动电路
1、LED驱动电路
LED是最基本的电路组件,给高电平就发光,且发光的程序和驱动电流有关。
板卡的LED电路如图3所示。
图3S6CARDLED电路
2、按键和拨码开关电路
LED、按键以及拨码开关本质上属于同一类设备,LED为输出设备,而按键和拨码开关属于输入设备。
按键为瞬时输入设备,仅在按下时维持一个固定输入,松开则返回到固定的逻辑相反状态。
S6CARD的按键电路如图4所示,按键按下时,FPGA相应管脚为低电平。
图4S6CARD按键电路
拨码开关为长时固定状态输入,拨到那个状态就一直维持该状态的输入。
S6CARD的拨码开关电路如图5所示,拨码到“ON”时,FPGA相应管脚为0,否则为1。
图5S6CARD拨码开关电路
3、UART驱动电路
S6板卡配置了UART232的“公头”接口,相应的电路如图6所示。
图6S6CARDUART232电路
4、扩展管脚电路
最后,S6CARD板卡预留了20个扩展接口,其中2个电源、2个地,16个通用数据线,具体如图7所示。
图7S6CARD扩展I/O电路
3S6CARD板卡管脚约束说明
为了便于自行练习,下面给出S6CARD板卡上所涉及管脚的UCF约束。
##
NET"
sys_clk_50MHz"
LOC="
P56"
|IOSTANDARD=LVCMOS33;
button_1"
P92"
|IOSTANDARD=LVTTL|PULLDOWN;
button_2"
P93"
LED<
7>
"
P88"
|IOSTANDARD=LVTTL|SLEW=SLOW|DRIVE=8;
6>
P87"
5>
P85"
4>
P84"
3>
P83"
2>
P82"
1>
P81"
0>
P80"
rxd"
P126"
|IOSTANDARD=LVTTL;
txd"
P127"
|IOSTANDARD=LVTTL|DRIVE=8|SLEW=SLOW;
Switch<
P120"
Switch<
P119"
P118"
P117"
P116"
P115"
P114"
P112"
(二)熟悉ISE集成开发环境
ISE软件是Xilinx公司推出的FPGA/CPLD集成开发环境,不仅包括逻辑设计所需的一切,还具有大量简便易用的内置式工具和向导,使得I/O分配、功耗分析、HDL仿真等步骤变得容易而直观。
ISE的主要功能包括设计输入、综合、仿真、实现、下载和在线调试,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。
ISE提供的设计输入工具包括:
用于HDL代码输入和查看报告的ISE文本编辑器(ISETextEditor)用于原理图编辑的工具ECS(TheEngineeringCaptureSystem)和用于生成IPCore的CoreGenerator。
ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的LeonardoSpectrum和Synopsys(Synplicity)公司的Synplify,实现无缝链接。
ISE支持的仿真工具包括Xilinx自主开发的ISESimulator,并提供了使用MentorGraphics(ModelTech)公司的Modelsim进行仿真的接口。
ISE的设计实现功能包括了翻译、映射、布局布线等核心功能,还具备时序分析、增量设计、功耗估计、管脚分配与面积约束等高级功能。
下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还可以根据需要产生JTAG或PROM下载方式所需要的其他文件,并通过调用iMPAC与实验板上的FPGA芯片或PROM进行通信,控制将程序烧写到FPGA芯片或PROM中去。
ISE将工程分为Implementation和Simulation两个视图,在Implementation视图下完成添加约束、逻辑综合和布局布线等工作;
在Simulation视图下可以通过选择框选择仿真类型,调用ISim或Modelsim完成功能仿真和时序仿真。
ISE集成开发环境
(三)3比特加法器仿真与上板实验
打开ISE软件,按以下步骤新建一个工程。
点击newproject;
设定工作目录和工程名;
设定FPGA型号为Spartan-6XC6LX9,封装类型为TQG144,速率等级为2;
综合工具选择XST,仿真工具选择Modelsim-SEVerilog,PreferredLanguage选择Verilog。
点击finish创建工程完成。
右键点击空白区域,选择NewSource选项,打开如下窗口:
在左侧选择VerilogModule,在右侧输入文件名,如:
adder_3.,点击Next,得到下图。
如图中所示选择两个三比特输入、一个3比特输出和一个一比特输出,点击Next,然后点击Finish。
工具自动产生模块头和endmodule。
在其中输入一行代码:
assign{cout,sum}=a+b;
按ctrl+s保存程序。
再次选择NewSource,在左侧窗口中选择VerilogTestFixture.
输入测试module名字,并点击Next得到下图所示界面,此处自动将测试文件与adder_3module绑定。
点击Next,点击Finish。
在屏幕左上方找到:
选择Simulation。
双击test_adder,右侧窗口中显示测试文件内容,仔细阅读测试文件框架,找出添加测试激励的位置,设定a、b的值,延迟一定时间后,为改变a、b的值,按这种方法设定4组以上a、b的输入。
在右下方找到SimulateBehavioralModel,双击该行,并记录仿真结果,注意使用Modelsim波形窗口中的
按钮。
练习使用下图中的这些按钮,进行仿真控制。
在ISE集成开发环境左上方找到此组合框,并选择Post-Route。
观察下面窗口中uut的变化。
双击
启动后仿真,观察屏幕下方Console中出现的信息,分析工具的工作过程,观察modelsim启动后的仿真结果,比较它与BehavioralSimulation仿真结果的不同点,并分析其出现原因。
切换回Implementation选项。
图中的绿色图标表示在执行后仿真时已经完成综合与实现过程。
用USB连接线将电路板连接到PC的USB口,并按提示自动安装驱动程序。
再次选择NewSource,选择新建一个ImplementationConstraintsFile选项,输入一个文件名,点击下一步,点击Next。
双击
打开一个空白的UCF文件,将以下内容复制到文件中。
cout"
IOSTANDARD=LVTTL;
SLEW=SLOW;
DRIVE=8;
LOC=P88;
sum[2]"
LOC=P87;
sum[1]"
LOC=P85;
sum[0]"
LOC=P84;
a[2]"
a[1]"
a[0]"
b[2]"
b[1]"
b[0]"
注意此处a,b,sum和cout应与自己所设的输入输出信号名一致。
保存约束文件后在Hierarchy中的.v文件,此时下面的processes窗口中的implementDesign前面显示的图标为“?
”,说明这一过程需重新执行。
双击implementDesign实现设计。
双击GenerateProgrammingFile,完成后在相应文件夹下找到.bit文件。
在此处双击ManageConfigurationProject打开以下窗口
双击左侧的BoundaryScan,然后点击工具栏中的
按钮,得到以下界面
选择Yes,并选择刚刚生成的bit文件作为该FPGA的下载文件,在下面提示窗口出现时选择No,然后点击OK。
右键点击
,并选择program,如提示
则说明下载成功。
在本实验中,我们以板子上拨码开关的6、7、8和1、2、3分别作为加法器的输入,靠近USB接口D1-D4LED灯分别表示cout和sum,拨动拨码开关,观察LED的变化。
(四)m序列产生器仿真与在板Chipscope调试
按上述过程产生如下m序列产生的设计文件
modulem_seq_gen(
inputclk,
inputreset,
outputseq
);
reg[3:
0]state;
always@(posedgeclkornegedgereset)
begin
if(!
reset)
state<
=4'
b1111;
else
begin
state[3:
1]<
=state[2:
0];
state[0]<
=^(state&
4'
b1001);
end
end
assignseq=state[0];
endmodule
并产生与之相对应的测试文件
moduletest_m;
//Inputs
regclk;
regreset;
//Outputs
wireseq;
//InstantiatetheUnitUnderTest(UUT)
m_seq_genuut(
.clk(clk),
.reset(reset),
.seq(seq)
initialbegin
//InitializeInputs
clk=0;
reset=0;
//Wait100nsforglobalresettofinish
#100;
#50reset=1;
//Addstimulushere
always#10clk=~clk;
endmodule
对其进行功能仿真,记录仿真波形并分析该电路的执行过程。
添加约束文件,内容如下:
clk"
|IOSTANDARD=LVCMOS33;
reset"
seq"
TNM_NET=clk;
TIMESPECTS_clk=PERIOD"
20nsHIGH50%;
再次选择NewSource,选择chipscopeDefinitionandconnectionfile
建立名为mseq的cdc文件。
双击mseq.cdc,打开如下图所示界面,
开始配置ILA的Triggerparameters,修改其位宽为1.
Captureparameters选项中,去掉datasameastrigger选项,修改位宽为5。
继续点Next按钮得到下图。
点击Modifyconnections按钮,开始设置时钟信号、触发信号和数据信号。
至此,Chipscope的CoreInserter配置完成,产生了一个ILA用于在线监测state和reset等内部信号。
选中主顶层模块,在processes列表的最下边找到AnalyzeDesignUsingChipscope项并双击,工具链自动调用实现过程并产生比特文件,然后打开如下图所示的窗口。
点击左上角的
按钮,建立JTAG链,在弹出的窗口上单击OK,得到如图所示的界面
右键点击DEV:
0MyDevice0(XC6LX9),选择Configure,选择比特文件,点击OK。
在左侧的窗口下找到waveform选项并双击,观察被测信号波形,并与仿真结果进行比较。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 信息处理 综合 实验 FPGA 部分 指导书 lab1