小编Mor*_*gan的帖子

在 Verilog 中分割位数组

我正在 verilog 上设计一种基本的 AES 算法,我需要将 128 位数组分成 16 个部分,每个部分 8 位。

例如(基本 8 位示例),如果我收到 10111011,我需要生成 4 个输出 10 11 10 11

algorithm verilog

0
推荐指数
1
解决办法
2万
查看次数

Verilog测试台代码

任何人都可以帮我编写以下代码的verilog测试平台代码!我试过但它不起作用!

module top(clock_in, Reset, Hold, up_down, Led_Out, f);     
  input clock_in, Reset, Hold, up_down;
  output      [6:0] Led_Out;        
  output wire [3:0] f;

  wire pulse;

  clock_design temp0(clock_in, pulse);
  up_down_counter temp1(pulse, Reset, Hold, up_down, f);
  led7 temp2(Led_Out, f);
endmodule
Run Code Online (Sandbox Code Playgroud)

led7:

module led7(iOut, iQ);
  output reg [6:0] iOut;
  input      [3:0] iQ;

  always @(iQ)
    case (iQ)
      4'b0000: iOut = 7'b0000001; //0
      4'b0001: iOut = 7'b1001111; //1
      4'b0010: iOut = 7'b0010010; //2
      4'b0011: iOut = 7'b0000110; //3
      4'b0100: iOut = 7'b1001100; //4
      4'b0101: iOut = 7'b0100100; //5 …
Run Code Online (Sandbox Code Playgroud)

verilog

0
推荐指数
1
解决办法
2万
查看次数

Verilog如何展开嵌套for循环?

我试图用一系列嵌套for循环做一个累积和,我没有运气.我想我需要更好地理解Verilog如何展开for循环才能真正想象出如何解决我的问题.

基本上我有一系列的tap输出(tap_output_i和tap_output_q)是3D阵列(src,dst,tap).我想总结每个时钟到达特定目的地的所有源和抽头.

这是我有的不起作用(每次out_sig为0):

//NODES = 2
wire signed [DAC_BUS_WIDTH-1:0]      out_sig_i [NODES-1:0];
wire signed [DAC_BUS_WIDTH-1:0]      out_sig_q [NODES-1:0];
reg signed [DAC_BUS_WIDTH-1:0] out_sig_i_reg[NODES-1:0];
reg signed [DAC_BUS_WIDTH-1:0] out_sig_q_reg[NODES-1:0];

integer dstVal,srcVal, tapVal;
//generate
always @(posedge clk) begin: AlwaysSummingForLoop
  for (dstVal=0; dstVal<2; dstVal=dstVal+1) begin:SummingForLoop
    out_sig_i_reg[dstVal] <= 0;
    out_sig_q_reg[dstVal] <= 0;
      for (srcVal=0; srcVal<2; srcVal=srcVal+1) begin:SrcForLoop
        if(srcVal != dstVal) begin:innerIf
             for (tapVal=0; tapVal<8; tapVal=tapVal+1) begin:tapSum
                out_sig_i_reg[dstVal] <= out_sig_i_reg[dstVal] + tap_output_i[srcVal][dstVal][tapVal];
                out_sig_q_reg[dstVal] <= out_sig_q_reg[dstVal] + tap_output_q[srcVal][dstVal][tapVal];
             end
        end
      end
    end
end
//endgenerate
assign out_sig_i[0] = out_sig_i_reg[0];
assign out_sig_q[0] …
Run Code Online (Sandbox Code Playgroud)

for-loop verilog fpga

0
推荐指数
1
解决办法
5142
查看次数

一行verilog代码

我有一行verilog代码,我上网了,我不明白这意味着什么.

rom_data <= #`DEL {rom[rom_addr+3],rom[rom_addr+2],rom[rom_addr+1],rom[rom_addr]};
Run Code Online (Sandbox Code Playgroud)

有人可以帮我揭穿这个吗?

syntax verilog

-1
推荐指数
1
解决办法
90
查看次数

这将在短路评估中首先执行(a && b)

可以说我有以下代码:

if (a&&b)
{
...
}
Run Code Online (Sandbox Code Playgroud)

第一个问题,谁决定在这种情况下使用短路评估?编译器还是C标准?

第二个问题,哪一个将首先评估?ab.序列由谁决定,有没有办法改变我的代码中的序列?

c

-5
推荐指数
1
解决办法
864
查看次数

标签 统计

verilog ×4

algorithm ×1

c ×1

for-loop ×1

fpga ×1

syntax ×1