verilog中有哪几种类型的赋值语句,说明它们的区别,并举例 verilog中reg和integer的区别及举例

verilog\u4e2d\u6709\u54ea\u51e0\u79cd\u7c7b\u578b\u7684\u8d4b\u503c\u8bed\u53e5\uff0c\u8bf4\u660e\u5b83\u4eec\u7684\u533a\u522b\uff0c\u5e76\u4e3e\u4f8b

integer\u7c7b\u578b\u4e5f\u662f\u4e00\u79cd\u5bc4\u5b58\u5668\u6570\u636e\u7c7b\u578b\uff0cinteger\u7c7b\u578b\u7684\u53d8\u91cf\u4e3a\u6709\u7b26\u53f7\u6570\uff0c\u800creg\u7c7b\u578b\u7684\u53d8\u91cf\u5219\u4e3a\u65e0\u7b26\u53f7\u6570\uff0c\u9664\u975e\u7279\u522b\u58f0\u660e\u4e3a\u6709\u7b26\u53f7\u6570\uff0c\u8fd8\u6709\u5c31\u662finteger\u7684\u4f4d\u5bbd\u4e3a\u5bbf\u4e3b\u673a\u7684\u5b57\u7684\u4f4d\u6570\uff0c\u4f46\u6700\u5c0f\u4e3a32\u4f4d\uff0c\u7528integer\u7684\u53d8\u91cf\u90fd\u53ef\u4ee5\u7528reg\u5b9a\u4e49\uff0c\u53ea\u662f\u5bf9\u4e8e\u7528\u4e8e\u8ba1\u6570\u66f4\u65b9\u4fbf\u800c\u5df2\u3002reg,integer,real\uff0ctime\u90fd\u662f\u5bc4\u5b58\u5668\u6570\u636e\u7c7b\u578b\uff0c\u5b9a\u4e49\u5728Verilog\u4e2d\u7528\u6765\u4fdd\u5b58\u6570\u503c\u7684\u53d8\u91cf\uff0c\u548c\u5b9e\u9645\u7684\u786c\u4ef6\u7535\u8def\u4e2d\u7684\u5bc4\u5b58\u5668\u6709\u533a\u522b

\u4eca\u5929\u770b\u4ee3\u7801\u65f6\u9047\u5230\u4e86integer\uff0c\u53ea\u77e5\u9053\u8fd9\u662f\u4e2a\u6574\u6570\u7c7b\u578b\uff0c\u53ef\u8be6\u7ec6\u7684\u5185\u5bb9\u5374\u4e00\u7a8d\u4e0d\u901a\uff0c\u67e5\u770b\u4e86\u8d44\u6599---\u300averilog\u6570\u5b57VLSI\u8bbe\u8ba1\u6559\u7a0b\u300b\u3002\u5176\u4e2d\u662f\u8fd9\u4e48\u5199\u5230\u7684\uff1a
\u5927\u591a\u6570\u7684\u77e2\u91cf\u7c7b\u578b\uff08reg\u6216\u8005net\uff09\u90fd\u88ab\u9ed8\u8ba4\u5f53\u505a\u65e0\u7b26\u53f7\u6570\u3002integer\u548creal\u662f\u4e2a\u4f8b\u5916\uff0c\u5b83\u4eec\u88ab\u9ed8\u8ba4\u4e3a\u5f53\u505a\u6709\u7b26\u53f7\u6570\u3002\u901a\u5e38\uff0creal\u7c7b\u578b\u662f\u4e0d\u53ef\u7efc\u5408\u7684\u3002
\u5047\u8bbe\u5728\u6ca1\u6709\u6ea2\u51fa\u7684\u60c5\u51b5\u4e0b\uff0c\u4e0d\u7ba1\u662f\u65e0\u7b26\u53f7\u6570\u8fd8\u662f\u6709\u7b26\u53f7\u6570\uff0c\u5b83\u4eec\u90fd\u662f\u4e8c\u8fdb\u5236\u7684\u4e00\u4e32\u6570\u503c\u800c\u5df2\uff1b\u800c\u5f53\u8fd9\u4e2a\u503c\u88ab\u5f53\u505a\u67d0\u79cd\u7c7b\u578b\u6bd4\u8f83\u65f6\uff1a\u53c8\u7b26\u53f7\u6570\u7684MSB\u88ab\u7528\u6765\u8868\u793a\u8fd9\u4e2a\u6570\u5b57\u7684\u7b26\u53f7\uff0c\u800c\u65e0\u7b26\u53f7\u6570\u7684MSB\u5219\u662f\u4f4d\u6743\u6700\u9ad8\u7684\u90a3\u4e00\u4f4d\u3002\u65e0\u8bba\u91c7\u7528\u4ec0\u4e48\u6837\u7684\u4e8c\u8fdb\u5236\u683c\u5f0f\uff0c\u4e00\u4e2a\u65e0\u7b26\u53f7\u6570\u6c38\u8fdc\u4e5f\u4e0d\u80fd\u6210\u4e3a\u8d1f\u503c\u3002

integer\u7c7b\u578b\u4e5f\u662f\u4e00\u79cd\u5bc4\u5b58\u5668\u6570\u636e\u7c7b\u578b\uff0cinteger\u7c7b\u578b\u7684\u53d8\u91cf\u4e3a\u6709\u7b26\u53f7\u6570\uff0c\u800creg\u7c7b\u578b\u7684\u53d8\u91cf\u5219\u4e3a\u65e0\u7b26\u53f7\u6570\uff0c\u9664\u975e\u7279\u522b\u58f0\u660e\u4e3a\u6709\u7b26\u53f7\u6570\uff0c\u8fd8\u6709\u5c31\u662finteger\u7684\u4f4d\u5bbd\u4e3a\u5bbf\u4e3b\u673a\u7684\u5b57\u7684\u4f4d\u6570\uff0c\u4f46\u6700\u5c0f\u4e3a32\u4f4d\uff0c\u7528integer\u7684\u53d8\u91cf\u90fd\u53ef\u4ee5\u7528reg\u5b9a\u4e49\uff0c\u53ea\u662f\u5bf9\u4e8e\u7528\u4e8e\u8ba1\u6570\u66f4\u65b9\u4fbf\u800c\u5df2\u3002reg,integer,real\uff0ctime\u90fd\u662f\u5bc4\u5b58\u5668\u6570\u636e\u7c7b\u578b\uff0c\u5b9a\u4e49\u5728Verilog\u4e2d\u7528\u6765\u4fdd\u5b58\u6570\u503c\u7684\u53d8\u91cf\uff0c\u548c\u5b9e\u9645\u7684\u786c\u4ef6\u7535\u8def\u4e2d\u7684\u5bc4\u5b58\u5668\u6709\u533a\u522b




\u4eca\u5929\u770b\u4ee3\u7801\u65f6\u9047\u5230\u4e86integer\uff0c\u53ea\u77e5\u9053\u8fd9\u662f\u4e2a\u6574\u6570\u7c7b\u578b\uff0c\u53ef\u8be6\u7ec6\u7684\u5185\u5bb9\u5374\u4e00\u7a8d\u4e0d\u901a\uff0c\u67e5\u770b\u4e86\u8d44\u6599---\u300averilog\u6570\u5b57VLSI\u8bbe\u8ba1\u6559\u7a0b\u300b\u3002\u5176\u4e2d\u662f\u8fd9\u4e48\u5199\u5230\u7684\uff1a
\u5927\u591a\u6570\u7684\u77e2\u91cf\u7c7b\u578b\uff08reg\u6216\u8005net\uff09\u90fd\u88ab\u9ed8\u8ba4\u5f53\u505a\u65e0\u7b26\u53f7\u6570\u3002integer\u548creal\u662f\u4e2a\u4f8b\u5916\uff0c\u5b83\u4eec\u88ab\u9ed8\u8ba4\u4e3a\u5f53\u505a\u6709\u7b26\u53f7\u6570\u3002\u901a\u5e38\uff0creal\u7c7b\u578b\u662f\u4e0d\u53ef\u7efc\u5408\u7684\u3002
\u5047\u8bbe\u5728\u6ca1\u6709\u6ea2\u51fa\u7684\u60c5\u51b5\u4e0b\uff0c\u4e0d\u7ba1\u662f\u65e0\u7b26\u53f7\u6570\u8fd8\u662f\u6709\u7b26\u53f7\u6570\uff0c\u5b83\u4eec\u90fd\u662f\u4e8c\u8fdb\u5236\u7684\u4e00\u4e32\u6570\u503c\u800c\u5df2\uff1b\u800c\u5f53\u8fd9\u4e2a\u503c\u88ab\u5f53\u505a\u67d0\u79cd\u7c7b\u578b\u6bd4\u8f83\u65f6\uff1a\u53c8\u7b26\u53f7\u6570\u7684MSB\u88ab\u7528\u6765\u8868\u793a\u8fd9\u4e2a\u6570\u5b57\u7684\u7b26\u53f7\uff0c\u800c\u65e0\u7b26\u53f7\u6570\u7684MSB\u5219\u662f\u4f4d\u6743\u6700\u9ad8\u7684\u90a3\u4e00\u4f4d\u3002\u65e0\u8bba\u91c7\u7528\u4ec0\u4e48\u6837\u7684\u4e8c\u8fdb\u5236\u683c\u5f0f\uff0c\u4e00\u4e2a\u65e0\u7b26\u53f7\u6570\u6c38\u8fdc\u4e5f\u4e0d\u80fd\u6210\u4e3a\u8d1f\u503c\u3002

在Verilog中有两种类型的赋值语句 连续赋值和过程赋值 赋值表达式由三个部分组成 左
值赋值运算符=或<= 和右值右值可以是任何类型的数据包括net型和register型但对连续

赋值 左值必须是net类型的数据 而过程赋值 左值必须是register类型的数据 下面将作详细描



1连续赋值

在initial或always外的assign赋值语句 称为连续赋值语句 一般在描述纯组合电路时使用 例



wire out //类型定义左值必须是net类型包括wire tri wand wor等等

assign out = a + b //综合结果为加法器

assign out = en ? a : b //多路选择器

assign out = en ? in : Z //三态门

也可以在数据定义时同时进行连续赋值如

wire out = a + b

使用连续赋值语句 所有右值都是敏感信号 当右值发生变化时 计算表达式的值 并将结

果传给左值具有组合电路的特性输入变化输出立即变化

2过程赋值

在initial或always块中的赋值语句 称为过程赋值语句 包括三种 Blocking赋值

Non-blocking赋值和过程连续赋值assign/deassign

Blocking赋值与顺序相关的而Non-blocking赋值与顺序无关一般来说使用Non-blocking赋

值描述时序逻辑电路使用Blocking赋值语句描述组合逻辑电路例如

reg X,Y,Z;

//Non-blocking assignment

always @(posedge Clk)

begin

X <= A && B;

Y <= X;

Z <= Y;

end

reg X,Y,Z;

//Blocking assignment

always @(posedge Clk)

begin

X = A && B;

Y = X;

Z = Y;

end在Verilog中有两种类型的赋值语句 连续赋值和过程赋值 赋值表达式由三个部分组成 左

值赋值运算符=或<= 和右值右值可以是任何类型的数据包括net型和register型但对连续

赋值 左值必须是net类型的数据 而过程赋值 左值必须是register类型的数据 下面将作详细描



1连续赋值

在initial或always外的assign赋值语句 称为连续赋值语句 一般在描述纯组合电路时使用 例



wire out //类型定义左值必须是net类型包括wire tri wand wor等等

assign out = a + b //综合结果为加法器

assign out = en ? a : b //多路选择器

assign out = en ? in : Z //三态门

也可以在数据定义时同时进行连续赋值如

wire out = a + b

使用连续赋值语句 所有右值都是敏感信号 当右值发生变化时 计算表达式的值 并将结

果传给左值具有组合电路的特性输入变化输出立即变化

2过程赋值

在initial或always块中的赋值语句 称为过程赋值语句 包括三种 Blocking赋值

Non-blocking赋值和过程连续赋值assign/deassign

Blocking赋值与顺序相关的而Non-blocking赋值与顺序无关一般来说使用Non-blocking赋

值描述时序逻辑电路使用Blocking赋值语句描述组合逻辑电路例如

reg X,Y,Z;

//Non-blocking assignment

always @(posedge Clk)

begin

X <= A && B;

Y <= X;

Z <= Y;

end

reg X,Y,Z;

//Blocking assignment

always @(posedge Clk)

begin

X = A && B;

Y = X;

Z = Y;

end

http://www.cnblogs.com/nanoty/archive/2012/10/21/2733017.html

  • Verilog 鏁版嵁绫诲瀷
    绛旓細Verilog涓紝鏁版嵁绫诲瀷涓昏鍒嗕负涓ょ被锛 鐗╃悊鏁版嵁绫诲瀷 锛堜富瑕佸寘鎷繛绾垮瀷鍜屽瘎瀛樺櫒鍨嬶級鍜 鎶借薄鏁版嵁绫诲瀷 锛堜富瑕佸寘鎷細鏁村瀷銆佹椂闂村瀷銆佸疄鍨嬪拰鍙傛暟鍨锛夌墿鐞嗘暟鎹被鍨嬩笌瀹為檯纭欢鐢佃矾鐨勭‖浠跺叧绯绘瘮杈冩槑鏄撅紝鎶借薄绋嬪害姣旇緝浣 鎶借薄鏁版嵁绫诲瀷鏄繘琛岃緟鍔╄璁″拰楠岃瘉鐨勬暟鎹被鍨 Verilog涓富瑕佺殑鐗╃悊鏁版嵁绫诲瀷鏄細杩炵嚎鍨嬨佸瘎瀛樺櫒鍨嬨佸瓨鍌...
  • verilog hdl鐨勬ā鍨嬪叡鏈夊摢鍑犵绫诲瀷
    绛旓細hdl妯″瀷銆倂erilog hdl鏃㈡槸涓绉嶈涓烘弿杩扮殑璇█涔熸槸涓绉嶇粨鏋勬弿杩扮殑璇█銆傝繖涔熷氨鏄锛屾棦鍙互鐢ㄧ數璺殑鍔熻兘鎻忚堪涔熷彲浠ョ敤鍏冨櫒浠跺拰瀹冧滑涔嬮棿鐨勮繛鎺ユ潵寤虹珛鎵璁捐鐢佃矾鐨剉erilog hdl妯″瀷銆倂erilog妯″瀷鍙互鏄疄闄呯數璺殑涓嶅悓绾у埆鐨勬娊璞°傝繖浜涙娊璞$殑绾у埆鍜屽畠浠搴旂殑妯″瀷绫诲瀷鍏辨湁浠ヤ笅浜旂锛氱郴缁熺骇(system):鐢ㄩ珮绾ц瑷缁撴瀯...
  • 鏈鍩烘湰鐨剉erilog鍙橀噺鏈夊摢浜绫诲瀷
    绛旓細鏍规嵁verilig2001瑙勮寖锛寁erilog鏈変袱澶х被鍨嬶紝涓涓槸net绫诲瀷锛屽畠鍖呭惈wire锛寃or锛宼ri锛宼rireg绛夌瓑绫诲瀷鐨勫彉閲忥紝鍏朵腑wire鏄渶鍩烘湰鐨勭被鍨嬨傚彟澶栦竴涓槸鍙彉绫诲瀷锛屽畠鍖呭惈reg锛宨nteger锛宼ime锛宺eal锛宺ealtime绛夌瓑绫诲瀷鐨勫彉閲忥紝鍏朵腑reg鍜宨nteger鏄渶鍩烘湰鐨勭被鍨嬨
  • verilog璇█鍏ラ棬鏁欑▼
    绛旓細4銆佸湪Verilog涓紝鏈変笁绉嶆暟鎹被鍨嬶紝涓绉嶆槸瀵勫瓨鍣ㄧ被鍨嬫暟鎹紝涓绉嶆槸绾跨綉鍨嬶紝涓绉嶆槸鍙傛暟鍨锛屽弬鏁板瀷鏁版嵁闇瑕佸湪鍓嶉潰鍔犲叆parameter锛岀偣鍑诲嵆鍙紝濡備笅鍥炬墍绀恒5銆佸湪浣跨敤瀵勫瓨鍣ㄧ被鍨嬫暟鎹椂锛岄渶瑕佽鏄庢暟鎹綅瀹斤紝浣跨敤[n锛0]琛ㄧず锛屽涓嬪浘鎵绀恒6銆乂erilog涓紝鏈甯哥敤鐨勮鍙ユ槸always璇彞锛岃瀹氫箟always璇彞鐨勮Е鍙戞潯浠讹紝甯...
  • verilog琛ㄨ揪寮忕殑鏁版嵁绫诲瀷
    绛旓細verilog鍏辨湁浜旂瀵勫瓨鍣ㄧ被鍨:reg integer time real realtime銆2.2.1 reg瀵勫瓨鍣(1)reg瀵勫瓨鍣ㄧ殑绫诲瀷reg瀵勫瓨鍣ㄦ槸鏈甯哥敤鐨勫瘎瀛樺櫒绫诲瀷,杩欑瀵勫瓨鍣ㄤ腑鍙兘瀛樻斁鏃犵鍙锋暟銆傚鏋滅粰reg涓瓨鍏ヤ竴涓礋鏁,閫氬父浼氳瑙嗕负姝f暟銆(2)鐢╮eg澹版槑瀛樺偍鍣 鍦╲erilog涓笉鑳界洿鎺ュ0鏄庡瓨鍌ㄥ櫒,瀛樺偍鍣ㄦ槸閫氳繃瀵勫瓨鍣ㄦ暟缁勫0鏄庣殑,鍗崇敤reg澹版槑銆傚彲浠ヨ,瀛...
  • verilog涓湁鍝嚑绉嶇被鍨嬬殑璧嬪艰鍙,璇存槑瀹冧滑鐨勫尯鍒,骞朵妇渚
    绛旓細end鍦╒erilog涓湁涓ょ绫诲瀷鐨勮祴鍊艰鍙 杩炵画璧嬪煎拰杩囩▼璧嬪 璧嬪艰〃杈惧紡鐢变笁涓儴鍒嗙粍鎴 宸 鍊艰祴鍊艰繍绠楃=鎴<= 鍜屽彸鍊煎彸鍊煎彲浠ユ槸浠讳綍绫诲瀷鐨勬暟鎹寘鎷琻et鍨嬪拰register鍨嬩絾瀵硅繛缁 璧嬪 宸﹀煎繀椤绘槸net绫诲瀷鐨勬暟鎹 鑰岃繃绋嬭祴鍊 宸﹀煎繀椤绘槸register绫诲瀷鐨勬暟鎹 涓嬮潰灏嗕綔璇︾粏鎻 杩 1杩炵画璧嬪 鍦╥nitial鎴朼lways澶栫殑assign...
  • ibuf鏄verilog涓殑涓绉嶆暟鎹绫诲瀷鍚?
    绛旓細Verilog HDL鏈塱nteger銆乸arameter銆乺eg銆亀ire銆乴arge銆乵edium銆乻calared銆乼ime銆乻mall銆乼ri銆乼ilo銆乼ril銆乼riand銆乼rior銆乼rireg銆乿ectored銆亀and鍜寃or绛夌被鍨嬶紝浣嗘病鍚杩噄buf绫诲瀷銆傛槸涓嶆槸璁捐鑰呰嚜宸卞畾涔鐨勭被鍨锛
  • verilog hdl甯哥敤鐨勬暟鎹绫诲瀷涓,鍙患鍚鐨勬湁___,涓嶅彲浠ョ患鍚堢殑鏈...
    绛旓細鍙患鍚鐨勬湁reg锛寃ire锛宼ri绛夌瓑鏁版嵁绫诲瀷锛屼笉鍙互缁煎悎鐨勬湁real锛宼ime绛夌瓑鏁版嵁绫诲瀷銆
  • verilog涓reg鍜宨nteger鐨勫尯鍒強涓句緥
    绛旓細reg,integer,real锛宼ime閮芥槸瀵勫瓨鍣ㄦ暟鎹绫诲瀷锛屽畾涔夊湪Verilog涓鐢ㄦ潵淇濆瓨鏁板肩殑鍙橀噺锛屽拰瀹為檯鐨勭‖浠剁數璺腑鐨勫瘎瀛樺櫒鏈夊尯鍒 浠婂ぉ鐪嬩唬鐮佹椂閬囧埌浜唅nteger锛屽彧鐭ラ亾杩欐槸涓暣鏁扮被鍨嬶紝鍙缁嗙殑鍐呭鍗翠竴绐嶄笉閫氾紝鏌ョ湅浜嗚祫鏂---銆妚erilog鏁板瓧VLSI璁捐鏁欑▼銆嬨傚叾涓槸杩欎箞鍐欏埌鐨勶細澶у鏁扮殑鐭㈤噺绫诲瀷锛坮eg鎴栬卬et锛夐兘琚粯璁ゅ綋鍋...
  • verilog妯″潡涓悇涓彉閲鐨勭被鍨鎬庝箞纭畾
    绛旓細realdelta;//瀹氫箟涓涓鍚嶄负delta鐨勫疄鍨嬪彉閲 鏃堕棿瀵勫瓨鍣細浠跨湡鏄寜鐓т豢鐪熸椂闂磋繘琛岀殑锛寁erilog浣跨敤涓涓壒娈婄殑鏃堕棿瀵勫瓨鍣ㄦ暟鎹绫诲瀷鏉ヤ繚瀛樹豢鐪熸椂闂淬傛椂闂村彉閲忛氳繃浣跨敤鍏抽敭瀛梩ime鏉ュ0鏄庯紝鍏跺搴︿笌鍏蜂綋瀹炵幇鏃犲叧锛屾渶灏忎负64浣嶃傞氳繃璋冪敤绯荤粺鍑芥暟$time鍙互鍙栧緱褰撳墠鐨勪豢鐪熸椂闂淬傛暟缁 Verilog涓鍏佽澹版槑reg銆乮nteger銆乼ime銆...
  • 扩展阅读:verilog中符号大全 ... verilog教程 ... 鸿蒙log和nolog哪个好 ... verilog命名规则大全 ... verilog数据类型 ... verilog real类型 ... verilog四种逻辑值 ... verilog标识符规则有哪些 ... verilog状态机分类 ...

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