modelsim 시뮬레이션에서 자꾸 에러가 뜹니다.(verilog)

paulus1206의 이미지

nh400프로세서를 만드는데 alu회로의 값이 불러와 지질 않네요.

module nh400_top(
	clk,
	rst_x,
 
	// instruction memory
	imem_addr,
	idata,
 
	// data memory
	dmem_oeb,
	dmem_web,
	dmem_addr,
	dmem_rdata,
	dmem_wdata
 
);
 
input clk, rst_x;
input [15:0] idata;
input [3:0] dmem_rdata;
output [10:0] imem_addr;
output dmem_oeb, dmem_web;
output [3:0] dmem_wdata;
output [11:0] dmem_addr;
 
wire [11:0] pc_next, PC, pc_branch;
wire branch;
wire [15:0] inst;
wire [3:0] X, Y, ACC, SP;
wire [1:0] SR;
 
wire mem_read, mem_write;
 
wire write_x, write_y, write_acc;
 
wire write_sp, write_pc;
wire [1:0] write_sr;
wire [1:0] src_x, src_y, src_acc, src_sr, src_sp;
 
wire [3:0] wdata_x, wdata_y, wdata_acc, wdata_sp;
wire [1:0] wdata_sr;
 
wire [3:0] ex_oper1, ex_oper2;
wire [3:0] alu_op;
wire [3:0] ex_result;
wire [1:0] ex_flag;
wire [11:0] wdata_pc;
wire wait_mem, stall;
 
reg clear_pc;
 
always @(posedge clk or negedge rst_x)
begin
	if (!rst_x)
		clear_pc <= 1'b1;
	else
		clear_pc <= 1'b0;
end
 
assign wdata_pc = clear_pc ? 12'b0 : pc_next;
 
 
nh400_dec u_decoder(
	.clk (clk),
	.rst_x (rst_x),
	.inst (inst),
	.X (X), 
	.Y (Y), 
	.ACC (ACC),
	.SP (SP), 
	.PC (PC), 
	.SR (SR),
 
	// we need execution unit
	.ex_result (ex_result),	
	.ex_oper1 (ex_oper1),
	.ex_oper2 (ex_oper2),
 
	.mem_rdata (dmem_rdata),
	.mem_wdata (dmem_wdata),
	.mem_read (mem_read),
	.mem_write (mem_write),
	.mem_add (dmem_addr),
 
	.gpr_write ({write_acc, write_y, write_x}),
	.write_sr (write_sr),
	.write_sp (write_sp),	
	.write_pc (write_pc),	
	.src_x (src_x),
	.src_y (src_y),
	.src_acc (src_acc),
	.src_sr (src_sr),
	.src_sp (src_sp),
	.alu_op (alu_op),
 
	.wait_mem (wait_mem),
	.stall (stall),
	.branch (branch),
	.pc_branch	(pc_branch)
);
 
 
nh400_data_map u_data_map(
	// rename write_sr	
	.write_sr (write_sr),
 
	.src_x (src_x),
	.src_y (src_y),
	.src_acc (src_acc),
	.src_sr (src_sr),
	.src_sp (src_sp),
 
	.ex_result (ex_result),
	.ex_oper1 (ex_oper1),
	.mem_rdata (dmem_rdata),
	.ex_flag (ex_flag),
 
	.wdata_x (wdata_x),
	.wdata_y (wdata_y),
	.wdata_acc (wdata_acc),
	.wdata_sp (wdata_sp),
	.wdata_sr (wdata_sr)
);
 
nh400_spr u_spr(
	.clk (clk), 
	.reset (rst_x), 
	.SP (SP), 
	.SR (SR), 
	.PC (PC), 
 
	.write_sp (write_sp), 
	.write_sr (write_sr[0] || write_sr[1]), 
	.write_pc (write_pc), 
	.wdata_sp (wdata_sp), 
	.wdata_sr (wdata_sr), 
	.wdata_pc (wdata_pc)
);
 
nh400_gpr u_gpr(
	.clk (clk),
	.X (X), 
	.Y (Y), 
	.ACC (ACC), 
 
	.write_x (write_x), 
	.write_y (write_y), 
	.write_acc (write_acc), 
	.wdata_x (wdata_x), 
	.wdata_y (wdata_y), 
	.wdata_acc (wdata_acc)
);
 
nh400_dmemctrl u_dmemctrl(
	.clk (clk),
	.rst_x (rst_x),
	.mem_read (mem_read),
	.mem_write (mem_write),
 
	.dmem_oeb (dmem_oeb),
	.dmem_web (dmem_web),	
 
	.wait_mem (wait_mem)
);
 
 
// Project : you should replace these modules with your own modules (alu, fetch).
nh400_alu u_alu(
	.operation (alu_op), 
	.a (ex_oper1), 
	.b (ex_oper2), 
	.cin (SR[1]), 
	.zin (SR[0]), 
  .result (ex_result), 
  .cout (ex_flag[1]), 
  .zout (ex_flag[0])
);
nh400_fetch u_fetch(
  .clk (clk), 
  .rst_x (rst_x), 
  .stall (stall),
  .pc_next (pc_next), 
  .pc (PC), 
  .branch (branch), 
  .pc_branch (pc_branch), 	
  .imem_addr (imem_addr), 
  .idata (idata), 
  .instruction (inst)
);
 
 
 
endmodule

나머지 함수들은 문제없이 잘 읽어 들이는데

여기 맨 밑줄 쪽에 있는 fetch하구 alu회로를 연결에서, 사진 첨부 한것 과 같이 module에서 찾을수 가 없다고 뜨네요.

인풋값이나 아웃풋 값을 똑같이 했는데도 이런 증상이 계속 반복되는데 ㅠㅠ
.clk (clk),
.rst_x (rst_x),
.stall (stall),
.pc_next (pc_next),
.pc (PC),
.branch (branch),
.pc_branch (pc_branch),
.imem_addr (imem_addr),
.idata (idata),
.instruction (inst)
.clk를 제거하고 괄호 안의 부분만 넣어서 해도 찾을수가 없다고 나옵니다.

어떻게 하면 해결할수 있을까요?? ㅠㅠ 고수님들 좀 도와주세요ㅡ

File attachments: 
첨부파일 크기
Image icon 1.PNG75.45 KB
eseo의 이미지

먼저 nh400_alu 모듈을 찾아보셔야 겠네요.
해당 모듈이 없거나, 있더라도 그 모듈에는 "a", "b" 등등과 같은 포트는 없는것 처럼 보이네요.

nh400_fetch 도 같은 증상처럼 보입니다.

---
배려하는 마음을 갖자.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.