精简的FPGA编程方法
发布时间:2008/5/28 0:00:00 访问次数:498
引言
便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而fpga等现场可编程器件也是正在兴起与普及的一种器件,把fpga更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。
在许多应用场合,如大型设备中的板卡,比较适合采用标准的fpga编程电路。但是对于便携式设备的应用场合,采用标准电路联系fpga与cpu需要消耗的资源太多。许多dsp芯片只有2个通用i/o引脚,所以如果能只使用1~2个引脚就完成fpga编程功能,意义将非常重大。
本文提出一种精简的fpga的编程电路,它只占用控制器的1~2条i/o控制线,其成本和功耗很低,很适合大规模地在便携式小型仪表产品中应用。
标准的fpga编程电路
以xilinx的spartan系列fpga为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线prog,clk,data,done。首先prog信号控制fpga的初始化,一个prog信号的低电平使fpga进入编程状态,在编程过程及以后的运行过程中,prog信号保持高电平;在编程过程中,data信号与clk信号配合,在每个clk信号的上升沿,fpga锁定/读取一个data信号,如此循环,直到控制器将需要编程的程序全部送到fpga中;当fpga正确接收到编程程序以后,就会产生一个done信号,通知控制器一切完毕。
该电路是xilinx公司推荐的一个fpga的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个i/o控制线,而上述标准电路占用4个i/o口,就有可能无法应用。</p><p>精简的fpga编程方法
本文给出了一种精简的fpga编程电路如图2所示。控制器的i/o控制信号线包括p/c和data。p/c控制信号产生图2中所示的波形,经过prog解码电路(如图4所示)得到prog信号,经过clk解码电路(在本例中也可以不经过),得到clk信号,它们与data一起组成完整的fpga控制信号,完成对fpga的编程控制。
该电路只使用2根i/o控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成fpga的编程工作。
更进一步,也可以只使用一个i/o控制信号线,如图3所示,使用prog解码电路(如图4所示)、clk解码电路和data解码电路(如图5所示),得到fpga编程所必须的prog信号、clk信号和data信号。该方法比图2所示的电路所需要的控制线还要少。
本方法利用比标准fpga编程电路更少的i/o控制线,经过解码电路的解码得到fpga编程所需要的控制信号。对于不同公司的产品,本方法只要稍加变动就可以使用。</p><p>应用案例
以xilinx的spartan ii系列产品为例,图4为prog控制信号解码电路,图5为data信号解码电路。不妨假定clk信号的周期为tclk,prog解码电路中的时间常数为tprog=r1*c1,data解码电路的时间常数为tdata=r2*c2。
prog控制信号解码电路的原理: p/c信号或p/c/d信号由prog编码和clk(data)编码组成,其中prog编码是一个周期比较长的高电平,见图4的t2-t0,它大于prog解码电路的时间常数tprog,clk(data)编码是周期比较短的脉冲,小于解码电路的时间常数tprog,所以prog信号可以被解码得到,而其他不相关信号则被过滤掉。一般可以选择prog编码周期t2-t0>5tprog,而clk(data)编码周期t3-t2<1/5tprog。当fpga编程结束以后,p/c信号,或者p/c/d信号应当立即复位,否则prog会出现错误。
data解码电路的原理可以分成data=0和data=1两种情况:
data=0时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,继续保持高电平,经过大约tdata(与先前状态有关),data控制信号线就会出现低电平,即信号0,为了更加可靠,可以等一段时间,到达时刻t9时p/c/d信号再给出一个负脉冲用于锁定数据。当然负脉冲的宽度应当比较窄,否则data信号会反转,通常负脉冲宽度t10-t9<1/4tclk。
data=1时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,立即进入低电平,经过大约tdata(与先前状态有关),data控制信号线就会出现高电平,即信号1,为了更加可靠,可以等一段时间,到达时刻t10时,p/c/d信号再给出一个上升沿用于锁定数据。
这样data信号也可以被正确地解码出来。在本例中clk信号无须专门的解码电路,p/c/d信号可以直接作为clk控制信号使用。
本方法经过实验验证,其中r1=10kw,c1=0.1mf, r2=1kw, c2=0.01mf,d1为1n5817,u1/u2为74hc14。当然也可以根据需要进行调整。</p><p>结语
fpga是一种功能非常强大,非常灵活的器件,正在向各种中、高档的应用普及,采用本文提出的精简fpga编程方法,节省了控制器的i/o线,克服了fpga在便携式设备中应用的一个瓶颈。文中给出了其基本原理并通过了实验,具有一定的使用价值。■</p><p>参考文献:
1 mohan; sundararajarao (cupertino, ca),on-chip self-modification for plds . united s
便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而fpga等现场可编程器件也是正在兴起与普及的一种器件,把fpga更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。
在许多应用场合,如大型设备中的板卡,比较适合采用标准的fpga编程电路。但是对于便携式设备的应用场合,采用标准电路联系fpga与cpu需要消耗的资源太多。许多dsp芯片只有2个通用i/o引脚,所以如果能只使用1~2个引脚就完成fpga编程功能,意义将非常重大。
本文提出一种精简的fpga的编程电路,它只占用控制器的1~2条i/o控制线,其成本和功耗很低,很适合大规模地在便携式小型仪表产品中应用。
标准的fpga编程电路
以xilinx的spartan系列fpga为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线prog,clk,data,done。首先prog信号控制fpga的初始化,一个prog信号的低电平使fpga进入编程状态,在编程过程及以后的运行过程中,prog信号保持高电平;在编程过程中,data信号与clk信号配合,在每个clk信号的上升沿,fpga锁定/读取一个data信号,如此循环,直到控制器将需要编程的程序全部送到fpga中;当fpga正确接收到编程程序以后,就会产生一个done信号,通知控制器一切完毕。
该电路是xilinx公司推荐的一个fpga的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个i/o控制线,而上述标准电路占用4个i/o口,就有可能无法应用。</p><p>精简的fpga编程方法
本文给出了一种精简的fpga编程电路如图2所示。控制器的i/o控制信号线包括p/c和data。p/c控制信号产生图2中所示的波形,经过prog解码电路(如图4所示)得到prog信号,经过clk解码电路(在本例中也可以不经过),得到clk信号,它们与data一起组成完整的fpga控制信号,完成对fpga的编程控制。
该电路只使用2根i/o控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成fpga的编程工作。
更进一步,也可以只使用一个i/o控制信号线,如图3所示,使用prog解码电路(如图4所示)、clk解码电路和data解码电路(如图5所示),得到fpga编程所必须的prog信号、clk信号和data信号。该方法比图2所示的电路所需要的控制线还要少。
本方法利用比标准fpga编程电路更少的i/o控制线,经过解码电路的解码得到fpga编程所需要的控制信号。对于不同公司的产品,本方法只要稍加变动就可以使用。</p><p>应用案例
以xilinx的spartan ii系列产品为例,图4为prog控制信号解码电路,图5为data信号解码电路。不妨假定clk信号的周期为tclk,prog解码电路中的时间常数为tprog=r1*c1,data解码电路的时间常数为tdata=r2*c2。
prog控制信号解码电路的原理: p/c信号或p/c/d信号由prog编码和clk(data)编码组成,其中prog编码是一个周期比较长的高电平,见图4的t2-t0,它大于prog解码电路的时间常数tprog,clk(data)编码是周期比较短的脉冲,小于解码电路的时间常数tprog,所以prog信号可以被解码得到,而其他不相关信号则被过滤掉。一般可以选择prog编码周期t2-t0>5tprog,而clk(data)编码周期t3-t2<1/5tprog。当fpga编程结束以后,p/c信号,或者p/c/d信号应当立即复位,否则prog会出现错误。
data解码电路的原理可以分成data=0和data=1两种情况:
data=0时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,继续保持高电平,经过大约tdata(与先前状态有关),data控制信号线就会出现低电平,即信号0,为了更加可靠,可以等一段时间,到达时刻t9时p/c/d信号再给出一个负脉冲用于锁定数据。当然负脉冲的宽度应当比较窄,否则data信号会反转,通常负脉冲宽度t10-t9<1/4tclk。
data=1时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,立即进入低电平,经过大约tdata(与先前状态有关),data控制信号线就会出现高电平,即信号1,为了更加可靠,可以等一段时间,到达时刻t10时,p/c/d信号再给出一个上升沿用于锁定数据。
这样data信号也可以被正确地解码出来。在本例中clk信号无须专门的解码电路,p/c/d信号可以直接作为clk控制信号使用。
本方法经过实验验证,其中r1=10kw,c1=0.1mf, r2=1kw, c2=0.01mf,d1为1n5817,u1/u2为74hc14。当然也可以根据需要进行调整。</p><p>结语
fpga是一种功能非常强大,非常灵活的器件,正在向各种中、高档的应用普及,采用本文提出的精简fpga编程方法,节省了控制器的i/o线,克服了fpga在便携式设备中应用的一个瓶颈。文中给出了其基本原理并通过了实验,具有一定的使用价值。■</p><p>参考文献:
1 mohan; sundararajarao (cupertino, ca),on-chip self-modification for plds . united s
引言
便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而fpga等现场可编程器件也是正在兴起与普及的一种器件,把fpga更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。
在许多应用场合,如大型设备中的板卡,比较适合采用标准的fpga编程电路。但是对于便携式设备的应用场合,采用标准电路联系fpga与cpu需要消耗的资源太多。许多dsp芯片只有2个通用i/o引脚,所以如果能只使用1~2个引脚就完成fpga编程功能,意义将非常重大。
本文提出一种精简的fpga的编程电路,它只占用控制器的1~2条i/o控制线,其成本和功耗很低,很适合大规模地在便携式小型仪表产品中应用。
标准的fpga编程电路
以xilinx的spartan系列fpga为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线prog,clk,data,done。首先prog信号控制fpga的初始化,一个prog信号的低电平使fpga进入编程状态,在编程过程及以后的运行过程中,prog信号保持高电平;在编程过程中,data信号与clk信号配合,在每个clk信号的上升沿,fpga锁定/读取一个data信号,如此循环,直到控制器将需要编程的程序全部送到fpga中;当fpga正确接收到编程程序以后,就会产生一个done信号,通知控制器一切完毕。
该电路是xilinx公司推荐的一个fpga的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个i/o控制线,而上述标准电路占用4个i/o口,就有可能无法应用。</p><p>精简的fpga编程方法
本文给出了一种精简的fpga编程电路如图2所示。控制器的i/o控制信号线包括p/c和data。p/c控制信号产生图2中所示的波形,经过prog解码电路(如图4所示)得到prog信号,经过clk解码电路(在本例中也可以不经过),得到clk信号,它们与data一起组成完整的fpga控制信号,完成对fpga的编程控制。
该电路只使用2根i/o控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成fpga的编程工作。
更进一步,也可以只使用一个i/o控制信号线,如图3所示,使用prog解码电路(如图4所示)、clk解码电路和data解码电路(如图5所示),得到fpga编程所必须的prog信号、clk信号和data信号。该方法比图2所示的电路所需要的控制线还要少。
本方法利用比标准fpga编程电路更少的i/o控制线,经过解码电路的解码得到fpga编程所需要的控制信号。对于不同公司的产品,本方法只要稍加变动就可以使用。</p><p>应用案例
以xilinx的spartan ii系列产品为例,图4为prog控制信号解码电路,图5为data信号解码电路。不妨假定clk信号的周期为tclk,prog解码电路中的时间常数为tprog=r1*c1,data解码电路的时间常数为tdata=r2*c2。
prog控制信号解码电路的原理: p/c信号或p/c/d信号由prog编码和clk(data)编码组成,其中prog编码是一个周期比较长的高电平,见图4的t2-t0,它大于prog解码电路的时间常数tprog,clk(data)编码是周期比较短的脉冲,小于解码电路的时间常数tprog,所以prog信号可以被解码得到,而其他不相关信号则被过滤掉。一般可以选择prog编码周期t2-t0>5tprog,而clk(data)编码周期t3-t2<1/5tprog。当fpga编程结束以后,p/c信号,或者p/c/d信号应当立即复位,否则prog会出现错误。
data解码电路的原理可以分成data=0和data=1两种情况:
data=0时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,继续保持高电平,经过大约tdata(与先前状态有关),data控制信号线就会出现低电平,即信号0,为了更加可靠,可以等一段时间,到达时刻t9时p/c/d信号再给出一个负脉冲用于锁定数据。当然负脉冲的宽度应当比较窄,否则data信号会反转,通常负脉冲宽度t10-t9<1/4tclk。
data=1时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,立即进入低电平,经过大约tdata(与先前状态有关),data控制信号线就会出现高电平,即信号1,为了更加可靠,可以等一段时间,到达时刻t10时,p/c/d信号再给出一个上升沿用于锁定数据。
这样data信号也可以被正确地解码出来。在本例中clk信号无须专门的解码电路,p/c/d信号可以直接作为clk控制信号使用。
本方法经过实验验证,其中r1=10kw,c1=0.1mf, r2=1kw, c2=0.01mf,d1为1n5817,u1/u2为74hc14。当然也可以根据需要进行调整。</p><p>结语
fpga是一种功能非常强大,非常灵活的器件,正在向各种中、高档的应用普及,采用本文提出的精简fpga编程方法,节省了控制器的i/o线,克服了fpga在便携式设备中应用的一个瓶颈。文中给出了其基本原理并通过了实验,具有一定的使用价值。■</p><p>参考文献:
1 mohan; sundararajarao (cupertino, ca),on-chip self-modification for plds . united s
便携式、小型的仪表和设备是一个非常重要的应用领域,在未来一段时间内会有比较大的市场。而fpga等现场可编程器件也是正在兴起与普及的一种器件,把fpga更好地运用到上述仪表和设备中,可以减少这些仪器、设备的开发周期,大幅度提升这些仪器的性能,减少总成本和体积等。
在许多应用场合,如大型设备中的板卡,比较适合采用标准的fpga编程电路。但是对于便携式设备的应用场合,采用标准电路联系fpga与cpu需要消耗的资源太多。许多dsp芯片只有2个通用i/o引脚,所以如果能只使用1~2个引脚就完成fpga编程功能,意义将非常重大。
本文提出一种精简的fpga的编程电路,它只占用控制器的1~2条i/o控制线,其成本和功耗很低,很适合大规模地在便携式小型仪表产品中应用。
标准的fpga编程电路
以xilinx的spartan系列fpga为例,图1是一个标准的编程电路。电路中控制器使用了4条控制信号线prog,clk,data,done。首先prog信号控制fpga的初始化,一个prog信号的低电平使fpga进入编程状态,在编程过程及以后的运行过程中,prog信号保持高电平;在编程过程中,data信号与clk信号配合,在每个clk信号的上升沿,fpga锁定/读取一个data信号,如此循环,直到控制器将需要编程的程序全部送到fpga中;当fpga正确接收到编程程序以后,就会产生一个done信号,通知控制器一切完毕。
该电路是xilinx公司推荐的一个fpga的标准电路,对于许多常规应用场合,它还是比较合适的,但是对于手持式仪表等尺寸非常小的设备,由于控制器本身只有1~2个i/o控制线,而上述标准电路占用4个i/o口,就有可能无法应用。</p><p>精简的fpga编程方法
本文给出了一种精简的fpga编程电路如图2所示。控制器的i/o控制信号线包括p/c和data。p/c控制信号产生图2中所示的波形,经过prog解码电路(如图4所示)得到prog信号,经过clk解码电路(在本例中也可以不经过),得到clk信号,它们与data一起组成完整的fpga控制信号,完成对fpga的编程控制。
该电路只使用2根i/o控制信号线,比标准编程电路要少,利用特殊控制信号的编码与解码,得到完成fpga的编程工作。
更进一步,也可以只使用一个i/o控制信号线,如图3所示,使用prog解码电路(如图4所示)、clk解码电路和data解码电路(如图5所示),得到fpga编程所必须的prog信号、clk信号和data信号。该方法比图2所示的电路所需要的控制线还要少。
本方法利用比标准fpga编程电路更少的i/o控制线,经过解码电路的解码得到fpga编程所需要的控制信号。对于不同公司的产品,本方法只要稍加变动就可以使用。</p><p>应用案例
以xilinx的spartan ii系列产品为例,图4为prog控制信号解码电路,图5为data信号解码电路。不妨假定clk信号的周期为tclk,prog解码电路中的时间常数为tprog=r1*c1,data解码电路的时间常数为tdata=r2*c2。
prog控制信号解码电路的原理: p/c信号或p/c/d信号由prog编码和clk(data)编码组成,其中prog编码是一个周期比较长的高电平,见图4的t2-t0,它大于prog解码电路的时间常数tprog,clk(data)编码是周期比较短的脉冲,小于解码电路的时间常数tprog,所以prog信号可以被解码得到,而其他不相关信号则被过滤掉。一般可以选择prog编码周期t2-t0>5tprog,而clk(data)编码周期t3-t2<1/5tprog。当fpga编程结束以后,p/c信号,或者p/c/d信号应当立即复位,否则prog会出现错误。
data解码电路的原理可以分成data=0和data=1两种情况:
data=0时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,继续保持高电平,经过大约tdata(与先前状态有关),data控制信号线就会出现低电平,即信号0,为了更加可靠,可以等一段时间,到达时刻t9时p/c/d信号再给出一个负脉冲用于锁定数据。当然负脉冲的宽度应当比较窄,否则data信号会反转,通常负脉冲宽度t10-t9<1/4tclk。
data=1时,当p/c/d信号的前一个数据的上升沿t5结束,并保持一段时间,到达t6后,立即进入低电平,经过大约tdata(与先前状态有关),data控制信号线就会出现高电平,即信号1,为了更加可靠,可以等一段时间,到达时刻t10时,p/c/d信号再给出一个上升沿用于锁定数据。
这样data信号也可以被正确地解码出来。在本例中clk信号无须专门的解码电路,p/c/d信号可以直接作为clk控制信号使用。
本方法经过实验验证,其中r1=10kw,c1=0.1mf, r2=1kw, c2=0.01mf,d1为1n5817,u1/u2为74hc14。当然也可以根据需要进行调整。</p><p>结语
fpga是一种功能非常强大,非常灵活的器件,正在向各种中、高档的应用普及,采用本文提出的精简fpga编程方法,节省了控制器的i/o线,克服了fpga在便携式设备中应用的一个瓶颈。文中给出了其基本原理并通过了实验,具有一定的使用价值。■</p><p>参考文献:
1 mohan; sundararajarao (cupertino, ca),on-chip self-modification for plds . united s
上一篇:FAST电路