• 締切済み

Verilogでメモリのmoduleと演算のmoduleを組み合わせたい

module spram_sr(clk, we, address, data_i, data_o); input clk; input we; input [7:0] address; input [2:0] data_i; output [2:0] data_o; reg [6:0] ram [15:0]; reg [6:0] read_a; always @(posedge clk) begin if (we) begin ram[address] <= data_i; end read_a <= address; end assign data_o = ram[read_a]; endmodule を使って、メモリから8bitの整数を取り出して、0~15個の数値をたすような計算をさせたいと思って別に計算させるmoduleを作りました。これに計算をさせるスタート信号と計算終了を知らせるフィニッシュ信号を加えています。 module sigma(clk,x,sum,start,finish); input clk; input[7:0] x, start; output[7:0] sum; output finish; reg[7:0] sum,start,write_add; reg finish; integer i; always@(posedge clk) begin if(start) for(i=0;i<=15;i=i+1) sum<=sum+x[i]; write_add<=sum; finish<=1'b1; end endmodule この二つを使いたいのですが、メモリから演算のモジュールに整数を渡すやりかたがわかりません。もう一つmoduleを使って制御する必要があるのでしょうか?すいませんが、どなたか教えていただけないでしょうか?

みんなの回答

  • mahaze
  • ベストアンサー率29% (217/731)
回答No.1

回路設計者から見てツッコミどころはいくつもありますが、とりあえず接続方法だけ。 もう一つ上位階層のモジュールを作り、その中で2つのモジュールを呼び出してwireで接続してください。

musiyaki
質問者

お礼

ご連絡が遅くなりましたが、ありがとうございました。 よくわかっていなかったようで混乱していまあしたが、お陰さまで気付くことができました。

すると、全ての回答が全文表示されます。

関連するQ&A