网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月10日漏签0天
verilog吧 关注:5,360贴子:17,987
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 3回复贴,共1页
<<返回verilog吧
>0< 加载中...

verilog初学者求助

  • 只看楼主
  • 收藏

  • 回复
  • 阳光菇
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如图,想请问一下模块在例化的时候:
1.如果采用方式一,那么较小型模块的括号里面填的是“连的更大模块的引脚”吗?
2.如果采用方式二,那么 点号后面 和 括号里面 写的是小模块引脚还是大模块引脚?
3.这里面有涉及信号的事情吗?信号和引脚在代码里面怎么表示呢?
谢谢
!


  • IlllIIll
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
方法一的话实例的名字要和原来的端口一一对应,第二种在括号内声明就行


2025-06-10 00:38:11
广告
  • 把菜全吃完
  • 富有美誉
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一般都是方式二,强烈建议看一看OpenSPARC T1/T2源码,不一定非要看明白,看看工业级代码的风格就行


  • ken_sun1230
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
给你一段我写的代码,仅供参考。
一般来说我习惯用sv写了,好处是端口不用写两遍,另外端口定义里面就有方向,这样顶层instance时把端口定义部分复制过去就好,接线时也能知道方向和位宽,这部分还可以复制一份当信号声明,反正都用logic,很方便。
至于信号名,在顶层不一定需要和模块名一致,当然能一致最好,有时候做不到,比如我的例子里面,一个模块instance了20个,还是两组,不可能名字一样
generate
genvar i,k;
for (i=0;i<16;i=i+1) begin : u2
calculate_cell u_val_cal_inst(
/*input logic */ .clk_timer (clk_timer ),
/*input logic */ .rst_n (rst_n ),
/*input logic [31:0] */ .t_in (cnt_reload_new[cal_t_index[i]] ),
/*input logic [31:0] */ .d_in (dac_cnt_array[cal_in_index[i]] ),
/*input logic [31:0] */ .cal_in (calculater_input ),
/*input logic [ 4:0] */ .cal_in_off (cal_in_off[i] ),
/*input logic [ 4:0] */ .cal_lim_up (cal_lim_up[i] ),
/*input logic [ 4:0] */ .cal_lim_lo (cal_lim_lo[i] ),
/*input logic [ 4:0] */ .t_param (cal_t_param[i] ),
/*input logic [ 4:0] */ .d_param (cal_d_param[i] ),
/*input logic [ 4:0] */ .lu_param (cal_lu_param[i] ),
/*input logic [ 4:0] */ .ll_param (cal_ll_param[i] ),
/*input logic */ .lu_en (cal_lu_en[i] ),
/*input logic */ .ll_en (cal_ll_en[i] ),
/*output logic */ .uplo_overflow (cal_uplo_overflow[i] ),
/*output logic [31:0] */ .cal_out (cal_value[i] )
);
end
for (k=0;k<4;k=k+1) begin : u3
calculate_cell u_cnt_cal_inst(
/*input logic */ .clk_timer (clk_timer ),
/*input logic */ .rst_n (rst_n ),
/*input logic [31:0] */ .t_in (32'b0 ),
/*input logic [31:0] */ .d_in (dac_value_sv[cnt_dac_index[k]] ),
/*input logic [31:0] */ .cal_in (calculater_input ),
/*input logic [ 4:0] */ .cal_in_off (cnt_in_off[k] ),
/*input logic [ 4:0] */ .cal_lim_up (cnt_lim_up[k] ),
/*input logic [ 4:0] */ .cal_lim_lo (cnt_lim_lo[k] ),
/*input logic [ 4:0] */ .t_param (5'b0 ),
/*input logic [ 4:0] */ .d_param (cnt_d_param[k] ),
/*input logic [ 4:0] */ .lu_param (5'b0 ),
/*input logic [ 4:0] */ .ll_param (5'b0 ),
/*input logic */ .lu_en (cnt_lu_en[k] ),
/*input logic */ .ll_en (cnt_ll_en[k] ),
/*output logic */ .uplo_overflow (cal_uplo_overflow[k+16] ),
/*output logic [31:0] */ .cal_out (cnt_value_cal[k] )
);
end
endgenerate


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回verilog吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示