如何在HDL(Verilog/VHDL)中实例化边界扫描(BSCAN)?

描述


一般描述:

如何在HDL中为ByScript实例化BSCAN?

解决方案


B.XC400 0E/Ex/XL,斯巴达/XL边界扫描Verilog代码



“包括”和“安装”区域& gt;/SypLcTy/LIb/xilinx/xC4000。v



模块BNDYSCAN(DIN,CLK,QYOUT);

输入DIN,CLK;

输出QOU-OUT;

雷格;



线TCKYP,TDIYP,TMSYP,TDOYP;



BSCAN U1(.TDO(TDOYP),TDI(TDIYP),TMS(TMSUP),TCK(TCKYP));



TDI U2(I(TDIYP));



TCK U3(I(TCKYP));



TMS U4(I(TMSP P));



TDO U5(O(TDOOP));



/用户逻辑在这里

总是@(POSEDGE CLK)

qyOUT & lt;=din in;



终端模块



XC400 0E/EX/XL,SPARTAN/XL边界扫描VHDL代码



库IEEE;

使用IEEE.STDYLogiCy1164.ALL;

XC4000库;

使用XC400 0组件;



实体BND扫描是

端口(din in,CLK:位);

QUOUT:OUT位);

结束扫描;



BNDYSCAN的Xilinx架构



信号TCKYP,TDIYP,TMSYP,TDOYP:STDYLogic;



开始



U0:BSCAN端口映射(TDO=GT;TDOYP,TDI=& GT;TDIYP P;

TMS=和Gt;TMSUP,TCK=& gt;TCKYP;



U1:TDI端口映射(I=& Gt;TDIYP P);



U2:TCK端口映射(i=& gt;TCKYP);



U3:TMS端口映射(I=& Gt;TMSP P);



U4:TDO端口映射(O= & Gt;TDOOYP);



——这里的用户逻辑

过程(CLK)

开始

如果POSEDGE(CLK),那么

qyOUT & lt;=din in;

如果结束;

结束过程;



末端Xilinx;



BSCAN组件表明,在可Program逻辑器件(PLD)配置完成之后,边界扫描逻辑应该被启用。它还提供了对XC5200边界扫描逻辑的一些特殊特性的可选访问。若要指示BSCAN在配置之后应保持启用,请将BSCAN组件连接到TDI、TMS、TCK和TDO引脚。



对于ViTEX和斯巴达II,JTAG端口是专用的并且总是可用的。基本的JTAG函数或多边界扫描操作不需要BSCAN符号。



对于高级JTAG用户,BSCAN-VIETEX/BSCANSARSPANT2可用于访问和控制用边界扫描TAP控制器创建的用户寄存器。



您可以通过使用SypLimIt提供的Xilinx族库来实例化BSCAN单元。请看(Xilinx解决方案244)有关实例化Xilinx特定细胞的细节。



注:请参阅(Xilinx解决方案4641)有关如何在HDL中实例化通用I/O的JTAG管脚的信息。

----------------------------------------

XC5200边界扫描Verilog代码



模块BNDYSCAN(DIN,CLK,QYOUT);

输入DIN,CLK;

输出QOU-OUT;

雷格;



线TCKYP,TDIYP,TMSYP,TDOYP;



BSCAN U0(.TDO(TDOYP),TDI(TDIYP),TMS(TMSUP),TCK(TCKYP));



TDI U1(I(TDIYP));



TCK U2(I(TCKYP));



TMS U3(I(TMSP P));



TDO U4(O(TDOOP));



/用户逻辑在这里

总是@(POSEDGE CLK)

qyOUT & lt;=din in;



终端模块



模块TDI(I)/*综合BILLYBOX */;

输出I/*综合。ISPAD=1 */;

终端模块



模块TCK(I)/*综合BILLYBOX *//;

输出I/*综合。ISPAD=1 */;

终端模块



模块TMS(I)/*综合BILLYBOX *//;

输出I/*综合。ISPAD=1 */;

终端模块



模块TDO(O)/*综合BrimeBox。nopune=1 */;

输入O/*综合。ISPAD=1 */;

终端模块



模块BSCAN(TDO,TCK,TDI,TMS)/*综合BiLixBox */;

输出TDO;

输入TCK、TDI、TMS;

终端模块



XC5200边界扫描VHDL代码



库IEEE;

使用IEEE.STDYLogiCy1164.ALL;

使用SypIFIF.AtvestTo.ALL;



实体BND扫描是

端口(din in,CLK:在STDyLogic中;

QXOUT:输出STDYLogic;

结束扫描;



BNDYSCAN的Xilinx架构



组件BSCAN

端口(TDI,TMS,TCK,TDO1,TD):在STDYLogic中;

TDO:输出STDYLogic;

端部元件;

BSCAN属性BrimeBox:组件是真的;



组件TDI

端口(I:输出STDYLogic);

端部元件;

TDI的属性BLASKBOX PADYPIN:组件是“I”;



组件TCK

端口(I:输出STDYLogic);

端部元件;

TCK的属性BLASKBOX PADYPIN:组件是“I”;



组件TMS

端口(I:输出STDYLogic);

端部元件;

TMS的属性BLASKBOX PADYPIN:组件是“I”;



组件TDO

端口(O:在STDYLogic中);

端部元件;

TDO的属性BLASKBOX PADYPIN:组件是“O”;

TDO的属性综合:nopune:组件是真的;



信号TCKYP,TDIYP,TMSYP,TDOYP:STDYLogic;



开始



U0:BSCAN端口映射(TDO=GT;TDOYP,TDI=& GT;TDIYP P;

TMS=和Gt;TMSUP,TCK=& gt;TCKYP);



U1:TDI端口映射(I=& Gt;TDIYP P);



U2:TCK端口映射(i=& gt;TCKYP);



U3:TMS端口映射(I=& Gt;TMSP P);



U4:TDO端口映射(O= & Gt;TDOOYP);



过程(CLK)

开始

如果POSEDGE(CLK),那么

qyOUT & lt;=din in;

如果结束;

结束过程;



末端Xilinx;



VIETEX和斯巴达II边界扫描码

注意:基本边界扫描操作在这些器件中总是可用的。

BSCAN-VITEX/BSCANSARSPANT2只与内部逻辑连接。



库IEEE;

使用IEEE.STDYLogiCy1164.ALL;



实体触发器是端口(

在STDYLogic中;

CE:在STDYLogic中;

CLK:在STDYLogic中;

输出逻辑





结束触发器;



FLOPS体系结构研究所

组件FDCE端口(D:在STDYLogic中;

CE:在STDYLogic中;

C:在STDYLogic中;

CLR:在STDYLogic中;

问:输出STDYLogic);

端部元件;



组件BSCAN-VIETEX端口(TDO1:在STDYLogic中;

TDO2:在STDYLogic中;

更新:输出STDYLogic;

移位:输出逻辑;

复位:输出STDYLogic;

TDI:输出STDYLogic;

SEL1:输出STDYLogic;

DRCK1:输出STDYLogic;

SEL2:输出STDYLogic;

DRCK2:输出STDYLogic);

端部元件;



信号Q1、RST、TDO1、更新、移位、复位、TDI、SEL1、DRCK1:STDYLogic;





开始

U4: BSCAN VITEX端口映射(TDO1= & GT;TDO1);

TDO2= & Gt;‘0’,

更新= &更新;

移位=移位

复位=

TDI=&

SEL1= & Gt;SEL1;

DRCK1=gDRCK1;

SEL2=&打开;

DRCK2 ...
(更多...)
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 14:49:55 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它