EDA技术与VHDL第4章QiartusII使用方法KX康芯科技KX康芯科技4.1QuartusII设计流程1.创建工程准备工作图4-1选择编辑文件KONXINKX康芯科技4.1QuartusII设计流程1.创建工程准备工作图4-2选择编辑文件的语言类型,键入源程序并存盘KX康芯科技4.1QuartusII设计流程2.创建工程图4-3利用“NewPrejectWizard”创建工程cnt10KX康芯科技4.1QuartusII设计流程2.创建工程图4-4将所有相关的文件都加入进此工程KX康芯科技4.1QuartusII设计流程2.创建工程图4-5选择目标器件EP1C6Q240C8KX康芯科技4.1QuartusII设计流程3.编译前设置图4-6选择配置器件的工作方式KX康芯科技4.1QuartusII设计流程3.编译前设置图4-7选择配置器件和编程方式KX康芯科技图4-8全程编译后出现报错信息4.全程编译KX康芯科技4.1QuartusII设计流程图4-9选择编辑矢量波形文件5.时序仿真KX康芯科技4.1QuartusII设计流程图4-10波形编辑器5.时序仿真KX康芯科技4.1QuartusII设计流程图4-11设置仿真时间长度5.时序仿真KX康芯科技4.1QuartusII设计流程图4-12.vwf激励波形文件存盘5.时序仿真KX康芯科技4.1QuartusII设计流程图4-13向波形编辑器拖入信号节点4.1.2创建工程KX康芯科技4.1QuartusII设计流程图4-14设置时钟CLK的周期5.时序仿真KX康芯科技4.1QuartusII设计流程图4-15设置好的激励波形图5.时序仿真KX康芯科技4.1QuartusII设计流程图4-16选择总线数据格式5.时序仿真KX康芯科技4.1QuartusII设计流程图4-17选择仿真控制5.时序仿真KX康芯科技4.1QuartusII设计流程图4-18仿真波形输出5.时序仿真KX康芯科技4.1QuartusII设计流程图4-19选择全时域显示5.时序仿真KX康芯科技4.1QuartusII设计流程图4-20AssignmentEditor编辑器6.观察RTL电路7.引脚锁定和下载KX康芯科技4.1QuartusII设计流程图4-21表格方式引脚锁定对话框图7.引脚锁定和下载KX康芯科技4.1QuartusII设计流程4-22图形方式引脚锁定对话框7.引脚锁定和下载KX康芯科技4.1QuartusII设计流程图4-23选择编程下载文件8.编程下载KX康芯科技4.1QuartusII设计流程图4-24加入编程下载方式8.编程下载KX康芯科技4.1QuartusII设计流程图4-25双击选中的编程方式名8.编程下载KX康芯科技4.1QuartusII设计流程图4-26ByteBlasterII接口AS模式编程窗口9.AS模式编程KX康芯科技4.1QuartusII设计流程图4-27选择目标器件EP1C6Q24010.JTAG间接模式编程KX康芯科技4.1QuartusII设计流程图4-28选定SOF文件后,选择文件压缩10.JTAG间接模式编程KX康芯科技4.1QuartusII设计流程图4-29用JTAG模式对配置器件EPCS1进行间接编程10.JTAG间接模式编程KX康芯科技4.2嵌入式逻辑分析仪图4-30SignalTapII编辑窗1.打开SignalTapII编辑窗KX康芯科技4.2嵌入式逻辑分析仪图4-31SignalTapII编辑窗2.调入待测信号3.SignalTapII参数设置KX康芯科技4.2嵌入式逻辑分析仪图4-32下载cnt10.sof并准备启动SignalTapII4.文件存盘5.编译下载6.启动SignalTapII进行采样与分析KX康芯科技4.2嵌入式逻辑分析仪图4-33SignalTapII数据窗设置后的信号波形6.启动SignalTapII进行采样与分析KX康芯科技4.3编辑SignalTapII的触发信号图4-34选择高级触发条件KX康芯科技4.3编辑SignalTapII的触发信号图4-35进入“触发条件函数编辑”窗口KX康芯科技4.3编辑SignalTapII的触发信号图4-36编辑触发函数KX康芯科技4.4LPM_ROM宏模块应用图4-37正弦信号发生器结构框图4.4.1工作原理KX康芯科技4.4LPM_ROM宏模块应用4.4.2定制初始化数据文件1.建立.mif格式文件【例4-1】WIDTH=8;DEPTH=64;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;CONTENTBEGIN0:FF;1:FE;2:FC;3:F9;4:F5;…(数据略去)3D:FC;3E:FE;3F:FF;END;KX康芯科技4.4LPM_ROM宏模块应用4.4.2定制初始化数据文件1.建立.mif格式文件【例4-2】#includestdio.h#includemath.hmain(){inti;floats;for(i=0;i1024;i++){s=sin(atan(1)*8*i/1024);printf(%d:%d;\n,i,(int)((s+1)*1023/2));}}把上述程序编译成程序后,可在DOS命令行下执行命令:romgensin_rom.mif;KX康芯科技4.4LPM_ROM宏模块应用4.4.2定制初始化数据文件2.建立.hex格式文件图4-38将波形数据填入mif文件表中KX康芯科技4.4LPM_ROM宏模块应用图4-39ASM格式建hex文件KX康芯科技4.4LPM_ROM宏模块应用4.4.2定制初始化数据文件2.建立.hex格式文件图4-40sdata.hex文件的放置路径KX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-41定制新的宏功能块KX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-42LPM宏功能块设定KX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-43选择data_rom模块数据线和地址线宽KX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-44选择地址锁存信号inclockKX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-45调入ROM初始化数据文件并选择在系统读写功能KX康芯科技4.4LPM_ROM宏模块应用4.4.3定制LPM_ROM元件图4-46LPM_ROM设计完成KX康芯科技4.4LPM_ROM宏模块应用【例4-3】LIBRARYieee;USEieee.std_logic_1164.all;LIBRARYaltera_mf;USEaltera_mf.altera_mf_components.all;--使用宏功能库中的所有元件ENTITYdata_romISPORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);inclock:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdata_rom;ARCHITECTURESYNOFdata_romISSIGNALsub_wire0:STD_LOGIC_VECTOR(7DOWNTO0);COMPONENTaltsyncram--例化altsyncram元件,调用了LPM模块altsyncramGENERIC(--参数传递语句intended_device_family:STRING;--类属参量数据类型定义width_a:NATURAL;widthad_a:NATURAL;numwords_a:NATURAL;operation_mode:STRING;outdata_reg_a:STRING;address_aclr_a:STRING;outdata_aclr_a:STRING;width_byteena_a:NATURAL;init_file:STRING;lpm_hint:STRING;lpm_type:STRING);PORT(clock0:INSTD_LOGIC;--altsyncram元件接口声明address_a:INSTD_LOGIC_VECTOR(5DOWNTO0);q_a:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;(接下页)KX康芯科技4.4LPM_ROM宏模块应用BEGINq=sub_wire0(7DOWNTO0);altsyncram_component:altsyncramGENERICMAP(intended_device_family=Cyclone,--参数传递映射width_a=8,--数据线宽度8widthad_a=6,--地址线宽度6numwords_a=64,--数据数量64operation_mode=ROM,--LPM模式ROMoutdata_reg_a=UNREGISTERED,--输出无锁存address_aclr_a=NONE,--无异步地址清0outdata_aclr_a=NONE,--无输出锁存异步清0width_byteena_a=1,--byteena_a输入口宽度1init_file=./dataHEX/SDATA.hex,--ROM初始化数据文件,此处已修改过lpm_hint=ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=NONE,lpm_type=altsyncram)--LPM类型PORTMAP(clock0=inclock,address_a=address,q_a=sub_wire0);ENDSYN;KX康芯科技4.4LPM_ROM宏模块应用4.4.4完成顶层设计【例4-4】正弦信号发生器顶层设计LIBRARYIEEE;--正弦信号发生器源文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSINGTISPORT(CLK:INSTD_LOGIC;--信号源时钟DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位波形数据输出END;ARCHITECTUREDACCOFSINGTISCOMPONENTdata_rom--调用波形数据存储器LPM_ROM文件:data_rom.vhd声明PORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);--6位地址信号inclock:INSTD_LOGIC;--地址锁存时钟q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENT;SIGNALQ1:STD_LOGIC_VECTOR(5DOWNTO0);--设定内部节点作为地址计数器BEGINPROCESS(CLK)--LPM_ROM地址发生器进程BEGINIFCLK'EVENTANDCLK='1'THENQ1=Q1+1;--Q1作为地址发生器计数器ENDIF;ENDPROCESS;u1:data_romPORTMAP(address=Q1,q=DOUT,inclock=CLK);--例化END;KX康芯科技4.4LPM_ROM宏模块应用4.4.4完成顶层设计图4-47仿真波形输出KX康芯科技4.4LPM_ROM宏模块应用4.4.4完成顶层设计图4-48嵌入式逻辑分析仪获得的波形KX康芯科技4.5In-SystemMemoryContentEditor应用图4-49In-SystemMemoryContentEditor编辑窗KX康芯科技4.5In-SystemMemoryContentEditor应用图4-50与实验系统上的FPGA通信正常情况下的编辑窗界面KX康芯科技4.5In-SystemMemoryContentEditor应用图4-51从FPGA中的ROM读取波形数据K