Virtex-II Pro“proc_sys_reset” –  C_NUM_BUS_RST无法按预期工作-Altera-Intel社区-FPGA CPLD-ChipDebug

Virtex-II Pro“proc_sys_reset” – C_NUM_BUS_RST无法按预期工作

问题描述

一般问题描述:

“proc_sys_reset”的文档指出应将C_NUM_BUS_RST设置为系统中的总线数。所以我把它设置为两个,它就破了。我为PLB和OPB尝试了“sys_bus_reset(0)”和“sys_bus_reset(1)”,但它并不喜欢这样。你应该如何联系这个,这是否真的有必要?

解决/修复方法

当前的MHS语法不支持此功能。但是,它将在EDK 6.2i中得到支持。

选项1:

C_NUM_BUS_RST = 1

这是默认值,无需修改。 “proc_sys_reset”IP的重置将具有分配给系统内所有重置的1位输出。

选项2:

C_NUM_BUS_RST = 2

以下是使用“util_bus_split”IP的MHS的片段。

BEGIN proc_sys_reset

PARAMETER INSTANCE = reset_block

PARAMETER HW_VER = 1.00.a

PARAMETER C_EXT_RESET_HIGH = 0

#将C_NUM_BUS_RST设置为2

参数C_NUM_BUS_RST = 2

PORT Slowest_sync_clk = sys_clk_s

PORT Ext_Reset_In = sys_rst_s

PORT Chip_Reset_Req = C405RSTCHIPRESETREQ

PORT Core_Reset_Req = C405RSTCORERESETREQ

PORT System_Reset_Req = C405RSTSYSRESETREQ

PORT Rstc405resetchip = RSTC405RESETCHIP

PORT Rstc405resetcore = RSTC405RESETCORE

端口Rstc405resetsys = RSTC405RESETSYS

#sys_bus_reset为2位

PORT Bus_Struct_Reset = sys_bus_reset

PORT Dcm_locked = clk_lock

结束

BEGIN util_bus_split

PARAMETER INSTANCE = util_bus_split_0

PARAMETER HW_VER = 1.00.a

#输入总线sys_bus_reset的大小

参数C_SIZE_IN = 2

PARAMETER C_SPLIT = 1

参数C_LEFT_POS = 1

#输入总线为2位

PORT Sig = sys_bus_reset

#Out1和Out1各1位

PORT Out1 = plb_reset

PORT Out2 = opb_reset

结束

开始plb_v34

PARAMETER INSTANCE = plb

PARAMETER HW_VER = 1.01.a

PARAMETER C_DCR_INTFCE = 0

PARAMETER C_EXT_RESET_HIGH = 1

PORT PLB_Clk = sys_clk_s

来自util_bus_split的plb的#1位复位

PORT SYS_Rst = plb_reset

结束

BEGIN opb_v20

PARAMETER INSTANCE = opb1

PARAMETER HW_VER = 1.10.b

PORT OPB_Clk = sys_clk_s

来自util_bus_split的opb的#1位复位

PORT SYS_Rst = opb_reset

结束

选项3:

C_NUM_BUS_RST = 3或更高

在这种情况下,需要创建自定义IP。对于此示例,C_NUM_BUS_RST = 3。反过来,这将产生3位宽的“sys_bus_reset”。如果需要更大的值,则修改vhdl代码,MPD和PAO文件以反映添加的输出端口。

VHDL文件

库IEEE;

使用IEEE.std_logic_1164.all;

实体my_bus_spliter是

港口 (

– 输入总线

bus_in:在std_logic_vector(0到2);

– 输出位,如果大于3,

– 然后添加多个单比特输出

rst0:out std_logic;

rst1:out std_logic;

rst2:out std_logic);

结束my_bus_spliter;

my_bus_spliter的架构imp是

开始

rst0 <= bus_in(0);

rst1 <= bus_in(1);

rst2 <= bus_in(2);

结束

MPD文件

BEGIN my_bus_spliter

选项IP_GROUP =基础设施

选项IPTYPE = PERIPHERAL

选项IMP_NETLIST = TRUE

选项HDL = VHDL

PORT bus_in =“”,DIR = IN,VEC = [0:2]

PORT rst0 =“”,DIR = OUT

PORT rst1 =“”,DIR = OUT

PORT rst2 =“”,DIR = OUT

结束

PAO文件

lib my_bus_spliter my_bus_spliter

请登录后发表评论

    没有回复内容