微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 有關if的編碼風格........看不懂ㄟ@@

有關if的編碼風格........看不懂ㄟ@@

时间:10-02 整理:3721RD 点击:
請教各位大牛...我在某本Codign Style的書看到用來介紹IF的兩個例子,描述如下:
1.
module priority_encoder(a,b,c,d,sel,z);
input a, b, c, d;
input [3:0] sel;
output z;
reg z;
always @(a or b or c or d or sel)
begin
z=0;
if (sel[0]) z=a;
if (sel[1]) z=b;
if (sel[2]) z=c;
if (sel[3]) z=d;
end
endmodule
2.
module priority_encoder_2(a,b,c,d,sel,z);
input a, b, c, d;
input [3:0] sel;
output z;
reg z;
always @(a or b or c or d or sel)
begin
z=0;
if (sel[3]) z=d;
else if (sel[2]) z=c;
else if (sel[1]) z=b;
else if (sel[0]) z=a;
end
endmodule
其中Case1會合成出串接式的架構(詳細圖無法畫出),由四個多工器組成.而case2會合成出一個並行的架構,只需一個多工器便可完成,可是我用synplify pro去合這兩個範例卻發現跟書上描述的不一樣,請教一下是不是我軟體設定上有問題還是....@#$%?
另外,這兩種結構到底有啥優缺點ㄋ,書上看的不是很董,有沒有說在哪種環境下哪種結構會比較快或是省面積之類的ㄋ,請各位大大不吝賜教謝謝^^

有關if的編碼風格........看不懂ㄟ@@
其中Case1會合成出串接式的架構(詳細圖無法畫出),由四個多工器組成.而case2會合成出一個並行的架構,只需一個多工器便可完成,
case2是一个带有优先级的电路,应该是串接式的架構
Case1不知道会成什么样子,可能是一个mux就行了
实际中可能常用以下写法及case2写法
case(sel)
4'b0001:z<=a;
4'b0010:z<=b;
4'b0100:z<=c;
4'b1000:z<=d;
default:z<=a;
endcase

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top