Copyright (c) 1988-2001 Altera Corporation. All rights reserved. This material is made available for use under a license from Altera and its use is subject to all conditions and restrictions provided by the license agreement. U.S. and foreign patents apply to the software program and the semiconductor components which are programmed using the software program. This program, these components, and the system comprising both may be covered by one or more of the following U.S. patents: 6,169,417; 6,167,364; 6,163,195; 6,163,166; 6,161,211; 6,161,211; 6,160,419; 6,157,212; 6,157,210; 6,157,208; 6,154,059; 6,154,055; 6,150,840; 6,147,511; 6,144,573; 6,137,313; 6,134,707; 6,134,705; 6,134,173; 6,134,166; 6,130,555; 6,130,552; 6,128,692; 6,128,215; 6,127,865; 6,127,846; 6,127,844; 6,127,217; 6,122,720; 6,122,209; 6,121,790; 6,120,550; 6,118,720; 6,118,302; 6,114,915; 6,114,312; 6,112,020; 6,110,223; 6,108,239; 6,107,854; 6,107,825; 6,107,824; 6,107,822; 6,107,820; 6,104,208; 6,102,964; 6,097,211; 6,094,064; 6,091,258; 6,091,102; 6,085,317; 6,084,427; 6,081,449; 6,080,204; 6,078,521; 6,076,179; 6,075,380; 6,072,358; 6,072,332; 6,069,487; 6,066,960; 6,064,599; 6,060,903; 6,058,452; 6,057,707; 6,052,755; 6,052,309; 6,052,327; 6,049,223; 6,049,225; 6,045,252; 6,043,676; 6,040,712; 6,038,171; 6,037,829; 6,034,857; 6,034,540; 6,034,536; 6,032,159; 6,031,763; 6,031,391; 6,029,236; 6,028,809; 6,028,808; 6,028,787; 6,026,226; 6,025,737; 6,023,439; 6,020,760; 6,020,759; 6,020,758; 6,018,490; 6,018,476; 6,014,334; 6,011,744; 6,011,730; 6,011,406; 6,005,379; 5,999,016; 5,999,015; 5,998,295; 5,996,039; 5,986,470; 5,986,465; 5,983,277; 5,982,195; 5,978,476; 5,977,793; 5,977,791; 5,968,161; 5,970,255; 5,966,597; 5,963,565; 5,969,051; 5,963,069; 5,963,049; 5,959,891; 5,953;537; 5,949,991; 5,949,710; 5,949,250; 5,949,239; 5,954,751; 5,943,267; 5,942,914; 5,940,852; 5,939,790; 5,936,425; 5,926,036; 5,925,904; 5,923,567; 5,915,756; 5,915,017; 5,909,450; 5,909,375; 5,909,126; 5,905,675; 5,904,524; 5,900,743; 5,898,628; 5,898,318; 5,894,228; 5,893,088; 5,892,683; 5,883,526; 5,880,725; 5,880,597; 5,880,596; 5,878,250; 5,875,112; 5,873,113; 5,872,529; 5,872,463; 5,870,410; 5,869,980; 5,869,979; 5,861,760; 5,859,544; 5,859,542; 5,850,365; 5,850,152; 5,850,151; 5,848,005; 5,847,617; 5,845,385; 5,844,854; RE35,977; 5,838,628; 5,838,584; 5,835,998; 5,834,849; 5,828,229; 5,825,197; 5,821,787: 5,821,773; 5,821,771; 5,815,726; 5,815,024; 5,815,003; 5,812,479; 5,812,450; 5,809,281; 5,809,034; 5,805,516; 5,802,540; 5,801,541; 5,796,267; 5,793,246; 5,790,469; 5,787,009; 5,771,264; 5,768,562; 5,768,372; 5,767,734; 5,764,583; 5,764,569; 5,764,080; 5,764,079; 5,761,099; 5,760,624; 5,757,207; 5,757,070; 5,744,991; 5,744,383; 5,740,110; 5,732,020; 5,729,495; 5,717,901; 5,705,939; 5,699,020; 5,699,312; 5,696,455; 5,693,540; 5,694,058; 5,691,653; 5,689,195; 5,668,771; 5,680,061; 5,672,985; 5,670,895; 5,659,717; 5,650,734; 5,649,163; 5,642,262; 5,642,082; 5,633,830; 5,631,576; 5,621,312; 5,614,840; 5,612,642; 5,608,337; 5,606,276; 5,606,266; 5,604,453; 5,598,109; 5,598,108; 5,592,106; 5,592,102; 5,590,305; 5,583,749; 5,581,501; 5,574,893; 5,572,717; 5,572,148; 5,572,067; 5,570,040; 5,567,177; 5,565,793; 5,563,592; 5,561,757; 5,557,217; 5,555,214; 5,550,842; 5,550,782; 5,548,552; 5,548,228; 5,543,732; 5,543,730; 5,541,530; 5,537,295; 5,537,057; 5,525,917; 5,525,827; 5,523,706; 5,523,247; 5,517,186; 5,498,975; 5,495,182; 5,493,526; 5,493,519; 5,490,266; 5,488,586; 5,487,143; 5,486,775; 5,485,103; 5,485,102; 5,483,178; 5,477,474; 5,473,266; 5,463,328, 5,444,394; 5,438,295; 5,436,575; 5,436,574; 5,434,514; 5,432,467; 5,414,312; 5,399,922; 5,384,499; 5,376,844; 5,371,422; 5,369,314; 5,359,243; 5,359,242; 5,353,248; 5,352,940; 5,309,046; 5,350,954; 5,349,255; 5,341,308; 5,341,048; 5,341,044; 5,329,487; 5,317,210; 5,315,172; 5,301,416; 5,294,975; 5,285,153; 5,280,203; 5,274,581; 5,272,368; 5,268,598; 5,266,037; 5,260,611; 5,260,610; 5,258,668; 5,247,478; 5,247,477; 5,243,233; 5,241,224; 5,237,219; 5,220,533; 5,220,214; 5,200,920; 5,187,392; 5,166,604; 5,162,680; 5,144,167; 5,138,576; 5,128,565; 5,121,006; 5,111,423; 5,097,208; 4,912,342; 4,903,223; 4,899,070; 4,899,067; 4,871,930; 4,864,161; 4,831,573; 4,785,423; 4,774,421; 4,713,792; 4,677,318; 4,617,479; 4,609,986; 4,020,469; Additional patents are pending. Altera Corporation acknowledges the trademarks of other organizations for their respective products or services mentioned in this software.