[Suzaku:01357] Re: ISE での GPIO 使用方法について

Yusuke Nakamori email@hidden
2009年 1月 22日 (木) 17:55:48 JST


中森です.

返信ありがとうございます.

> >>>>> EDK で追加した GPIO に ISE でのモジュールの出力を出力したいのですが
> >>>>> どのように行えばよろしいのでしょうか.
> >>>>> なお,開発環境は ISE 10.1.03 と EDK 10.1.03 です.
> >>>>>
> >> EDKにてExternal PortsにGPIOのピンを書いておくと、
> >> サブモジュール化した時にそのGPIOのピンが増えていると思うので、
> >> それに接続して下さい。
> >>
> >> 例  top.vhd
> >> ---------------------------------------------------
> >> entity top is
> >>   port (
> >>      ・
> >>      ・
> >>     nSW : in std_logic_vector(0 to 2)
> >>   );
> >> end top;
> >>
> >> architecture IMP of top is
> >>   component xps_proj is
> >>     port (
> >>      ・
> >>      ・
> >>       GPIO : in std_logic_vector(0 to 2) -- 追加したGPIO
> >>     );
> >>   end component;
> >>
> >> begin
> >>   xps_proj_i : xps_proj
> >>     port map (
> >>      ・
> >>      ・
> >>       GPIO  => GPIO -- 追加したGPIO
> >>     );
> >>
> >>     GPIO <= not nSW;
> >> ----------------------------------------------------
> >>
> >> 例  xps_proj.ucf
> >> ----------------------------------------------------
> >>      ・
> >>      ・
> >> NET "nSW<0>"           LOC =  "A14" | IOSTANDARD = LVCMOS33;
> >> NET "nSW<1>"           LOC =  "B14" | IOSTANDARD = LVCMOS33;
> >> NET "nSW<2>"           LOC =  "A13" | IOSTANDARD = LVCMOS33;
> >> ----------------------------------------------------
> >>
> > 
> > 上記の xps_proj 内のポートで使用しないポートはどのように処理すれば
> > よろしいでしょうか.そのまま Synthesize すると Undefind symbol の
> > エラーが出てしまうのですが.
> > 
> > 御回答お願いします.
> 
> 使用しないポートは
> port mapから消してしまえばいけるはず。
> それでもエラーがでるなら、componentのところからも
> 消してみてしまってください。
> 
> もしくは適当な信号をsignalで定義して、
> 終端処理してしまってもよいと思います。
> 

port map と component から使用しないポートを消したところ,
Synthesize することができました.

しかし,Implement Design を行うと,下記のようなエラーが
出てしまいました.この原因が分かりましたら教えていただけないでしょうか.

なお,xps_proj.ucf に余分な信号の Netlist が書いてあると大量にエラーが
出ましたので,xps_proj.ucf には下記の top.vhd のポートの Msclk ,rst ,
top_out の Netlist しか書いておりません.

  top.vhd
 ---------------------------------------------------
 entity top is
   port (
     Msclk : in std_logic;
     rst : in std_logic;
     top_out : out std_logic
   );
 end top;

また,エラーメッセージの原因を探ると,[Synthesize] の [Properties] の
[Xilinx Specific Options] の [Add I/O Buffers] をオフにすればいいと書いて
ありましたので,オフにして Implement Design を行ったところ,
同様のエラーが出ました.


エラーメッセージ
-----------------------------------------------------

ERROR:NgdBuild:770 - IBUF 'ocm_temac_cntlr/ibuf_29' and BUFG
   'ocm_temac_cntlr/mii_tx_clk_0_ibufg' on net 'N2' are lined up in series.
   Buffers of the same direction cannot be placed in series.
ERROR:NgdBuild:462 - input pad net 'N2' drives multiple buffers:
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/ibuf_29 with type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rx_dv_0_ibuf with
   type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rx_er_0_ibuf with
   type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rx_clk_0_ibufg with
   type IBUFG,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rxd_0_bus[3].mii_rx
   d_0_ibuf with type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rxd_0_bus[2].mii_rx
   d_0_ibuf with type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rxd_0_bus[1].mii_rx
   d_0_ibuf with type IBUF,
     pin I on block
   xps_proj_i/xps_proj_i/ocm_temac_cntlr/ocm_temac_cntlr/mii_rxd_0_bus[0].mii_rx
   d_0_ibuf with type IBUF
ERROR:NgdBuild:924 - input pad net 'N2' is driving non-buffer primitives:
     pin G on block XST_GND with type GND,
     pin CI on block delta_sigma_2/Madd_step1_addsub0000_cy<0> with type MUXCY,
     pin CI on block delta_sigma_2/Madd_step1_addsub0000_xor<0> with type XORCY,
     pin CI on block delta_sigma_2/Madd_step2_addsub0000_cy<0> with type MUXCY,
     pin CI on block delta_sigma_2/Madd_step2_addsub0000_xor<0> with type XORCY,
     pin C on block xps_proj_i/xps_proj_i/dcm_ddr_fx/dcm_ddr_fx/rsti with type
   FD,
     pin C on block xps_proj_i/xps_proj_i/dcm_ddr_fx/dcm_ddr_fx/reset_shift1
   with type FDP,
     pin C on block xps_proj_i/xps_proj_i/dcm_ddr_fx/dcm_ddr_fx/reset_shift2
   with type FDP,
     pin C on block xps_proj_i/xps_proj_i/dcm_ddr_fx/dcm_ddr_fx/reset_shift3
   with type FDP,
     pin C on block xps_proj_i/xps_proj_i/dcm_ddr_fx/dcm_ddr_fx/rsti2 with type
   FDP,
     pin D on block
   xps_proj_i/xps_proj_i/reset_system/reset_system/SEQ/system_Reset_Req_d1 with
   type FDS,
     pin S on block
   xps_proj_i/xps_proj_i/reset_system/reset_system/EXT_LPF/exr_d1 with type FDS,
     pin D on block
   xps_proj_i/xps_proj_i/reset_system/reset_system/EXT_LPF/exr_d1 with type FDS,
     pin D on block
   xps_proj_i/xps_proj_i/reset_system/reset_system/SEQ/chip_Reset_Req_d1 with
   type FDS,
     pin D on block
   xps_proj_i/xps_proj_i/uart_console/uart_console/UARTLITE_CORE_I/UARTLITE_RX_I
   /rx_1 with type FDS,
     pin I1 on block
   xps_proj_i/xps_proj_i/ppc405_system/ppc405_system/DBGC405DEBUGHALT_i1 with
   type LUT2,
     pin I1 on block
   xps_proj_i/xps_proj_i/spi_cntlr/spi_cntlr/USER_LOGIC_I/spi_core_0/SPI_MISO_w_
   SW0 with type LUT3,
     pin I0 on block
   xps_proj_i/xps_proj_i/spi_cntlr/spi_cntlr/USER_LOGIC_I/spi_core_0/SPI_MISO_w_
   SW0 with type LUT3



suzaku メーリングリストの案内