无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

HDLbits--vectorr

2023-06-13 14:02 作者:業(yè)精于勤而荒于嬉哦  | 我要投稿

Given an 8-bit input vector [7:0], reverse its bit ordering.

如何實(shí)現(xiàn)一個(gè)八位的向量的逆序輸出?

這個(gè)是官方給的Solutions:

module top_module (

input [7:0] in,

output [7:0] out

);

assign {out[0],out[1],out[2],out[3],out[4],out[5],out[6],out[7]} = in;

/*

// I know you're dying to know how to use a loop to do this:


// Create a combinational always block. This creates combinational logic that computes the same result

// as sequential code. for-loops describe circuit *behaviour*, not *structure*, so they can only be used?

// inside procedural blocks (e.g., always block).

// The circuit created (wires and gates) does NOT do any iteration: It only produces the same result

// AS IF the iteration occurred. In reality, a logic synthesizer will do the iteration at compile time to

// figure out what circuit to produce. (In contrast, a Verilog simulator will execute the loop sequentially

// during simulation.)

always @(*) begin

for (int i=0; i<8; i++) // int is a SystemVerilog type. Use integer for pure Verilog.

out[i] = in[8-i-1];

end



// It is also possible to do this with a generate-for loop. Generate loops look like procedural for loops,

// but are quite different in concept, and not easy to understand. Generate loops are used to make instantiations

// of "things" (Unlike procedural loops, it doesn't describe actions). These "things" are assign statements,

// module instantiations, net/variable declarations, and procedural blocks (things you can create when NOT inside?

// a procedure). Generate loops (and genvars) are evaluated entirely at compile time. You can think of generate

// blocks as a form of preprocessing to generate more code, which is then run though the logic synthesizer.

// In the example below, the generate-for loop first creates 8 assign statements at compile time, which is then

// synthesized.

// Note that because of its intended usage (generating code at compile time), there are some restrictions

// on how you use them. Examples: 1. Quartus requires a generate-for loop to have a named begin-end block

// attached (in this example, named "my_block_name"). 2. Inside the loop body, genvars are read only.

generate

genvar i;

for (i=0; i<8; i = i+1) begin: my_block_name

assign out[i] = in[8-i-1];

end

endgenerate

*/

endmodule


HDLbits--vectorr的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
五峰| 留坝县| 荆州市| 揭东县| 正蓝旗| 姜堰市| 溧阳市| 正镶白旗| 容城县| 肃宁县| 大同县| 唐山市| 三门峡市| 鲁甸县| 大埔县| 同仁县| 城固县| 阳谷县| 敦煌市| 来宾市| 灵寿县| 安徽省| 紫云| 陆丰市| 纳雍县| 新泰市| 扶绥县| 营山县| 杭州市| 吴旗县| 军事| 博罗县| 望谟县| 呼玛县| 晴隆县| 浪卡子县| 海林市| 雅安市| 遵化市| 红桥区| 宜丰县|