verilog中的expr是什么意思 Verilog中,#符号是什么意思

verilog\u4e2d$\u7b26\u53f7\u662f\u4ec0\u4e48\u610f\u601d\uff1f

$\u662f\u4e00\u79cd\u6807\u8bc6\u7b26\uff0c\u53ef\u4ee5\u7528\u6765\u547d\u540d\u53d8\u91cf\uff0c\u5c31\u548c \u4e0b\u5212\u7ebf _ \u4f3c\u7684\uff0c\u53ea\u662f\u4e0d\u80fd\u653e\u5728\u9996\u4f4d\uff0c\u5c31\u5982\u4f60\u7ed9\u7684\u4ee3\u7801\u6240\u793a\u3002\u4e5f\u53ef\u4ee5\u88ab\u7528\u6765\u6807\u8bc6\u7cfb\u7edf\u4efb\u52a1\uff0c\u5728\u7cfb\u7edf\u4efb\u52a1\u540d\u79f0\u524d\u52a0$\u4f7f\u4e4b\u4e0e\u7528\u6237\u5b9a\u4e49\u7684\u4efb\u52a1\u548c\u51fd\u6570\u76f8\u533a\u5206\uff0c\u6bd4\u5982\u5e38\u7528\u7684$display\uff0c$monitor\uff0c$time\u7b49

#5\u7684\u6982\u5ff5\u662f\u5ef6\u8fdf\u7684\u610f\u601d\u3002\u4f46\u662f\u662f\u884c\u4e3a\u7ea7\u63cf\u8ff0 \u7efc\u5408\u65f6\u5c06\u88ab\u8fc7\u6ee4\u3002

\u4e00\u822c#+\u6570\u5b57\u7684\u7ec4\u5408\u5728\u4eff\u771f\u5668\u4e2d\u4ea7\u751f\u4e00\u5b9a\u7684\u5ef6\u8fdf\u3002\u5ef6\u8fdf\u7ed3\u6784\u5982\u4e0b~~

\u9996\u5148`timescale 1ns/100ps \u8fd9\u4e2a\u662f\u6574\u4e2a\u5ef6\u8fdf\u7684\u5b9a\u4e49\u3002`timescale\u662f\u5173\u952e\u5b57\uff0c\u7136\u540e\u540e\u9762\u7684\u4e24\u4f4d\u65f6\u95f4 \u7b2c\u4e00\u4f4d\u662f\u7528\u6765\u8868\u793a\u4f60\u7684\u5ef6\u8fdf\u56e0\u5b50\u7684\u3002\u7b2c\u4e8c\u4f4d\u7528\u6765\u8868\u793a\u6b65\u8fdb\u65f6\u95f4\u3002

\u4e3e\u4f8b\uff1a

`timescale 1ns/100ps
......

always(\u8fd9\u91cc\u7528forever\u4ea6\u53ef)
#10 clk=~clk;

\u90a3\u4e48\u4e5f\u5c31\u662f\u8bf4\uff0c10\u4e2a\u5ef6\u8fdf\u56e0\u5b50\u65f6clk\u53d6\u53cd\u3002\u4e5f\u5c31\u662f\u8bf410\u7eb3\u79d2\u65f6clk\u53d6\u53cd\u3002\u6240\u4ee5\u4f60\u5c31\u5f97\u5230\u4e00\u4e2a50Mhz\u7684\u65f6\u949f\u3002
\u540e\u9762\u7684100ps\u4ee3\u8868\u7684\u610f\u601d\u662f\u673a\u5668\u4eff\u771f\u7684\u6b65\u8fdb\u65f6\u95f4\uff0c\u5f53\u4f60\u51991ns/100ps\u65f6\u3002\u5728\u5c4f\u5e55\u4e0a\u663e\u793a\u76841ns\u65f6\u95f4\u5185\u3002\u673a\u5668\u505a10\u6b21\u7684\u8fd0\u7b97\u3002
\u5982\u679c\u4e0d\u80fd\u76f4\u89c2\u7406\u89e3\u3002\u90a3\u4e48\u5c31\u5c1d\u8bd5\u4e00\u4e0b`timescale 1ns/1ps\u7684\u533a\u522b\u3002\u4f60\u5c31\u77e5\u9053\u4e86\u3002

\u5343\u4e07\u6ce8\u610f\u7684\u662f\uff1a\u8fd9\u4e2a\u53ea\u80fd\u5728\u4eff\u771f\u5de5\u5177\u4e2d\u8fd0\u7528\u3002\u7efc\u5408\u6210\u7535\u8def\u65f6\u3002\u4f60\u4e0d\u8981\u5e0c\u671b\u6709\u8fd9\u7c7b\u5ef6\u8fdf\u5b58\u5728\u3002

在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始末数值的index需要是常量。而在Verilog-2001中,可以用变量作为index,进行part select。

[base_expr +: width_expr] //positive offset
[base_expr -: width_expr] //negative offset

其中base_expr可以是变量,而width_expr必须是常量。+:表示由base_expr向上增长width_expr位,-:表示由base_expr向上递减width_expr位。例如:

reg [63:0] word;
reg [3:0] byte_num; //a value from 0 to 7
wire [7:0] byteN = word[byte_num*8 +: 8];

如果byte_num的值为4,则word[39:32]赋值给byteN。

条件操作符根据条件表达式的值选择表达式,形式如下:
cond_expr ? expr1 : expr2

如果cond_expr 为真(即值为1 ),选择expr1 ;如果cond_expr 为假(值为0 ),选择expr2 。如果
cond_expr 为x 或z ,结果将是按以下逻辑expr1 和expr2 按位操作的值: 0 与0 得0 ,1 与1 得1 ,其
余情况为x 。

由上述例子可知,expr代表变量。

其实expr就是expression的缩写,也就是表达式的意思,并不一定是变量。

  • verilog涓殑expr鏄粈涔堟剰鎬
    绛旓細鐢变笂杩颁緥瀛愬彲鐭ワ紝expr浠h〃鍙橀噺銆
  • verilog HDL涓兘鍚﹁皟鐢ㄥ瓙绋嬪簭
    绛旓細棣栧厛鏄庣‘涓涓棶棰橈紝verilog鏄纭欢璇█锛屼笉瀛樺湪绋嬪簭杩欐牱璇存硶锛岀▼搴忔槸杞欢鐨勫彨娉曪紝杩欓噷浜や唬鍚椼傝嚦浜庤皟鐢ㄧ殑闂锛屾槸缁濆娌¢棶棰樼殑锛屼竴涓《灞傛ā鍧楀彲浠ュ寘鍚换鎰忎釜搴曞眰妯″潡杩欐槸娌¢棶棰樼殑锛屽彧闇瑕佷竴涓緥鍖栬鍙ャ傚鏋滆繕鏈変粈涔堥棶棰樺彲浠ョ户缁拷闂
  • verilog hdl绋嬪簭涓庝箞璋冪敤rom娉㈠舰鏌ユ壘琛
    绛旓細杩欎釜鍙仛妯″潡鐨勪緥鍖栵紝渚嬪寲璇硶 涓涓ā鍧楄兘澶熷湪鍙﹀涓涓ā鍧椾腑琚紩鐢紝杩欐牱灏卞缓绔嬩簡鎻忚堪鐨勫眰娆°傛ā鍧楀疄渚嬪寲璇彞褰㈠紡濡 涓嬶細module_name instance_name(port_associations) ;淇″彿绔彛鍙互閫氳繃浣嶇疆鎴栧悕绉板叧鑱旓紱浣嗘槸鍏宠仈鏂瑰紡涓嶈兘澶熸贩鍚堜娇鐢ㄣ傜鍙e叧鑱斿舰寮忓涓嬶細port_expr / / 閫氳繃浣嶇疆銆.PortName (port_expr) ...
  • 浠涔堟槸鏁版嵁娴佹弿杩? 姣斿:缂栧啓涓浣嶆瘮杈冨櫒鐨Verilog鐨鏁版嵁娴佹弿杩般俖鐧惧害...
    绛旓細expr1 : expr2锛涗互鍙婅繛鎺ヨ繍绠楃锛歿expr1, expr2, . . .锛宔xprN}銆傞氳繃灏嗚繖浜涜繍绠楃宓屽叆鍒拌繛缁祴鍊艰鍙ヤ腑锛屽彲浠ュ舰鎴愭瘮杈冨鏉傜殑杩炵画璧嬪艰鍙ワ紝鐢ㄦ潵鎻忚堪涓浜涜緝澶嶆潅鐨勭嚎缃戝彉閲忕殑浜х敓杩囩▼锛堝嵆绾跨綉鍙橀噺鐨勮涓猴級銆
  • verilog琛ㄨ揪寮忕殑鏁版嵁绫诲瀷
    绛旓細鍏朵腑,con_expr鏄潯浠惰〃杈惧紡,浠栫殑缁撴灉鏄湡鎴栧亣,expr1鍜宔xpr2鏄緟閫夌殑鎵ц琛ㄨ揪寮忋俢on_expr涓虹湡,閫夋嫨鎵ц1,鍚﹀垯閫夋嫨鎵ц2銆傚鏋渃on_expr涓簒鎴杬,涓や釜閮借璁$畻,鐒跺悗瀵硅绠楃粨鏋滄寜浣嶈繍绠,鏌愪竴浣嶉兘涓1,鍒欑粨鏋滀负1,閮戒负0,缁撴灉涓0,鍚﹀垯涓簒銆偮疯繛鎺ユ搷浣滅杩炴帴鎿嶄綔绗︽槸鎶婁綅浜庡ぇ鎷彿{}涓殑涓や釜鎴栦互涓婄敤鈥,鈥濆垎闅旂殑...
  • 鍗庝负2019鏁板瓧鑺墖璁捐绗旇瘯棰樼洰鍜岃В鏋(鍗曢夌涓閮ㄥ垎)
    绛旓細瑙f瀽:濡傛灉cond_expr涓1,鍒檈xpr=expr1;濡傛灉cond_expr涓0,鍒檈xpr=expr2;濡傛灉cond_expr涓簒鎴栬厇,閭d箞浣跨敤濡備笅琛ㄥ皢expr1鍜宔xpr2鐨勭粨鏋滈愪綅鍚堝苟,璁$畻鏈缁堢粨鏋溿傜粨鏋滀负10xx銆 (鍥剧墖鍙栬嚜IEEE Standardfor Verilog Hardware Description Language) 姝g‘绛旀:B 5.鍚屾鏃跺簭鐢佃矾鐨勭姸鎬佸彧鍦ㄧ粺涓鐨勬椂閽熻剦鍐叉帶鍒朵笅鎵嶅悓鏃跺彉鍖栦竴...
  • verilog涓殑expr鏄粈涔堟剰鎬
    绛旓細鍦Verilog-1995涓紝鍙互閫夋嫨鍚戦噺鐨勪换涓浣嶈緭鍑猴紝涔熷彲浠ラ夋嫨鍚戦噺鐨勮繛缁嚑浣嶈緭鍑猴紝涓嶈繃姝ゆ椂杩炵画鍑犱綅鐨勫鏈暟鍊肩殑index闇瑕佹槸甯搁噺銆傝屽湪Verilog-2001涓紝鍙互鐢ㄥ彉閲忎綔涓篿ndex锛岃繘琛宲art select銆俒base_expr +:width_expr]//positive offset [base_expr -:width_expr]//negative offset 鍏朵腑base_expr鍙互鏄...
  • 扩展阅读:verilog发音 ... verilog实例化 ... verilog状态机流水灯 ... verilog菜鸟教程 ... verilog的大量实例 ... verilog代码综合 ... verilog百度百科 ... verilog与 ... verilog module ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网