verilog问题,能解释下为什么是这个答案吗 提供一个RTL级描述的verilog程序,并解释下怎么看出是...

\u80fd\u4e0d\u80fd\u89e3\u91ca\u4e00\u4e0b\u8fd9\u4e2averilog\u8bed\u53e5 clk_3 <= (clk_2 <= ~clk_2); \u6539\u6210vhdl\u8bed\u8a00\u5e94\u8be5\u600e\u4e48\u5199\u5462\uff1f

\u4f60\u5728process\u7684\u654f\u611f\u5217\u8868\u91cc\u52a0\u4e0a\u53e6\u4e00\u4e2a\u65f6\u949f\uff0c\u7136\u540e\u91cc\u9762\u7167\u7740\u53e6\u4e00\u4e2a\u65f6\u949f\u5199\uff0c\u6709\u95ee\u9898\u5417\uff1f\u6211\u7528verilog\u7684vhdl\u4e5f\u4e0d\u662f\u7279\u522b\u719f\u6089\u3002

always@(poseadge clk or negeadge rst_n)
begin
if(~rst_n)
counter <= 8'h00;
else
counter <= counter + 8'h01;
end

RTL\u7ea7\u5373\u5bc4\u5b58\u5668\u4f20\u8f93\u7ea7\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u4ee3\u7801\u63cf\u8ff0\u7684\u662f\u5bc4\u5b58\u5668\u4ee5\u53ca\u5b83\u4eec\u4e4b\u95f4\u7684\u7ec4\u5408\u7535\u8def\uff08\u4f20\u8f93\uff09\u3002\u4e0a\u9762\u8fd9\u4e2a\u4f8b\u5b50\uff0ccounter\u662f8\u4f4d\u5bc4\u5b58\u5668\uff0c\u800c\u5bf9counter\u8fdb\u884c\u8d4b\u503c\u5219\u662f\u7ec4\u5408\u7535\u8def\u4e86\uff0c\u4ee3\u8868\u4e86\u6570\u636e\u7684\u4f20\u8f93\u3002RTL\u662fverilog\u7f16\u7a0b\u4e2d\u6700\u5e38\u7528\u7684\u62bd\u8c61\u7ea7\u3002

\u4e66\u4e0a\u7684\u539f\u8bdd\uff1a
For RTL design, you use "register", "Flip/flop", "combination logic", "mux"
as basic building element to setup your whole chip.

casex是顺序执行的满足条件就退出
所以5‘b00???是满足5’b0x000的
因为这里‘x’和‘?’ 一样会被看成是任意满足的数值。
如果在实际电路里面这种语义的东西是综合不出来的。所以请尽量避免进到casex()的信号是带有x数值的信号。

在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较结果。
在casex语句中,则把这种处理方式进一步扩展到对x的处理,即如果比较双方有一方的某些位的值是z或x,那么这些位的比较就不予考虑。

题中5‘b0X000的X不考虑,所以与之匹配的是5’b00???。A的值为1,B的值不变

case语句条件互斥不需要考虑优先级,但是casex是有优先级的,上面的优先级高所以答案就是你看到的了。。

  • verilog鐨勭浉鍏闂
    绛旓細1:verilog閲鍙互 VHDL閲屼笉鍙互 2://鍗曡娉ㄨВ /*...*/澶氳娉ㄨВ 3:渚嬪[3:0]琛ㄧず4浣嶅 [5:1]琛ㄧず5浣嶅 4'd10琛ㄧず4浣嶅崄杩涘埗鏁,涓鏁颁笉澶熷乏绔ˉ0 4'b0101琛ㄧず4浣2杩涘埗 鍏朵粬杩涘埗绫讳技 4:鍛...涓嶇煡閬...5:缂栬瘧鎸囧鏄暐,璨屼技褰撳垵鎴戞病瀛﹀埌...鍙檽寰楃紪璇..涓嶇煡缂栬瘧鎸囧...6:褰撶劧鍟,瓒...
  • VerilogHDL缂栫▼闂 璇烽珮浜鸿В璇 璋㈣阿!!!
    绛旓細module test_onebit_shift(clk,reset,in_dat,data);input clk,reset,in_dat;output [3:0] data;reg [3:0] data;always@(posedge clk or negedge reset)begin if(!reset)begin data[3:0]<=4'b0000;end else begin data[3:0]<={data[2:0],in_dat};end end endmodule ...
  • 姹傞棶涓涓Verilog鐨闂
    绛旓細鍥犱负鎵цresult<=(C>>1)鐨勬椂鍊欙紝杩欐椂鐨凜涓嶆槸C<=A+B鐨凜锛岃屾槸C鍦ㄦ椂閽熶笂鍗囨部鐨勫墠涓涓笺傚亣璁惧垵濮媋=0101锛宐=0010锛宑=1011 绗竴涓椂閽熶笂鍗囨部鏉ヤ复鐨勬椂鍊欙細C=0101+0010=0111 result=1011>>1=0101
  • 杩欏嚑澶╂病浜,鍙堢湅浜嗙湅鑰佸鐨VERILOG鐨勯偅鏈暟,鍙戠幇浜嗕竴浜涘畯瑙備笂涓嶅お鐞嗚В...
    绛旓細鍝堝搱锛岃繖涓闂涔熸浘缁忓洶鎵拌繃鎴戯紝鎴戠粰浣瑙i噴涓锛屼笉鐭ヨ兘璁╀綘鏄庣櫧涓嶃傛槑鐧藉埆蹇樼粰鎴戝姞鍒嗐1銆乧璇█鏄竴鏉′竴鏉$紪璇戠殑锛屽悓鏃跺畠鍙堟槸椤哄簭鎵ц鐨勶紝鎵浠ヤ笉浼氭湁闂銆2銆佷絾鏄verilog鎴栬匳HDL璇█鍛㈠氨涓嶄竴鏍蜂簡锛岃繖涓ょ璇█鎻忚堪鐨勭‖浠舵槸骞惰鎵ц鐨勶紝浣嗘槸缂栬瘧鎴栬呬豢鐪熷張鏄『搴忕殑锛屽氨鏈夊彲鑳藉嚭闂浜嗐備妇涓緥瀛愯鏄庝笅...
  • verilog 闂
    绛旓細浣鍙互鎶娾渁lways@(posedge clk or negedge r_est)鈥濇敼涓衡渁lways@(posedge clk or posedge r_est)鈥濆啀缂栬瘧璇曡瘯锛屽簲璇ュ氨娌闂浜嗐備綘鍙抽敭璇ラ敊璇偣鍑烩淗elp鈥濋噷鏄繖涔堣鐨勶細CAUSE: In a conditional statement at the specified location in a Verilog Design File (.v), you specified a ...
  • verilog璇█绋嬪簭闂,姹傚ぇ绁炴潵瑙g瓟,濂栧姳涓板帤!8*8鐐归樀闂
    绛旓細module a21(row,line,clk);input clk;output[0:7] row,line;reg[0:7] row,line;integer a,j,j1,i,i1;always @(posedge clk)begin if(i>9999999) //i涓鸿鏁板櫒锛岀敤鏉ヤ骇鐢熼┍鍔ㄦ柟姝ed鐨勬椂閽焜锛堟樉绀烘椂闂翠负10000000*clk锛塨egin j<=~j;i<=0;end else i<=i+1;end always @(posedge ...
  • verilog 闂,鍦ㄧ嚎绛
    绛旓細module exe2(fd_out, clk, d, clr); //杩欓儴鍒嗕唬鐮佷綘缁欑殑姣旇緝涔憋紝鎴戜釜浜烘暣鐞嗕簡涓涓嬶紝娌℃湁缂栬瘧 //濡傛灉鏈夐敊璇锋捣娑碉紒鏁翠綋鏉ヨ灏辨槸涓涓噺璁℃暟鍣 output fd_out;reg fd_out;input[15:0] d;input clk,clr;reg [15:0]cnt;always@(posedge clk)begin if (!clr)begin cnt <= 4'h0000;...
  • verilog缂栫▼闂
    绛旓細1.512涓暟鏄2鐨9娆℃柟,鍗2^9 鍏堢‘瀹氳緭鍏ヤ负9浣嶅鐨勪簩杩涘埗鏁(杈撳叆鍙畾涔変竴涓彉閲忓氨鍙互,涓嶇煡閬撲綘鐢ㄦ病鐢ㄨ繃verilog,verilog涓嶉渶瑕佷綘鎶婃墍鏈夎緭鍏ラ兘涓涓鍒椾妇鍑烘潵,鍙涓涓緭鍏ュ彉閲,缁欏畠瀹氫箟浣嶅灏監K 濡(8:0)a )2.缂栧啓璇戠爜缂栫爜鍣,灏嗗叾鐢变簩杩涘埗杈撳叆杞负鐩稿搴旂殑鍗佽繘鍒惰緭鍑(杈撳嚭绫讳技杈撳叆,鍙畾涔変负涓涓...
  • 鍏充簬涓娈Verilog 浠g爜鐨闂
    绛旓細娌℃湁杩欐牱鍐欒繃浠g爜锛屼絾鏄効鎰忓簲璇ユ槸瀹氫箟浜嗕竴涓猂OM锛岃繖鍙互鐞嗚В涓轰竴涓瘎瀛樺櫒鏁扮粍(娣卞害涓64锛屽搴︿负8姣旂壒)锛屾墍浠ヨ繖閲岀殑rom_data[char_bit]涓嶄細瓒婄晫 鍙﹀锛VERILOG鏄敮鎸佸姩鎬佺储寮曠敤鍙橀噺琛ㄧず鐨勶紝鍙槸寰堝皯浜鸿繖鏍风敤锛屼富瑕佹槸鍥犱负杩欐牱鐨勯昏緫鍦―C缁煎悎涓棤娉曚紭鍖(SYNOPYS鍛婄煡鐨)鎵浠ラ櫎闈炴槸鐢ㄤ簬瀵勫瓨鍣ㄧ粍鎼缓鐨凴AM妯″瀷...
  • 鍏充簬verilog鐨勭畝鍗闂
    绛旓細绉讳綅瀵勫瓨鍣細module shift(clk,reset,out)input clk,reset;output out;reg [7:0] shiftreg;always@(posedge clk or negedge reset)if(!reset)shiftreg<=8'b10110001;else begin shiftreg[0]<=shiftreg[1];shiftreg[1]<=shiftreg[2];shiftreg[2]<=shiftreg[3];shiftreg[3]<=shiftreg[4];shiftre...
  • 扩展阅读:verilog可综合与不可综合 ... verilog教程 ... verilog课后题答案 ... verilog实例化模块 ... verilog hdl ... verilog 循环调用 ... verilog经典案例 ... verilog异或 ... verilog中不可综合关键字 ...

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