vivado分模块编译
步骤一:
在工程中,将需要封装的模块(包括子模块)设置为顶层模块,例如top为工程的顶层模块,top调用了A和B,B又调用了C和D,需要将B模块以及下面的模块整体加密,也就是封装为网表,那么需要将B设置为顶层模块。
步骤二:设置综合条件
1、在Flatten hierarchy选择为full。
2、在more options中输入-mode out_of_context
步骤三:综合
在工程中运行综合步骤,在综合完成后,打开综合。
步骤四:生成edf
这里和quartus不一样,这里需要通过输入脚本的方式生成。
假设网表文件中没有调用IP,那么输入如下指令:
write_edif F:/FPGA/abc.edf
如果调用了IP,输入如下指令:
write_edif -security_mode all F:/FPGA/abc.edf
步骤五:生成调用v文件
假设vivado的版本在2017.4以前,输入如下指令:
write_verilog -mode port F:/FPGA/abc_stub.v
2018.1以后:
write_verilog -mode synth_stub F:/FPGA/abc_stub.v
Ⅱ HLS(涓)Vivado楂桦眰娆$患钖堟傝堪
鎺㈢储娣卞害锛歏ivado HLS镄勯珮搴︾患钖堟妧链璇﹁В
FPGA锛岃繖涓楂桦害鍙缂栫▼镄勯泦鎴愮数璺锛屽洜鍏剁栌涓囩骇阃昏緫鍗曞厓镄勭伒娲绘у拰锷ㄦ佺畻娉曞疄鐜拌兘锷涜屽囧弹鐬╃洰銆傜敱锘虹鍗曞厓濡侺UT锛堥昏緫鍗曞厓锛屽疄鐜颁换浣曢昏緫鍑芥暟镄勫熀鐭筹级銆丗lip-Flop锛埚瓨鍌ㄥ崟鍏冿纴鐢ㄤ簬阃昏緫娴佹按绾垮拰鏁版嵁瀛桦偍锛夈乄ires鍜孖/O pads鏋勫缓锛孎PGA镄勬灦鏋勫湪璁$畻钖炲悙閲忓拰璧勬簮闄愬埗涓灞旷幇浜嗗叾镫鐗规с侺UT鏄阃昏緫鏋勫缓镄勬牳蹇冿纴阃氲繃瀛桦偍鐪熷艰〃𨱒ユ墽琛屽嶆潅镄勯昏緫镎崭綔锛汧lip-Flops鍒欐槸鏁版嵁娴佷腑镄勯吨瑕佹ˉ姊侊纴灏ゅ叾鍦╔ilinx FPGA涓锛屽畠浠鏀鎸佸唴缃镄凞SP妯″潡锛屾兜鐩栦简锷犲噺涔樼瓑杩愮畻锛屼负楂樻晥绠楁硶瀹炵幇鎻愪緵浜嗗彲鑳姐
鏁版嵁閲岖敤锛屽傛护娉㈠櫒锛岄氲繃涔樻硶鍣ㄥ苟琛屽勭悊杈揿叆鏁版嵁锛屽𪾢鐜颁简FPGA鏋舵瀯镄勫苟琛屼紭锷裤傜浉姣斾箣涓嬶纴澶勭悊鍣ㄤ緷璧栨寚浠ゅ簭鍒楁墽琛岋纴姣忎釜鎸囦护鍙鑳藉甫𨱒ュ欢杩燂纴钥孎PGA鍒╃敤LUT瀹炵幇骞惰岃$畻锛岃祫婧愪笉鍏变韩锛屽唴瀛樼粨鏋勪紭鍖栵纴鎻愪緵瓒呴珮镄勫甫瀹姐俈ivado HLS缂栬疟鍣ㄧ殑榄斿姏鍦ㄤ簬鍏惰兘镊锷ㄨ皟搴﹀拰娴佹按绾夸紭鍖栵纴濡傝捐′竴涓3锻ㄦ湡娴佹按绾挎潵璁$畻y锛屾樉镢楀噺灏戝欢杩熴
澶勭悊鍣ㄥ拰FPGA镄勫樊寮傛樉镢楋细澶勭悊鍣ㄦ墽琛屾寚浠ゅ簭鍒楋纴链夊欢杩熶笖渚濊禆鏁版嵁浣岖疆锛汧PGA鍒欓氲繃LUT杩涜屽苟琛屽勭悊锛屽唴瀛樼粨鏋勭粡杩囩簿蹇冭捐★纴𨰾ユ湁镟撮珮镄勬晥鐜囥傞氲繃HLS锛屾垜浠鍙浠ュ噺灏戝嚱鏁拌$畻寤惰繜锛屾瘆濡傚湪pipelining涓锛屽埯濮媦镄勮$畻鍙闇3锻ㄦ湡锛屽悗缁锻ㄦ湡鍙浠ュ苟琛屼骇鐢熸柊缁撴灉銆
Vivado HLS镄勬櫤鑳藉湪浜庡畠鑳借瘑鍒鏁版嵁娴佺洰镙囦腑镄勫苟琛屾э纴鏀鎸佹秷璐硅-鐢熶骇钥呮ā鍨嬶纴涓绉嶉氲繃鍐呭瓨搴揿垏鎹㈤檺鍒跺苟琛岋纴鍙︿竴绉嶅垯鍒╃敤FIFO鍐呭瓨镓╁𪾢骞惰屽害銆傚湪纭浠惰捐′笂锛孎PGA镄勭伒娲绘т娇鍏惰兘阃傚簲钖勭嶈嚜瀹氢箟鐢佃矾锛岃屽勭悊鍣ㄥ垯鍙楅檺浜庡浐瀹氭灦鏋勚傞夋嫨镞堕挓棰戠巼鏄骞冲彴鍐崇瓥镄勪竴閮ㄥ垎锛屼絾FPGA涓庡勭悊鍣ㄧ殑镐ц兘宸璺濊繙涓嶆浜庢ゃ
镐ц兘鎻愬崌镄勫叧阌鍦ㄤ簬HLS镄勮嚜瀹氢箟鍐呭瓨浣撶郴缁撴瀯锛屽畠鍏佽稿姩镐佸唴瀛桦垎閰嶏纴浼桦寲钖炲悙閲忋佸姛钥楀拰寤惰繜锛屼笉鍙楃‖浠堕檺鍒躲侣LS涓庡勭悊鍣ㄧ紪璇戝櫒镄勫樊寮傚湪浜庯纴瀹冭兘涓虹壒瀹氱畻娉曟彁渚涙渶浣冲钩鍙颁紭鍖栵纴阃氲繃璧勬簮璋冨害鍑忓皯涓存椂鏁版嵁瀛桦偍銆侳PGA镄勭伒娲绘т綋鐜板湪瀵规浔浠惰鍙ュ拰寰鐜杩浠g殑澶勭悊锛岃繖浜涘湪澶勭悊鍣ㄤ笂鍙鑳介犳垚棰濆栧紑阌锛屼絾鍦‵PGA涓婂垯鑳芥湁鏁埚苟琛岋纴鎻愬崌镐ц兘銆
鍦℉LS镄勯珮绾у簲鐢ㄤ腑锛40锻ㄦ湡鍐咃纴娴佹按绾胯凯浠i厤缃镞犳瀬闄愶纴鐢ㄦ埛鍙浠ラ氲繃璁剧疆II锛堟寚浠ら棿闅旓级鎺у埗娴佹按绾挎繁搴︺侣LS浼氩垎鏋愭暟鎹渚濊禆浠ヤ紭鍖栫畻娉曟墽琛岋纴灏嗗嚱鏁板勭悊杞鍖栦负鏁版嵁娴佸舰寮忋傝槠铹跺姩镐佸唴瀛樼敌璇峰湪缂栬疟镞剁‘瀹氾纴C++镄勫姩镐佸唴瀛樿锋眰鍦‵PGA涓婇渶鐗瑰埆澶勭悊銆傛带鍒朵腑蹇幂殑绠楁硶阃氲繃HLS𨱔垫椿璋冩暣锛屽备换锷″ぇ灏忕敤鎴峰彲镊瀹氢箟锛屽奖鍝岖‖浠堕厤缃棰戠巼銆
镐荤殑𨱒ヨ达纴HLS浼桦寲浜嗘暟鎹阃熺巼锛屽挨鍏堕傜敤浜巉or銆亀hile鍜宒o-while寰鐜锛岃屾带鍒朵腑蹇幂畻娉曞垯镙规嵁绯荤粺闇姹傚姩镐佽皟鏁淬备粠鎺у埗绯荤粺鍒嗙被鐪嬶纴HLS鍦ㄥ揩阃熷搷搴斿満鏅涓灏や负绐佸嚭锛屽彲浣滀负澶勭悊鍣ㄥ姞阃熷櫒銆傚湪楠岃瘉阒舵碉纴纭淇滺LS test bench镄勫嗳纭镐ц呖鍏抽吨瑕侊纴钖屾椂瑕嗙洊鐜囱揪鍒90%浠ヤ笂锛岄伩鍏嶅唴瀛橀敊璇鍜屾湭鍒濆嫔寲鍙橀噺銆侣LS鍗忓悓浠跨湡鍒欐槸楠岃瘉骞惰屽寲锷熻兘姝g‘镐х殑寮哄ぇ宸ュ叿锛屽敖绠¢熷害杈冩参锛屼絾鑳芥彁渚涘疂璐电殑鐢ㄦ埛鎸囧笺
阃氲繃Vivado HLS锛屾垜浠寰椾互鏋勫缓楂樻晥銆佺伒娲荤殑FPGA璁捐★纴鍒╃敤鍏剁壒链夌殑浼桦娍鎻愬崌镐ц兘锛屽悓镞跺厖鍒呜冭槛鍐呭瓨缁戝畾鍜屾暟鎹甯冨眬銆傚湪闆嗘垚澶氢釜绋嫔簭镞讹纴濡俍ynq-7000SoC镄勫勭悊鍣ㄤ笌FPGA锛孒LS镄勫岗浣滃繀涓嶅彲灏戙傛棤璁烘槸镫绔嬬郴缁熼獙璇佽缮鏄锘轰簬澶勭悊鍣ㄧ殑绯荤粺锛孒LS閮芥壆婕旂潃鍏抽敭瑙掕壊锛屾彁渚涗简涓绉嶅叏鏂扮殑璁捐′笌楠岃瘉鏂规硶銆