《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 其他 > 教學:FPGA設計中邏輯復制的使用

教學:FPGA設計中邏輯復制的使用

2022-09-30
來源:FPGA設計論壇
關鍵詞: FPGA 邏輯復制

  在FPGA設計中經常使用到邏輯復制,邏輯復制也用在很多場合。

  1.    信號驅動級數非常大,扇出很大,需要增加驅動力

  邏輯復制最常使用的場合時調整信號的扇出。如果某個信號需要驅動后級很多單元,此時該信號的扇出非常大,那么為了增加這個信號的驅動能力,一種辦法就是插入多級Buffer,但是這樣雖然能增加驅動能力,但是也增加了這個信號的路徑延時。

  為了避免這種情況這時可以復制生成這個信號的邏輯,用多路同頻同相的信號驅動后續電路,使平均到每路的扇出變低,這樣不需要插入Buffer就能滿足驅動能力增加的要求,從而節約該信號的路徑延時。如從圖1.1到圖1.2轉變所示。

  74.JPG

  圖1.1  邏輯復制前

73.JPG

  圖1.2  邏輯復制后

  由于現在綜合器都已經非常智能,此種場合的邏輯復制工作大多由綜合器完成,不需要人手動調整。各大FPGA廠商的綜合器以及第三方綜合器都有這種功能。

  2.    FPGA中需要做很多重復工作

  在某些FPGA設計中,需要很多重復設計的時候,這時候邏輯復制也就有用了。

  例如:在某個特殊應用場合需要設計方向可以任意改變的240位寬的三態IO管腳。我們先看看常用的一個位寬的三態管腳怎么設計。

  module inout_interface(

  dat_in,

  io_out,

  io_dir,

  dat_out

  );

  input       dat_in;

  input       io_dir;

  output      dat_out;

  inout       io_out;

  assign      io_out  = io_dir ? dat_in : 1'bz;    assign      dat_out = io_out;

  endmodule

  如上述程序所示為單個雙向IO口的典型設計代碼,中間由IO輸入方向控制數據和高阻之間的切換,難題出現了,怎么設計240位寬的雙向IO口呢?難道如下列程序所示:

  module inout_interface(

  dat_in,

  io_out,

  io_dir,

  dat_out

  );

  input  [239 : 0]     dat_in;

  input  [239 : 0]     io_dir;

  output [239 : 0]     dat_out;

  inout  [239 : 0]     io_out;

  assign      io_out  = io_dir ? dat_in : 240'bz;    assign      dat_out = io_out;

  endmodule

  顯然這樣是不行的,因為當io_dir為240位的時候只有當全為0的時候此式才為假,其余時候都為真,顯然達不到想要的每個IO都是雙向口的設計。

  修改代碼如下:

  module inout_interface( dat_in, io_out, io_dir, dat_out ); input [239 : 0] dat_in; input [239 : 0] io_dir; output [239 : 0] dat_out; inout [239 : 0] io_out; assign io_out[0] = io_dir[0] ? dat_in[0] : 1'bz; assign dat_out[0] = io_out[0]; assign io_out[1] = io_dir[1] ? dat_in[1] : 1'bz; assign dat_out[1] = io_out[1]; assign io_out[2] = io_dir[2] ? dat_in[2] : 1'bz; assign dat_out[2] = io_out[2]; . . // 此處略去1萬行 . assign io_out[239] = io_dir[239] ? dat_in[239] : 1'bz; assign dat_out[239] = io_out[239]; endmodule

  顯然這種辦法能實現240位寬的獨立方向控制IO,但是估計寫代碼要累死人,有沒得更好的辦法呢?

  當然有,在verilog2001中有個邏輯復制語法——generate,可以對verilog模塊進行無限復制。有了這個模塊我們即可輕松通過邏輯復制來達到我們的要求了。

  // 單個雙向IO實現模塊 module pin_inout( indat, indir, outdat, outdaTIn ); input indat; input indir; inout outdat; output outdaTIn; assign outdat = indir ? indat : 1'bz; assign outdaTIn = outdat; endmodule module inout_interface( dat_in, io_out, io_dir, dat_out ); input [239 : 0] dat_in; input [239 : 0] io_dir; output [239 : 0] dat_out; inout [239 : 0] io_out; // 邏輯復制240次 genvar i; generate for(i = 0; i < 240; i = i + 1) begin : pin_loop pin_inout pin_inout_inst( .indat ( dat_in[i] ), .indir ( io_dir[i] ), .outdat ( io_out[i] ), .outdaTIn ( dat_out[i] ) ); end endgenerate endmodule

  由上面代碼可看出,巧妙利用verilog語法能減少自身工作量。

  3.    總結

  在FPGA設計中有些情況的邏輯復制不需要我們做,但是有些情況的邏輯復制不得不手工完成,因此,熟練掌握verilog語法是設計出好的模型、減少工作量的前提。



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
老牛影视一区二区三区| 久久免费偷拍视频| 亚洲一区二区毛片| 亚洲第一免费播放区| 韩国一区二区在线观看| 久热精品视频在线免费观看| 欧美综合国产| 欧美伊人久久大香线蕉综合69| 亚洲天堂网在线观看| 国产精品vvv| 亚洲国产99| 国产欧美一区二区三区在线看蜜臀| 欧美三级欧美一级| 欧美日韩一区二区三区在线观看免| 欧美精品在线观看播放| 欧美精品123区| 欧美理论电影网| 欧美日韩一区自拍| 国产精品久久九九| 国产精品拍天天在线| 国产精品免费aⅴ片在线观看| 国产精品欧美日韩一区| 国产精品免费观看视频| 国产欧美日韩在线播放| 国产农村妇女精品| 韩国女主播一区二区三区| 黄色一区二区三区四区| 在线播放国产一区中文字幕剧情欧美| 影音先锋久久久| 亚洲破处大片| 一区二区欧美亚洲| 亚洲一区二区三区午夜| 欧美亚洲在线| 亚洲国产精品传媒在线观看| 亚洲激情成人网| 亚洲精品一二| 亚洲午夜av电影| 欧美一区二区国产| 麻豆av一区二区三区| 欧美高清视频| 欧美日韩在线视频观看| 国产精品女人网站| 韩国成人福利片在线播放| 1000部国产精品成人观看| 日韩一区二区高清| 午夜精品一区二区在线观看| 久久精品女人天堂| 夜色激情一区二区| 午夜精品99久久免费| 久久久久久91香蕉国产| 欧美岛国在线观看| 国产精品国产馆在线真实露脸| 国产私拍一区| 亚洲国产一二三| 亚洲免费影视| 亚洲激情成人网| 亚洲影音先锋| 狂野欧美性猛交xxxx巴西| 欧美日本高清| 国产视频亚洲精品| 亚洲精品日韩精品| 午夜精品网站| 一区二区高清视频在线观看| 久久er99精品| 欧美日韩精品| 韩国v欧美v日本v亚洲v| av成人免费| 亚洲国产天堂久久国产91| 亚洲综合电影| 欧美~级网站不卡| 国产精品亚洲一区| 亚洲啪啪91| 欧美一区二区黄| 正在播放欧美一区| 久久美女性网| 国产精品二区在线| 亚洲国产精品免费| 小嫩嫩精品导航| 亚洲视频日本| 免费在线观看一区二区| 国产精品嫩草影院一区二区| 亚洲国产老妈| 欧美在线观看一二区| 亚洲一区在线观看免费观看电影高清 | 亚洲综合视频在线| 亚洲美女在线视频| 老鸭窝91久久精品色噜噜导演| 国产精品久久久久久久app| 亚洲国产另类久久精品| 久久国产精品电影| 羞羞漫画18久久大片| 欧美日韩精品一区二区天天拍小说| 尤物九九久久国产精品的分类| 亚洲欧美一级二级三级| 亚洲综合日本| 欧美日韩视频在线一区二区观看视频 | 影音先锋日韩有码| 午夜免费久久久久| 午夜精品国产| 国产精品久久77777| 日韩视频免费在线观看| 亚洲日本黄色| 免费不卡在线观看| 国内久久视频| 久久国产主播| 久久久久免费视频| 国产亚洲一区在线| 欧美一级艳片视频免费观看| 亚洲一区免费网站| 欧美视频在线观看 亚洲欧| 亚洲久久一区| 一本久久综合亚洲鲁鲁五月天| 欧美成人免费在线| 1024国产精品| 亚洲国产清纯| 免费在线欧美黄色| 亚洲福利专区| 亚洲卡通欧美制服中文| 欧美激情第10页| 亚洲欧洲日本国产| 99视频超级精品| 欧美日韩成人一区二区三区| 日韩视频专区| 亚洲图片你懂的| 国产精品毛片va一区二区三区| 亚洲社区在线观看| 亚洲欧美日韩人成在线播放| 欧美日韩亚洲一区在线观看| 99re6这里只有精品| 亚洲综合视频一区| 国产女人aaa级久久久级| 性久久久久久久久| 久久久精品国产免大香伊 | 亚洲免费在线播放| 国产精品中文字幕在线观看| 西西裸体人体做爰大胆久久久| 欧美在线视频免费观看| 国产一区自拍视频| 亚洲高清一区二| 欧美成人高清| 一本色道久久加勒比精品 | 久久久夜夜夜| 亚洲黄色成人久久久| 一区二区三区欧美激情| 国产精品久久久对白| 亚洲欧美综合国产精品一区| 久久天天狠狠| 亚洲欧洲日韩综合二区| 亚洲一级片在线看| 国产欧美精品va在线观看| 久久国产精品久久久久久| 欧美h视频在线| 夜夜嗨av一区二区三区网站四季av| 午夜精品久久久久| 国产人妖伪娘一区91| 久久精品国产2020观看福利| 欧美成年视频| 一本色道久久综合精品竹菊| 久久精品国产欧美激情| 亚洲高清自拍| 亚洲欧美日韩一区在线| 精品99一区二区| 亚洲一区二区三区涩| 国内精品国产成人| 一个色综合导航| 国产视频在线观看一区| 亚洲精品久久7777| 国产精品久久久久久久久久妞妞| 久久精品亚洲一区二区| 欧美视频四区| 久久精品人人做人人爽电影蜜月| 欧美日韩国产一区精品一区| 午夜精品在线| 欧美日韩国产色综合一二三四| 香蕉精品999视频一区二区| 欧美激情亚洲另类| 亚洲欧美影院| 欧美激情综合在线| 性刺激综合网| 欧美日韩一区二区国产| 亚洲成人在线免费| 亚洲欧美精品一区| 亚洲福利av| 午夜在线一区| 亚洲日韩第九十九页| 久久久久在线观看| 一区二区欧美精品| 欧美凹凸一区二区三区视频| 亚洲欧美日韩视频一区| 欧美日韩一区二区在线| 亚洲国产欧美一区二区三区同亚洲| 国产精品久久久久久久浪潮网站| 亚洲精品久久在线| 国产综合色一区二区三区| 亚洲午夜精品一区二区| 亚洲风情亚aⅴ在线发布| 久久久久国产一区二区三区四区| 9久re热视频在线精品| 欧美成黄导航| 欧美在线亚洲在线|