楊鯤,楊彬彬,曾壘,高燦輝,劉姚軍
(國營蕪湖機械廠,安徽 蕪湖 241007)
Verilog HDL(Verilog Handware Description Language,即Verilog硬件描述語言)能夠形式化地抽象表示電路的行為和結構,具有強大的硬件描述功能。它允許設計者用其來進行各種級別的邏輯設計,以及數字邏輯系統的仿真驗證、時序分析和邏輯綜合,由于其標準規范且易于掌握,已經成為目前應用最為廣泛的硬件描述語言之一。因此,采用Verilog HDL對CPLD進行硬件編程就可以方便、穩定、精確地實現對CPLD的功能測試。CPLD(Complex Programmable Logic Device,即復雜可編程邏輯器件)是20世紀80年代中期發展起來的一種新型邏輯器件,是目前數字系統設計的主要硬件之一,它可以在制造完成后由用戶根據自己的需要定義其邏輯功能。它具有編程靈活、集成度高、設計開發周期短、適用范圍寬、開發工具普及、運算速度快、易于擴展和移植、性價比高等特點,可實現較大規模的電路設計,因此被廣泛應用于產品的原型設計和產品生產中。CPLD器件已成為電子產品中不可缺少的組成部分,它的設計和應用成為電子工程師必備的一種技能。
ispLSI系列器件是由Lattice公司生產的基于與或陣列結構的復雜PLD產品。芯片由若干個模塊組成,模塊之間通過全局布線區GRF連起來,每個模塊包括若干個通用邏輯塊GLB、輸出布線區ORP、若干個I/O引腳和專用輸入引腳。ispLSI1032芯片具有192個寄存器、64個通用I/O管腳、8個專用輸入管腳、4個專用時鐘輸入管腳和一個全局布線區,最高頻率60MHz,最快延遲時間20ns。其功能框圖和引腳圖如圖1所示。

圖1 ispLSI1032功能框圖和引腳圖
由于是對芯片進行功能測試,所以將ispLSI1032作為處理芯片,搭載外圍相應測試電路即可。為了方便測試,需同時提供兩片芯片的接口,并將所有的I/O口做輸入輸出測試,且兩片芯片測試不受影響。整理出硬件需求如下:
(1)供電電源接口:外接+5V電源供電,提供電源和地輸入。
(2)ISP接口:用于對芯片進行程序下載,使用跳線座區分兩片芯片的下載需求。
(3)I/O測試接口:將I/O口引出,便于外接示波器進行波形觀察。
(4)功能控制開關:選擇波形測試或者電平測試功能。
(5)電平控制開關:在電平測試模式下,設置端口輸出高或低電平。
軟件需求如下:
(1)波形測試功能:對板載晶振提供的時鐘信號進行分頻處理,在相應端口輸出固定頻率的方波,并用示波器進行檢測。
(2)電平測試功能:在輸出端口直接輸出高/低電平,通過發光LED直觀觀察。
(3)編號UA芯片測試接口功能為單數I/O口為信號輸入端口,雙數I/O口為信號輸出端口。
(4)編號UB芯片測試接口功能為單數I/O口為信號輸出端口,雙數I/O口為信號輸入端口。
單次芯片測試流程圖如圖2所示,在UA處測完后,重新燒寫程序,輸入輸出端口定義對調,在UB處重復檢測過程。

圖2 測試流程圖
Lattice ispLSI1032芯片測試原理如圖3所示。X2為供電電源接口,輸入電壓+5VDC;X1為芯片下載接口,使用跳線座短接X101、X102區分兩片芯片的下載需求;單刀雙擲開關S1作為功能控制開關,控制波形與電平測試,S3為電平測試的輸入電平選擇開關;I/OA1-B4為測試孔,方便進行波形測試,發光二極管則是觀察電平測試。
ispLSI1032芯片的Verilog HDL語言程序描述如下。模塊ispLSI1032_test 用來產生多路輸出信號,其中輸入時鐘clk頻率為8MHz,fun_switcher為功能選擇開關,當為高電平時,選擇波形測試,當輸入為低電平時,選擇電平測試;cnt為分頻變量,用于將輸入時鐘進行10分頻;為了方便測試,將32個輸出I/O口分為4組,并將分頻后的結果賦予到每組I/O口上,然后即可通過示波器進行測試。
module ispLSI 1032_test (clk,fun_switcher,ioctl,out);
input clk.fun_switcher;
input [31:0] ioctl;
output [31:0] out;
reg [31:0] out;
reg [9:0] cnt;
reg [7:0] reg8;
reg clkadd;
always @(posedge clk)
begin
if (cnt==10)
begin
cnt<=10’d0;
cntadd++;
end
else
begin
cnt<=cnt+1;
out<=out;
end
end
always @(posedge clkadd)
begin
if (fun_switcher)
begin
out<=ioctl;
end
else
begin
reg8++;
out[7:0]<=reg8;
out[15:8]<=reg8;
out[23:16]<=reg8;
out[31:24]<=reg8;
end
end
endmodule
Lattice ispLSI1032芯片的測試方法已在實際工作中得到應用,芯片測試速度、效率及精確度均滿足要求,工作穩定可靠。本文在分析了ispLSI1032的內部結構及測試原理和需求的基礎上,利用硬件描述語言Verilog HDL進行設計,對芯片做功能測試,進行篩選。該方法開發成本低,設計周期短,操作易上手,修改邏輯方便,能夠極大地降低人力成本,是一種快捷有效的測試方法。