FPGA之旅---例化


一、信号端口采用名称关联

语法结构:

.PortName(port_expr)

//PortName是顶层的名称,port_expr是底层端口

//port_expr可以是一下任何类型

1.标识符

2.位选择,如.C(d[0]),C端口连接到d信号的第0位

3.部分选择,例.bus(din[5:4])

 

例:

module yumen(C,A,B)

.C(T3)//

二、各分层模块之编写

底层编写:正常书写后,最后用assign语句将输出定义

    例:

      output [3:0] key_value;

      原来的按键输出按键值的次数,那么次数是reg型,

always @(posedge clk or negedge rst)

  if(!rst)

    ci<=5'b0;

  else if(dawn_flagr!=4'b0)
    ci<=ci+1'b1;

  //此时ci是按键输出值,是reg型,此时需要换一下输出值,重新定义输出数组,用assign赋值语句将ci赋值给输出

  //即

  assign key_value=ci;

 三、顶层模块的编写

1.所有中间变量必须重新声明,否则会默认为一位的 

2.注意在对在同一条线上的变量命名的时候使用同一名字

3.模块例化后在连线语法:

module_name1 U1//模块名字空格 加U?

(  

  .clk(clk),//注意,用逗号,外边是顶层外部信号,括号内是底层模块信号名字

  .rst(rst),

  .top_in_signal(U1_in_signal),//顶层输入信号进入U1模块

    ....

  .U1_signal_output(U2_in),//U1输出连到U2输入,此信号需要声明一下,否则会默认是一位的

    ....

);//括号内用逗号隔开,最后一个不加逗号,

module_name2 U2//

(

  .clk(clk),//注意,用逗号,外边是层外部信号,括号内是层模块信号名字

  .rst(rst),

  .U2_in(U1_output),

    ...

  .Top_out_signal(U1_out_signal),//不是很确定,有待验证

    ...

);//用分号


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM