//
// 第一题 : 数据提取模块
//
// 输入:
// clk
// rst_n
// din[255:0]
// offset[6:0]
// 输出
// dout[127:0]
//
// 要求:
// 1. 要求根据偏移量offset,从din中提取出128bit到dout中。用伪代码表示如下:
// dout = din[offset+128:offset]
// 2. 可以流水线操作,din和offset每个时钟都会变化
// 3. 在合理的延迟下,尽可能的降低资源的使用
//
module test1 (
input clk,
input rst_n,
input [255:0] din,
input [6:0] offset,
output reg [127:0] dout
);
always @(posedge clk ) begin
if(!rst_n)
dout <= 128'b0;
else case(offset[6:4])
0: dout <= din[0+offset[3:0]+:128]
1: dout <= din[16+offset[3:0]+:128]
2: dout <= din[32+offset[3:0]+:128]
3: dout <= din[48+offset[3:0]+:128]
4: dout <= din[64+offset[3:0]+:128]
5: dout <= din[80+offset[3:0]+:128]
6
FPGA笔试题目
最新推荐文章于 2024-07-23 16:41:03 发布
该博客探讨了FPGA笔试中关于资源占用的问题,指出直接使用dout = din[offset+:128]会导致错误,并提供了相关参考链接以深入理解正确解答。
摘要由CSDN通过智能技术生成