返回信息流parameter choose_clk = 3;//1 2 3
parameter spi_wide = 8;
parameter spi_num = 2;
reg [spi_wide-1:0]spi_data[spi_num-1:0];
initial begin
spi_data[0] = 8'b1011_0011;
spi_data[1] = 8'b0011_1011;
end
因为initial不可综合,有没有相似的表达是可综合的?
这是一条镜像帖。来源:北邮人论坛 / circuit / #19671同步于 2012/3/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
求助verilog
xzy
2012/3/7镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你可以写到一个ROM的结构中,要用的时候去ROM里读
【 在 xzy 的大作中提到: 】
: parameter choose_clk = 3;//1 2 3
: parameter spi_wide = 8;
: parameter spi_num = 2;
: ...................
系统总有复位信号吧?
复位时把这组值打进去。
【 在 xzy 的大作中提到: 】
: parameter choose_clk = 3;//1 2 3
: parameter spi_wide = 8;
: parameter spi_num = 2;
: ...................
【 在 Jerryyx 的大作中提到: 】
: 用ROM的话,那就直接wire然后assign常数。
: 寄存器的话,那就得有初始复位信号。
恩。。。我没有接触过ROM,是写一个子模块然后例化么?还是?
你可以看看altera或者xilinx rom的primitive怎么写,找个例子照着写就行了
或者你像4l所说的那样,把你的reg改成wire:
parameter choose_clk = 3;//1 2 3
parameter spi_wide = 8;
parameter spi_num = 2;
wire [spi_wide-1:0]spi_data[spi_num-1:0];
assign spi_data[0] = 8'b1011_0011;
assign spi_data[1] = 8'b0011_1011;
...
如果你保留它们可写的特性的话,你可以试试RAM,RAM是可以有初始值的
【 在 xzy 的大作中提到: 】
:
: 恩。。。我没有接触过ROM,是写一个子模块然后例化么?还是?
可以写一个子模块例化。
如果ROM内容少的话(比如你给的代码里只有两条记录),直接assign就行了
【 在 xzy 的大作中提到: 】
:
: 恩。。。我没有接触过ROM,是写一个子模块然后例化么?还是?
对啊,就两种方式比较合适
1.rom表,不过为了这么点数据,建一个ROM,然后填参数,修改起来也很麻烦
2.直接用wire了,assign完成使命
第三种就是reset吧,reset的时候赋初值就可以了
你那个初值是干啥用的。。
【 在 xzy (Latnok) 的大作中提到: 】
: parameter choose_clk = 3;//1 2 3
: parameter spi_wide = 8;
: parameter spi_num = 2;
: ...................