版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、片上可编程系统描述规范何宾2012.02本章内容 本章主要介绍sopc描述规范。其中包括: (1)黑盒定义文件; (2) 微处理驱动定义文件; (3) 微处理器硬件规范文件; (4) 微处理器外设定义文件; (5) 微处理器软件规范文件; (6) 微处理器库定义文件; (7) 外设分析命令文件; (8) xilinx板描述文件等内容;sopc描述文件规范 edk工具运行在数据流驱动行为模式。edk工具存在不同的数据文件来捕获数据,比如不同的ip,驱动和软件库。文件也用来捕获设计系统的软件和硬件信息。这些是ascii文件。 这些数据格式被称为平台规范格式(platform specificati
2、on format,psf)。 下面简要说明这些文件及其功能.sopc描述规范 1)黑盒定义(blace box defination,bbd)文件管理被优化的硬件网表的文件位置,这些文件用于设计者所设计外设的黑盒部分。 2)微处理器驱动定义(microprocessor driver defination,mdd)文件包含定制软件驱动的指令。 3)微处理器硬件规范(microprocessor hardware specification,mhs)文件定义了硬件元件。提供的mhs文件作为platgen工具的输入。 4)微处理器外设定义(microprocessor peripheral de
3、fination,mpd)文件定义了外设的接口sopc描述规范 5)微处理器软件规范(microprocessor software spectification,mss)文件作为输入到libgen的输入。mss文件包含了定制库,驱动和文件系统的指令 6)微处理器库定义(microprocessor library defination)文件包含了指定软件库和操作系统得指令 7)外设分析命令(peripheral analyze order,pao)文件包含了hdl的列表文件,这些文件需要用于综合和为编译定义分析指令 8)xilinx板描述(xilinx board description,x
4、bd)文件包含了出现在板上的逻辑接口的定义和连接到fpga的方式。微处理器硬件规范微处理器硬件规范(mhs)的语法规范 (1) mhs文件语法对大小写敏感。 (2) mhs的参数,元件,实例和信号名字必须是hdl语言。必 须遵守hdl语言的语法规范。 (3) mhs文件的注释部分以#开头。 (4) mhs的元件以begin peripheral_name开头,以end结束。 (5) 使用command name=value分配命令。这里有三种分配命令: bus_interface,parameter,port。微处理器硬件规范总线接口 总线接口是有关联的互联信号的群。总线接口有下面几种: (1
5、) sdcr:从dcr接口; (2) slmb:从lmb接口; (3) mplb:主plb接口; (4) msplb:主从plb接口; (5) splb:从plb接口; (6) s_axi:从axi接口; (7) m_axi:主axi接口; (8) 使用position关键字来设置总线接口在总线上的位置。例如使用它定义主设备请求的优先级,或者dcr从设备级别。 bus_interface plb=plb_bus_inst,position=n微处理器硬件规范 3. 全局参数 全局参数在begin-end块外定义。比如:版本参数是全局参数。 4. 本地参数 本地参数在begin-end块内定义,
6、比如: hw_ver,instance参数。微处理器硬件规范 5. 全局端口 全局端口在begin-end块外,可以有下面的关键字: (1) buffer_type:缓冲区类型 port clk=“”, dir=i, buffer_type=ibuf (2) clk_freq:时钟频率 port sys_clk = sys_clk, dir=in, sigis=clk, clk_freq=100000000微处理器硬件规范 (3) differential_polarity:差分属性 port data_p=data, dir=i, differential_polarity=p port d
7、ata_n=data, dir=i, differential_polarity=n (4) dir:方向 (5) rst_polarity:复位极性 port sys_rst = sys_rst, dir=in, sigis=rst, rst_polarity=1微处理器硬件规范 (6) sensitivity:敏感性(中断) port intr1 = intr_1, dir=in, sensitivity=edge_rising, sigis=interrupt (7) sigis:信号类 port mysig=” “,dir=o,sigis=value,value可以是clk, inte
8、rrupt,rst。 (8) vec:信号的宽度 port const2 = 0 xc, dir=output, vec=0:3 微处理器硬件规范 6. 本地端口 本地端口在begin-end块内,没有关键字。 1)定义存储器的大小(必须是2*n) parameter c_highaddr=0 xffff00ff parameter c_baseaddr=0 xffff0000 2)电源信号(net_gnd/net_vcc) port mysignal=power_signal,power_signal或者是net_vcc或 net_gnd 3)无连接的端口 无连接的输出端口分配为开(open
9、),无连接的输入端口设 置为gnd或vcc。微处理器硬件规范 4)常数的分配 port mysignal=0b1010_0101 5)并置 port a=a,dir=input port b=b,dir=input,vec1:0 port c=c,dir=input port d=d,dir=input,vec0:3 port y=a & b & c & d,dir=output,vec0:7 默认情况,所有在begin-end块内定义的是内部信号。外部信号通过顶层模块的端口声明可用。在begin-end模块外使用port命令来声明外部信号。 对于内部的中断,每个可中断
10、的,外设实例定义本地中断信号. 对于外部的中断,在begin-end模块外部使用port命令来声明外部信号和定义中断的敏感性。 例如: port my_int1=my_int1,level=high,dir=i 下面给出一个下面给出一个mhs文件的例子,请按照前面所介绍的内容,对文件的例子,请按照前面所介绍的内容,对该该mhs文件进行分析和讨论。文件进行分析和讨论。# parametersparameter version = 2.1.0# global ports# assign power signalsport vcc_out = net_vcc, dir=outputport gnd_
11、out = net_gnd, dir=outport gnd_out6 = net_gnd, dir=output, vec=0:5port intr1 = intr_1, dir=in, sensitivity=edge_rising, sigis=interruptport intr2 = intr2, dir=input, sensitivity=level_high, sigis=interrupt# assign constant signalsport const1 = 0b1010, dir=output, vec=0:3port const2 = 0 xc, dir=outpu
12、t, vec=0:3port sys_rst = sys_rst, dir=inport sys_clk = sys_clk, dir=in, sigis=clk, clk_freq=100000000port gpio_io = gpio_io, dir=inout, vec=0:31# sub components#begin lmb_v10parameter instance = ilmb_v10parameter hw_ver = 1.00.aport lmb_clk = sys_clkport sys_rst = sys_rstend#begin lmb_v10parameter i
13、nstance = dlmb_v10parameter hw_ver = 1.00.aport lmb_clk = sys_clkport sys_rst = sys_rstend#begin opb_v20parameter instance = myopb_busparameter hw_ver = 1.10.cparameter c_proc_intrfce = 0port opb_clk = sys_clkport sys_rst = sys_rstendbegin opb_gpioparameter instance = mygpioparameter hw_ver = 1.00.a
14、parameter c_gpio_width = 32parameter c_baseaddr = 0 xffff0100parameter c_highaddr = 0 xffff01ffport gpio_io = gpio_iobus_interface sopb = myopb_busend#begin bram_blockparameter instance = bram1parameter hw_ver = 1.00.abus_interface porta = ilmb1_portabus_interface portb = dlmb1_portbend#begin lmb_br
15、am_if_cntlrparameter instance = my_ilmb_cntlr1parameter hw_ver = 1.00.bparameter c_baseaddr = 0 x00000000parameter c_highaddr = 0 x00000fffbus_interface slmb = ilmb_v10bus_interface bram_port = ilmb1_portaend#begin lmb_bram_if_cntlrparameter instance = my_dlmb_cntlr1parameter hw_ver = 1.00.bparamete
16、r c_baseaddr = 0 x00000000parameter c_highaddr = 0 x00000fffbus_interface slmb = dlmb_v10 bus_interface bram_port = dlmb1_portbend#begin microblazeparameter instance = mblazeparameter hw_ver = 4.00.abus_interface dlmb = dlmb_v10bus_interface ilmb = ilmb_v10bus_interface dopb = myopb_busport interrup
17、t = mblaze_intrendaxi系统的mhs规范 理论上axi主设备和axi从设备可以直接连接,但是xps软件工具要求在它们之间例化一个axi互联模块。图给出了一个axi互联的结构。axi系统的mhs规范图图6.1 axi互联结构互联结构axi系统的mhs规范 下面给出这个互联系统的下面给出这个互联系统的mhs文件:文件: begin microblaze parameter instance = mb_0 parameter hw_ver = 8.00.a parameter c_interconnect = 2 parameter c_interconnect_m_axi_dp_
18、aw_register = 1 bus_interface m_axi_dp = axi_0 port mb_reset = mb_reset end begin microblaze parameter instance = mb_1 parameter hw_ver = 8.00.a parameter c_interconnect = 2 parameter c_interconnect_m_axi_dc_aw_register = 1 parameter c_interconnect_m_axi_ic_aw_register = 1 bus_interface m_axi_dp = a
19、xi_0 bus_interface m_axi_dc = axi_1 bus_interface m_axi_ic = axi_1 port clk = sys_clk_s port mb_reset = mb_reset endaxi系统的mhs规范begin axi_interconnectparameter instance = axi_0parameter hw_ver = 1.00.aparameter c_interconnect_data_width = 256port interconnect_aclk = sys_clk_sport interconnect_aresetn
20、 = sys_bus_reset_nendbegin axi_interconnectparameter instance = axi_1parameter hw_ver = 1.00.aport interconnect_aclk = sys_clk_sport interconnect_aresetn = sys_bus_reset_nendbegin axi_gpioparameter instance = axi_gpio_0parameter hw_ver = 1.00.aparameter c_interconnect_s_axi_masters = mb_0.m_axi_dp &
21、amp;mb_1.m_axi_dpparameter c_baseaddr = 0 x81440000parameter c_highaddr = 0 x8144ffffbus_interface s_axi = axi_0port gpio_io_o = fpga_0_leds_positions_gpio_io_pinport s_axi_aclk = sys_clk_sendaxi系统的mhs规范begin axi_v6_ddrxparameter instance = axi_v6_ddrx_0parameter hw_ver = 1.00.aparameter c_interconn
22、ect_s_axi_masters = mb_1.m_axi_dc &mb_1.m_axi_icparameter c_baseaddr = 0 x40000000parameter c_highaddr = 0 x5fffffffbus_interface s_axi = axi_1port clk = sys_clk_sendaxi系统的mhs规范begin axi_emcparameter instance = axi_emc_0parameter hw_ver = 1.00.aparameter c_interconnect_s_axi_masters = mb_1.m_axi
23、_dcparameter c_s_axi_mem0_baseaddr = 0 x60000000parameter c_s_axi_mem0_highaddr = 0 x61ffffffbus_interface s_axi = axi_0port s_axi_aclk = sys_clk_sendbegin chipscope_axi_monitorparameter instance = monitor_1parameter hw_ver = 1.00.abus_interface mon_axi = mb_1.m_axi_icendaxi系统的mhs规范 axi互联系统的mhs和plb系
24、统的mhs文件类似。但是有主要的三个区别: 1master参数 axi互联ip是一个交叉开关,这就是说,不是所有的主设备连接到所有的从设备。因此就需要有一种机制,能区分出主设备能访问哪些连接到交叉开关的从设备。通过使用参数 c_interconnect_masters来标识。例如上面的mhs文件中axi_gpio_0 ip的参数: c_interconnect_s_axi_masters 表示mb_0 和mb_1的m_axi_dp接口能访问它。&符号分别列出了主接口。axi系统的mhs规范 2interconnect参数 注意在mhs文件中microblaze处理的两个例化mb_0和m
25、b_1中的一些参数,并不出现在microblaze核的mpd文件中。这些参数以c_interconnect_前缀开头。例如: parameter c_interconnect_m_axi_dc_aw_register = 1 回忆前面所介绍的本地参数部分,提到了没有出现在mpd的参数也不能出现在mhs文件中(除了instance和hw_ver参数)。但是,axi系统是个例外,这是由于一些互联相关的设置被端点(主和从设备)ip接口捕获作为interconnect参数。这些参数并不出现在端点设备ip的mpd文件中。然而,在mhs文件中是允许的,就如同它们出现在ip的mpd文件中。在mpd部分会详细
26、说明这些参数。axi系统的mhs规范 3时钟连接 axi系统和plb系统的不同在于,时钟端口必须明确的连接到设计中所有的ip(除了监视点和axi-axi连接器,工具自动的时钟连接)。 不象plb系统,监视核监视整个的总线,axi监视核只监视单个的接口。 begin chipscope_axi_monitor parameter instance = monitor_1 parameter hw_ver = 1.00.a bus_interface mon_axi = mb_1.m_axi_ic endaxi系统的mhs规范 当需要级连axi互联时,就需要使用axi-axi互联器,图6.2给出了
27、一种axi-axi的结构。图图6.2一种一种axi-axi的结构的结构axi系统的mhs规范 begin axi2axi_connector parameter instance = axi2axi_0 parameter hw_ver = 1.00.a parameter c_interconnect_s_axi_masters = mb_0.m_axi_dp parameter c_s_axi_baseaddr = 0 x81440000 parameter c_s_axi_highaddr = 0 x8144ffff bus_interface s_axi = axi_0 bus_int
28、erface m_axi = axi_1 endaxi系统的mhs规范 begin axi_gpio parameter instance = axi_gpio_1 parameter hw_ver = 1.00.a parameter c_interconnect_s_axi_masters = axi2axi_0.m_axi parameter c_baseaddr = 0 x81440000 parameter c_highaddr = 0 x8144ffff bus_interface s_axi = axi_1 port s_axi_aclk = sys_clk_s end axi-
29、axi连接核通过参数c_interconnect_s_axi_masters,标识了能访问它的主设备。同时也给出了它所包含的所有从设备的地址范围。 微处理器外设规范mpd文件定义了外设接口。一个mpd文件具有下面的特点: 1) 列出总线接口端口和默认连接; 2) 列出参数和默认值; 3) 任何与mhs分配相同的参数都被覆盖;mpd语法 微处理器外设规范(mpd)的语法规范主要包含: (1)mpd文件对大小写敏感; (2)mpd的参数或者信号名字必须和hdl语言兼容; (3)mpd由ip的供应商提供,并且提供外设的信息。 (4)mpd文件的注释部分以#开头; (5)mpd的元件以begin pe
30、ripheral_name开头,以end结束; (6)使用command name=value分配命令。mpd语法 mpd中的分配命令包含:(1)bus_interface(2)io_interface(3)option(4)parameter(5)port 总线接口 总线接口关键字的关键字包含: (1)bus:总线 bus_interface bus=bus_label, bus_std=bus_std, bus_type=bus_type (2)bus_std:总线标准 取值有:dcr,lmb,plb ,fsl,axi (3)bus_type:总线类型 对于中心连接的总线,其有效值为mas
31、ter,slave, monitor; 对于点对点的总线连接,有效地值为initiator, target;总线接口 (4)exclude_busif:总线连接 定义了所有的bus_interface连接(当其它bus_interface连接出现时)。例如,如果一个ip定义了两个接口:主/从或从接口,只有一个接口能用来连接ip。 bus_interface bus=msplb, bus_std=plb, bus_type=master_slave, exclude_busif=splb bus_interface bus=splb, bus_std=plb, bus_type=slave, e
32、xclude_busif=msplb总线接口 (5)generate_bursts 指定非桥的主设备产生的burst。只能用于 bus_type=master的bus_interface。 bus_interface bus = mplb, bus_std = plbv46, bus_type = master, generate_bursts = false|true总线接口 (6)isvalid:有效性 定义了bus_interface对于表达式的有效性。如果为真,bus_interface包含在列表中,否则不包括。 bus_interface bus = splb0, bus_std =
33、 plbv46, bus_type = slave, isvalid= (c_num_ports 0 & c_pim0_basetype = 2)总线接口 (7)shares_addr:共享总线 定义了所有的bus_interface地址空间区域,这些区域需要检查空间不能冲突。 bus_interface bus=dopb, bus_std=opb, bus_type=master, shares_addr=dlmb bus_interface bus=iopb, bus_std=opb, bus_type=master, shares_addr=ilmb bus_interface
34、bus=dlmb, bus_std=lmb, bus_type=master, shares_addr=dopb bus_interface bus=ilmb, bus_std=lmb, bus_type=master, shares_addr=iopb-io接口 io_interface定义了ip和一些外部片外的外设的接口。 每个io接口相关是那些端口的集合,这些端口在bsb中定义为系统的顶层端口和bsb所表示的外部设备的参数集。 在mpd文件中,可以通过分配一个唯一的io_if名字和io类型来定义io_interface,通过添加io_is标记到端口和参数,就可以定义和io_interfa
35、ce相关的端口和参数。-io接口 io_if和io_type为io接口的关键字。 1)io_if为唯一的用户定义的标号。所有在mpd文件中声明的 端口和参数,通过使用相同的io_if的值与io_interface 相关联。 2)io_type指明了io的类型。 可用的io_type有: xil_ddr_v1, xil_emc_v1, xil_ethernet_v1, xil_gpio_v1, xil_iic_v1, xil_pci_arbiter_v1, xil_pci32_v1, xil_ sdram _v1, xil_spi_v1, xil_sysace_v1, xil_uart_v1 选
36、项 选项option定义了工具的指令。选项的关键字有: 1)alert ip核的警告消息,例如:option alart=”this belongs to xilinx” 2)arch_ support_map 映射的关键是结构名称。结构名由c_family和c_subfamily构成。可选的arch_support_map的值有:perfered,available, beta ,deprecated ,development, early_access ,obsolete。 option arch_support_map = (virtex2p = preferred, others =
37、available) option arch_support_map = (others = development)选项(3)bus_std:总线标准。option bus_std=value,可用的值为:dcr,dsocm,fsl,isocm,lmb,opb,plbv46(plb)。也可定义自己的总线标准。(4)clk_freq_ratios 时钟频率比率。该选项指定了一个ip核时钟之间允许的比率。它的值是逗号分割,名字-值成对。每一对名字命名: option clk_freq_ratios=(p1/p2=(n1/d2,n2:n3/d2,n4/d3:d4,n5),(p1,p2)/p3=(n
38、6,n7:n8/d5:n6)其中,p1,p2,p3为的ip时钟端口。n是分子,d是分母。选项(5)core_state 该选项说明当前核的状态。例如:option core_state=active。可选的值有: active,deprecated,development, obsolete。这些值的说明见前面的说明(6)desc 该关键字允许在gui工具上显示核的简短描述。例如: option desc=“xps gpio” (7)hdl 指明了ip的hdl语言的可用性。可选的值:both, mixed,verilog,vhdl。选项 (8)imp_netlist 该关键字引导平台生成器写一
39、个用于外设的实现网表文件(ngc)。设计者必须提供一个机制去综合设计者设计的ip。可选值:true或者false。 (9)ip_group 该关键字定义了ip核的群分类。 option ip_group=ipgroup_label。 (10)iplevel_drc_proc 该关键字定义了tcl入口点为ip级drc例程。drc只基于ip级设置。例如: option iplevel_drc_proc=proc_name 选项 (11)iptype 定义元件的类型。例如:option iptype=peripheral。可选的值:bus,peripheral,processor。 (12)last
40、_updated 表示ip最后升级的版本,例如9.2。 (13)long_desc 该关键字允许在gui工具上显示ip核的长的描述。 (14)max_masters 这些标为iptype=bus的ip核所允许最大主设备的数目。 (15)max_slave 这些标为iptype=bus的ip核所允许最大从设备的数目。选项 (16) pay_core_map 说明核是免费的还是需要购买的。 (17)platgen_syslevel_update_proc 定义了系统级更新例程tcl入口点。平台生成器完成了插入mpd和mhs描述后运行该程序。在tcl中使用它用来产生ucf入口。更新只限于系统级的设计
41、。选项 (18)run_ngcbuild 引导平台生成器执行指令ngcbuild将多个硬件网表插入到单个的可使用的硬件网表。要求在产生的网表中包含ucf文件。在platgen实现的流程为: 运行tcl产生ip水平的ucf文件 运行xst从pao文件内的hdl产生网表 运行ncgbuild创建新的ip级的网表,该网表从前面的两个的输出产生。当tcl产生约束或者使用edk_generatecore,这个选项有效选项 (19)special 这个关键字只用作内部使用,定义了元件的类。 (20)style 定义了外设的设计的组成。 如果只有优化硬件网表,必须在mpd文件指定blackbox值。在这种情
42、况下,只有bbd文件被edk工具读取; 如果有混合的优化网表和hdl文件,必须在mpd文件指定mix值。在这种情况下,只有pao文件和bbd文件被edk工具读取; 如果只有hdl文件,必须在mpd文件指定hdl值。在这种情况下,只有pao文件被edk工具读取。 选项 (21)syslevel_drc_proc 定义用于系统级drc例程的tcl入口点。drc只基于系统级的设置。例如: option syslevel_drc_proc=proc_name (22)syslevel_update_proc 定义用于系统级更新例程的tcl入口点。更新只基于系统级的设置。例如: option sysle
43、vel_update_proc=proc_name选项 (23)usage_level 定义了bsb工具选项,用来确定是否bsb配置这个ip核。值为: advanced_user:ip不能被bsb配置; base_user:ip能被bsb配置。参数 参数parameter定义了常数,这些常数被传到vhdl的实体或verilog的模块。参数的关键字有: (1)address 该关键字识别一个命名的参数作为一个有效的地址参数。其格式为: parameter c_baseaddr=0 xffffffff, min_size=0 x200,address=base,可用的地址的值为: base(标识基
44、地址),high(标识高地址),size(否 决。识别地址的大小),none(禁止识别地址参数)参数(2)desc 该关键字允许在gui工具上显示核的简短描述。例如: parameter c_has_external_xin=0, dt=integer, desc=has xin“(3)min_size 定义了地址窗口的最小的尺寸。例如: parameter c_baseaddr = 0 xffffffff, dt=std_logic_vector, min_size=0 x100(4)addr_type 识别所定义存储器类的地址参数。可选的参数有: bridge;memory;registe
45、r。例如: parameter c_baseaddr=0 xffff0000, min_size=0 x2000,addr_type=registe参数(5)dt 指定了参数的数据类型。可选的参数:bit,bit_vector,integer,real,string,std_logic,std_logic_vector。(6)pair 标记未识别的baseaddr-highaddr对。如果非标准的名字被用来替换*_baseaddr和*_highaddr。地址参数必须标记对,定义了base和high。必须使用address关键字识别参数作为base地址和high地址。参数 (7)assignme
46、nt 定义了分配的用法级别。可选的参数有: constant(常数,不能修改); optional(不指定值时,edk批处理工具使用默值); optional_update; require(必须指定一个值); update(不能指定一个值,该值由edk批处理工具计 算);参数 (8)io_if io接口相关的名字。例如: parameter c_has_external_rclk=0, io_if=uart_0, io_is=has_ext_rclk (9)permit 该参数指明是否bsb应该显示和让用户编辑参数。允许的值是advanced_user(默认)和base_user。参数 (1
47、0)bridge_to 允许贯穿于桥一个地址是可见的。 例如: parameter c_baseaddr=0 xffffffff, bridge_to=sopb (11)io_is 定义xbd相关性标记。例如: parameter c_family=virtex, io_if=uart_0, io_is=c_family (12)range 定义了允许的有效值的范围。例如: parameter c_mstid_width = 1, dt = integer, range = (1:16)参数 (13)bus 总线接口的参数是可见的。例如: parameter c_splb_awidth=32,
48、dt=datatype, bus=bus_label (14)iplevel_drc_proc 定义了ip级drc例程的tcl入口点。drc只基于ip级设置。例如: parameter c_splb_awidth = 32, iplevel_drc_proc = proc_name (15)syslevel_drc_proc 定义用于系统级drc例程的tcl入口点。drc只基于系统级的设置。例如: parameter c_splb_awidth = 32, syslevel_drc_proc = proc_name参数 (16)cacheable 指定可缓存的地址。例如: parameter
49、c_baseaddr=0 xffffffff, cacheable=true (17)iplevel_update_value_proc 定义用于ip级更新例程的tcl入口点。更新只基于ip级的设置。例如: parameter c_splb_awidth = 32, iplevel_update_value_proc = proc 参数 (18)syslevel_ update_value_proc 定义用于ip级更新例程的tcl入口点。更新只基于ip级的设置。例如: parameter c_splb_awidth = 32, syslevel_update_value_proc = proc
50、_name (19)clk_port 识别时钟端口,对于这个端口相关的参数,例如: parameter c_clk_in=20,clk_port=clk_in, clk_unit=ns参数 (20)isvaild 定义了参数的有效性到一个表达式。如果表达式的值为真,parameter被包含在参数列表内。如果表达式包含一个字符串的比较,不能使用=操作符。应该使用下面的语法: parameter c_mem_part_data_depth=0, dt=integer,isvalid=(xstrncmp c_mem_partno custom)参数 (21)type 定义了参数的类型。允许的值为:h
51、dl和non-hdl (22)clk_uint 用来指定单元,在该单元内,该参数的值被指定。允许的值:hz,khz,mhz,s,ms,us,ns,ps。如果指定clk_port的话,clk_unit的值也必须指定。 (23)long_desc 该关键字允许在gui工具上显示ip核的长的描述。参数 (24)values 该关键字是一个名字-值对的列表。名字是可允许的有效值范围内的参数值。值是gui可代表的显示字符串。例如: parameter c_odd_parity=1, range=(0:1), values=(0=even, 1=odd) 对于有多个总线接口的核的关键的概念是使用总线标识符
52、,总线标识符附加在所有分组信号的端口和与总线接口端口相关联的类属。下面讨论总线标识符。类属名字必须和vhdl兼容。对ip核的额外的规则有: (1)类属必须以c_开头; (2)如果核使用多于一个的特殊的总线类型,必须在信号上使用总线标识符。如果总线标识符用于和端口相关联的信号,与关口相关联的类属也可使用标识符。如果在名字中,没有使用标识,那么与总线相关的类属参数就是全局的。例如,c_dopb_dwidth有一个总线标识符d,与它相关的信号也应该有总线标识符d。如果只有c_opb_dwidth出现,则它与所有的opb总线关联,而不考虑端口信号线上的总线标识符。 (3)对于只有一个总线接口的核(大多
53、数外设都属于这种情况),使用总线标识符和类属是可选的,典型的,不包含总线标识符。参数名字参数名字工具工具默认值默认值格式(范围)格式(范围)描述描述c_supports_threads0整数(整数(0,1)是否主设备产生多于是否主设备产生多于1个线程,当为个线程,当为0时,这设备不产生或者使用线程时,这设备不产生或者使用线程c_thread_id_width1整数(整数(0)用于唯一的主设备用于唯一的主设备id号的位数,如果号的位数,如果c_supports_threads = 0,该值必须设置为,该值必须设置为1。c_addr_width32整数(整数(32)的地址宽度必须为的地址宽度必须为
54、32c_data_width32整数(整数(32,64,128,256)的数据宽度为的数据宽度为32,64,128,256c_protocolaxi字符串(字符串(axi3,axi4lite,axi4)如果值为如果值为axi3,不可配置,否则可,不可配置,否则可以在以在axi4和和axi4lite之间进行之间进行选择选择参数名字参数名字工具工具默认值默认值格式(范围)格式(范围)描述描述c_id_width4整数整数系统中所有系统中所有id信号的宽度信号的宽度c_addr_width32整数(整数(32)busif地址宽度,宽度为地址宽度,宽度为32位位c_data_width32整数(整数(
55、32,64,128,256)busif数据宽度,宽度数据宽度,宽度32,64,128,256c_protocolaxi4字符串(字符串(axi3,axi4lite,axi4)如果值为如果值为axi3,不可配置,否则,不可配置,否则可以在可以在axi4和和axi4lite之间之间进行选择进行选择c_baseaddr0 xffffffff32位位busif基地址基地址c_highaddr0 x0000000032位位busif高地址高地址参数名字参数名字工具默认值工具默认值格式(范围)格式(范围)描述描述c_aclk_freq_hz无无整数整数_aclk输入时钟频率(输入时钟频率(hz)c_sup
56、ports_read1整数(整数(0,1)标识标识是否使用是否使用ar和和r通道通道c_supports_write1整数(整数(0,1)标识标识是否使用是否使用aw,w和和b通通道道c_supports_user_signals0整数(整数(0,1)标识标识_*user信号是否有效信号是否有效/支持支持c_awuser_width1整数(整数(=1)标识标识busif的的awuser信号的宽度信号的宽度c_aruser_width1整数(整数(=1)标识标识busif的的aruser信号的宽度信号的宽度c_wuser_width1整数(整数(=1)标识标识busif的的wuser信号的宽度信
57、号的宽度c_ruser_width1整数(整数(=1)标识标识busif的的ruser信号的宽度信号的宽度c_buser_width1整数(整数(=1)标识标识busif的的buser信号的宽度信号的宽度c_supports_narrow_burst1整数(整数(0,1)标识主设备是否支持窄猝发。标识主设备是否支持窄猝发。参数名字参数名字工具默认值工具默认值格式(范围)格式(范围)描述描述c_aclk_freq_hz无无整数整数_aclk输入时钟频率(输入时钟频率(hz)c_num_addr_ranges1整数(整数(1-16)上上baseaddr/highaddr对对的个数的个数c_rngr
58、_baseaddr0 xffffffff32位位标识标识busif的的ranger的基地址的基地址c_rngr_highaddr0 x0000000032位位标识标识busif的的ranger的高地址的高地址c_supports_read1整数(整数(0,1)标识标识是否使用是否使用ar和和r通道通道c_supports_write1整数(整数(0,1)标识标识是否使用是否使用aw,w和和b通道通道c_supports_user_signals0整数(整数(0,1)标识标识_*user信号是否有效信号是否有效/支支持持c_awuser_width1整数(整数(=1)标识标识busif的的awu
59、ser信号的宽度信号的宽度c_aruser_width1整数(整数(=1)标识标识busif的的aruser信号的宽度信号的宽度c_wuser_width1整数(整数(=1)标识标识busif的的wuser信号的宽度信号的宽度c_ruser_width1整数(整数(=1)标识标识busif的的ruser信号的宽度信号的宽度c_buser_width1整数(整数(=1)标识标识busif的的buser信号的宽度信号的宽度c_supports_reordering1整数(整数(0,1)标识从标识从busif是否支持响应重新排序是否支持响应重新排序(用于互联中,是否需要避免死锁)(用于互联中,是否需
60、要避免死锁)c_supports_narrow_burst1整数(整数(0,1)标识主设备是否支持窄猝发。标识主设备是否支持窄猝发。 edk自动扩展和填充一个定义的保留参数的集合。当外设需要平台产生的信息时,这能帮助阻止错误。 下面给出了关键字及功能: (1)c_device 定义了fpga芯片,edk工具自动的填充这个参数。例如:parameter c_device = “4vlx100”, dt=string (2)c_package 定义了fpga芯片的封装,edk工具自动的填充这个参数。例如: parameter c_package = “ff1016”, dt=string (3)c_speedgrade 定义了fpga芯片的速度等级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论