当前位置:首页 >> 能源/化工 >>

XC3S200A


File:XC3S200A_Lab7_DoReMe_Buzzer.doc Lab7: DoReMe_Buzzer.npl [实验说明] : 在这一个范中, 你将利用7个Button做为输入与一个Buzzer蜂鸣器做为输出,来完成一 个简单的DoReMe钢琴,并与此项目所需的UCF 档案,用JTAG接口连接烧录到 MB_XC3S200A_FT256开发板中,验证其设计结果是否正确? [实验目地] : 当你完成整个项目之后,你将学会以下的功能. (1).用ISE9.1i 的软件开启一个 Spartan3A FPGA 的项目. (2).撰写一个简单的VHDL 程序,用语法检查器(Syntax Check)来修正语法 的错误 (3).产生测试模板(Test Pattern) 来辅助你的设计. (4).加入系统所需的Constraints 档案.(UCF file) (5).完成整个设计程.并产生DoReMe_Buzzer.bit 档案 (6).用FPGA Editor 来察看FPGA 内部的结果, (7).用[Impact] 来烧录DoReMe_Buzzer.bit 档案到FPGA. [系统需求]: PC 个人计算机 ISE9.1i 软件 DoReMe_Buzzer.VHD 档案 DoReMe_Buzzer.UCF 档案 Platform Cable USB XC3S200A_FT256开发板 电源供应器(DC5V 输入). [系统设计说明] 基本上,音乐乃是各种频率的音符组成的, 所以我们需要建立各音阶的音谱之频率. 名 主音 第二音 第三音 第四音 第五音 第六音 第七音

Do

Re

Mi

Fa

Sol

La

Si

近似频率 262 (赫兹) 277 294 311 330 349 370 392 415 440 466 494

File:XC3S200A_Lab7_DoReMe_Buzzer.doc [操作步骤]:开启ISE9.1i软件: [程序集] [Xilinx ISE 9.1i] [Project Navigator] . 会出 现ISE9.1i 的画面,画面开启之初, 会出现[Tip of the Day], 可以将之关掉后,出现以下的 画面.

(2).在 ISE9.1 软件环境下,开启一个新的工程: [File] [Project Name] : Lab7_DoReMe_Buzzer

[New Project]

[Project Location]: c: \ Lab7_DoReMe_Buzzer (依使用者设定的目录). [Top-Level Module Type] : HDL( 代表最上层的设计模块是以HDL输出方式的模 组. (3).下一个画面就是设定硬件FPGA的参数 [FPGA系(Device Family)]:Spartan3A(请看板子的FPGA FPGA的编号) [FPGA名称(Device)] : XC3S200A(请参考开发板的FPGA FPGA的编号) [FPGA包装(Package)]:FT256(请参考开发板的FPGA FPGA的编号) [FPGA速等级(Speed)]: -4 ( FPGA 速等级) [综合工具(Synthesis Tool)]:XST VHDL(VHDL综合的种类) [仿真器(Simulator)] : ISE Simulator(ISE9.1 内建的仿真器) [产生仿真器的语言(Generated Simulation Language)] : VHDL (4).下一个画面Create a New Source 先跳过,按[下一步]. 下一个画面Add a Existing Source 亦 跳过,按[下一步]. 此时出现此项目所有设定的信息,需重新设定,则可[上一步]. 无误,则按

File:XC3S200A_Lab7_DoReMe_Buzzer.doc [完成]; (5).此时出现一个项目的架构,可以允许使用者开始进项目的设计. (6).加入新的设计档案: [Project] DoReMe_Buzzer [New Source];选择VDHL Module,并设定文件名称为

(7).用Wizard( 向导),设定此设计的输出输入信号. Clockn : input (频率振荡晶体的输入信号). button :intput (7个按键) buzzer_out :Output(蜂鸣器输出脚) DoReMe_LED:Output(音阶显示)

File:XC3S200A_Lab7_DoReMe_Buzzer.doc (8) 以鼠标双击DoReMe_Buzzer.vhd 之后,在右边的工作区可以看到的档案内容,此时可 以修改或改变设计内容,在修改完成之后,用[File] [Save]来储存档案. 使用内部缓存器设定如下: ========================================================= signal div:std_logic_vector(31 downto 0); signal tow:std_logic_vector(3 downto 0); signal button_1:std_logic_vector(7 downto 0); signal div_freq:std_logic_vector(19 downto 0); signal clkdiv,aw1,sw:std_logic; 音频产生器 ======================================================== process(Clock) begin if sw='0' then aw1<='0';div<=(others=>'0'); elsif rising_edge(Clock) then div<=div+1; if div=div_freq then div<=(others=>'0'); aw1<='1'; else aw1<='0'; end if; end if; end process; process(aw1) begin if rising_edge(aw1)then clkdiv<= not clkdiv; end if; end process;
按键输入对应到音频频率 ========================================================================== process(Clock) begin if rising_edge(Clock) then button_1<=not button;

File:XC3S200A_Lab7_DoReMe_Buzzer.doc
case button_1 is when "00000001"=>tow<="0000"; sw<='1'; when "00000010"=>tow<="0001"; sw<='1'; when "00000100"=>tow<="0010"; sw<='1'; when "00001000"=>tow<="0011"; sw<='1'; when "00010000"=>tow<="0100"; sw<='1'; when "00100000"=>tow<="0101"; sw<='1'; when "01000000"=>tow<="0110"; sw<='1'; when "10000000"=>tow<="0111"; sw<='1'; when others=>tow<="1111"; sw<='0'; end case; case tow is when "0000" => div_freq <= x"12A30"; when "0001" => div_freq <= x"10A6F"; when "0010" => div_freq <= x"0ECBE"; when "0011" => div_freq <= x"0DFDA"; when "0100" => div_freq <= x"0C74C"; when "0101" => div_freq <= x"0B18E"; when "0110" => div_freq <= x"09E26"; when "0111" => div_freq <= x"09517"; when others => div_freq <=x"00000"; end case; end if; end process; DoReMe_LED<=button_1; buzzer_out<=clkdiv; --Do --Re --Mi -- Fa --Sol --La --Si --Do

(9). 第一次进编译的工作,以确认设计的正确性与否? 在[Project ]的窗口中,直接以鼠标双击Generate Programming File 的选项. 此时ISE9.1 会自动执并产生可以Download 的.bit 档案,此步骤是最直接验证设计工 作的正确性与否? 在每一个程序都出现打勾,代表O.K. 有一个程序都出现打叉[X]的符号,代表有错误,可以依显示结果来侦错.

File:XC3S200A_Lab7_DoReMe_Buzzer.doc

(10). 再来需设定I/O 脚的位置,可以用DoReMe_Buzzer.UCF 来设定I/O 脚的位置,以得 到正确的输出档案. [Project] [New Source]. 设定输入的档案格式为[Implementation Constraints File] 文件名称为DoReMe_Buzzer (自动储存为DoReMe_Buzzer.UCF) (11).点选[Source in Project]窗口内的DoReMe_Buzzer.ucf,用Assign Package Pins 中的 [LOC] 之接输入输出脚的脚位,也可以利用鼠标点选信号后,以鼠标拖曳到右边的 脚位上即可,输入后储存档案.(相关脚位定义请参考使用手册得知). NET "button<0>" LOC = K12; NET "button<1>" LOC = K11; NET "button<2>" LOC = J11; NET "button<3>" LOC = J10; NET "button<4>" LOC = G12; NET "button<5>" LOC = H11; NET "button<6>" LOC = H10; NET "button<7>" LOC = G11; NET "buzzer_out" LOC = T2; NET "Clock" LOC = P9; NET "DoReMe_LED<0>" LOC = J14; NET "DoReMe_LED<1>" LOC = H14; NET "DoReMe_LED<2>" LOC = K16; NET "DoReMe_LED<3>" LOC = J16; NET "DoReMe_LED<4>" LOC = K15; NET "DoReMe_LED<5>" LOC = K14; NET "DoReMe_LED<6>" LOC = J12;

File:XC3S200A_Lab7_DoReMe_Buzzer.doc NET "DoReMe_LED<7>" LOC = J13; (12). 重新执行 Generate Programming File, 确认设计无误 (13) 想要知道 FPGA 最后实现在芯片内的状况,则可以[Project View] 窗口内的 [Implement Design] [Place and Route] [View/Edit Routed Design(FPGA Editor)] 来 查看其最后实现在 FPGA 内部的状况. (14) 在[Process for Source]窗口中,点选[View Design Summary], 可以浏览项目设计的报 告, 包含 FPGA 使用,Report ….. (15).在完成设计验证之后,就可以将 DoReMe_Buzzer.bit 写入到 FPGA 内部,此时点选 [Project View] 窗口内的[Generate Programming File] [Configure Device (iMPACT) ], 出现 Impact 的窗口.选取[Finish],进入自动联机,请事先连接 JTAG 接口与供应板子电压. (16) 此时JTAG Cable 会扫描JTAG Chain 的径中的FPGA FPGA,扫描成功则出现 所扫描的FPGA,并跳出选择档案的窗口. 选择档案之后,出现警告的窗口,按[确定],进入下一步.

(17)此时出现的窗口,则表示出 XC3S200A 的待烧录档案为 DoReMe_Buzzer.bit.以鼠标 点选 FPGA 会变为绿色,同时出现[Program Options] 窗口,按[OK] 开始烧录.

(18)FPGA 烧录成功,则出现 Programming Succeeded programming 成功

File:XC3S200A_Lab7_DoReMe_Buzzer.doc (19)我们可以在 MB_XC3S200A_FT256 开发板上按下 Button,可从 Buzzer 听到不同音阶 的声音,证明设计无误.


相关文章:
BG系列
FPGA: XC3S200A 扩展功能:J1/abc12~18 8位数据总线、 8位地址总线、 2个片选信号、 2个中断信号、 读写控制信号。 9个按键 4路3.3V输入 4路3.3V输出 9...
XC3S200A_Lab10_RS232
XC3S200A_Lab10_RS232_信息与通信_工程科技_专业资料。XC3S200A_Lab10_RS232File:XC3S200A_Lab10_RS232.doc Lab10:RS232.npl [实验说明] : 在这一个...
XC3S200A_Lab6_Watch
File:XC3S200A_Lab6_Watch.doc (18)此时出现的窗口,则表示出 XC3S200A 的待烧录档案为 Watch_Mixed.bit.以鼠 标点选 FPGA FPGA,FPGA 会变为绿色,同时...
XC3S200A_Lab3_LED
XC3S200A_Lab3_LEDXC3S200A_Lab3_LED隐藏>> File:XC3S200A_Lab3_LED.doc Lab3:LED.npl [实验说明] : 使用ISE9.1i设计LED跑马灯的VHDL语法与操作说明...
XC3S200A_Lab4_DCM
XC3S200A_Lab4_DCM_信息与通信_工程科技_专业资料。XC3S200A_Lab4_DCMFile:XC3S200A_Lab4_DCM.doc Lab4:DCM.npl [实验说明] : 在这一个范中,你将...
XC3S200A_Lab2_Counter_VHDL
XC3S200A_Lab2_Counter_VHDL_信息与通信_工程科技_专业资料。XC3S200A_Lab2_Counter_VHDLFile:XC3S200A_Lab2_Counter_vhdl.doc Lab2:Counter.npl [实验说...
XC3S200A_Lab5_7segment
XC3S200A_Lab5_7segment_信息与通信_工程科技_专业资料。XC3S200A_Lab5_7segmentFile:XC3S200A_Lab5_7segment.doc Lab5:7segment.npl [实验说明] : 在...
XC3S200A_Lab1_Counter4_VHDL
File:XC3S200A_Lab1_Counter4_VHDL.doc Lab1:Counter4.npl [实验说明] : 使用ISE9.1i设计Counter4的VHDL语法与操作说明在这一个范 中,你将开启一个counter...
XC3S200A_Lab8_keyboard
XC3S200A_Lab8_keyboard_信息与通信_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 XC3S200A_Lab8_keyboard_信息与通信_工程科技_专业资料。XC3S...
电子技术综合实验试题2
(30 分) 6、 管脚适配 7、 文件编程 (10 分) (10 分) 8、 下载实现与测试 (10 分) 开发板信息如下: (1) 器件型号为:xc3s200a-4ft256 (2) ...
更多相关标签: