打印

求教一个Verilog的编程问题

[复制链接]
2870|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jadetang|  楼主 | 2010-12-6 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想法是编写一个寄存器,通过总线收发数据。但是总线确不知道是定义成wire还是reg型的。编译的时候报错:v(19): (vlog-2110) Illegal reference to net "bus
源代码如下:
`timescale 1ns/1ns
module register( bus, enout, load,clk );
    inout [7:0]bus;
    input load, enout, clk;
    wire [7:0]bus;
    reg [7:0]inside;
    initial
    begin
    inside <= 8'b000_0000;
    end
    always @( posedge clk )
    begin
        if ( load )
           begin
           inside <= bus;
           end
        else if ( enout )
             begin
             bus <= inside;
             end
    end
endmodule

相关帖子

沙发
jadetang|  楼主 | 2010-12-6 23:01 | 只看该作者
难道没有人知道,悲剧

使用特权

评论回复
板凳
yonnai| | 2010-12-7 09:00 | 只看该作者
我一般都再定义个x reg,在模块里用,然后assign bus=x reg

使用特权

评论回复
地板
jadetang|  楼主 | 2010-12-7 12:49 | 只看该作者
3# yonnai :]:

我代码里面的 reg[7:0] inside不就是起得你说的x reg的意思吗

使用特权

评论回复
5
andyany| | 2010-12-9 16:42 | 只看该作者
本帖最后由 andyany 于 2010-12-9 16:43 编辑

改成这样试试——
`timescale 1ns/1ns
module register( bus, enout, load,clk );
    inout [7:0]bus;
    input load, enout, clk;
    reg [7:0]bus_reg;
    reg [7:0]inside;
    wire r_w;
    initial
    begin
    inside <= 8'b000_0000;
    end
    always @( posedge clk )
    begin
        if ( load )
           begin
           inside <= bus;
           end
        else if ( enout )
             begin
             bus_reg <= inside;
             end
    end
assign r_w = (load)?1'b1: ((enout)?1'b0:1'bz);
assign bus = (r_w)?8'bz:bus_reg;
endmodule

使用特权

评论回复
6
andyany| | 2010-12-9 16:46 | 只看该作者
本帖最后由 andyany 于 2010-12-10 08:42 编辑

双向端口为inout型,在testbench中视为wire型。

使用特权

评论回复
7
jadetang|  楼主 | 2010-12-13 12:50 | 只看该作者
andyany的应该是正解,用inout端口的时候,需要用一个寄存器来做映射。

使用特权

评论回复
8
icecut| | 2010-12-13 13:15 | 只看该作者
always里面用wire.你还是<=这种赋值,乱

使用特权

评论回复
9
wowow| | 2010-12-13 16:14 | 只看该作者
了解IO端口的结构就写得出代码来了:

            Control
              |
              |/|
_______/ |_____________OUT
     |        \ |
     |         \|
     |__________________IN

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

108

帖子

0

粉丝