HDLBits (13) — 選擇部分向量
2021-09-15 08:19 作者:僚機(jī)Wingplane | 我要投稿
本題鏈接:
https://hdlbits.01xz.net/wiki/Vector2
一個(gè) 32 位向量可以被視為包含 4 個(gè)字節(jié)(bits [31:24]、[23:16] 等)。構(gòu)建一個(gè)電路來反轉(zhuǎn) 4 字節(jié)字的字節(jié)順序。
AaaaaaaaBbbbbbbbCcccccccDddddddd => DdddddddCcccccccBbbbbbbbAaaaaaaa
使用此操作通常會(huì)在需要轉(zhuǎn)換一段數(shù)據(jù)的字節(jié)序時(shí),例如在使用小端格式的 x86 系統(tǒng)和許多 使用大端格式的Internet 協(xié)議中之間。
模塊聲明:
module top_module(
? ?input [31:0] in,
? ?output [31:0] out );
提示
部分選擇在語(yǔ)句的左側(cè)和右側(cè)都可以被使用

題目
module top_module(
? ?input [31:0] in,
? ?output [31:0] out );//
? ?// assign out[31:24] = ...;
endmodule

答案
module top_module (
input [31:0] in,
output [31:0] out
);
assign out[31:24] = in[ 7: 0];
assign out[23:16] = in[15: 8];
assign out[15: 8] = in[23:16];
assign out[ 7: 0] = in[31:24];
endmodule

輸出波形


Verillog 支持指定 bit 位后固定位寬的向量域選擇訪問。
[bit+: width]?: 從起始 bit 位開始遞增,位寬為 width。
[bit-: width]?: 從起始 bit 位開始遞減,位寬為 width。
參考內(nèi)容:
2.3 Verilog 數(shù)據(jù)類型?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-data-type.html
標(biāo)簽: