Verilog学习记录2——Verilog中[ ]的用法和{ }的用法

1.Verilog中[ ]的用法

不管是reg变量还是wire变量,
data1[X:0]data1[X]最高位data1[0]最低位
data2[0:X]data2[0]最高位data2[X]最低位

例如: 两个4位的寄存器变量data1和data2,并对这两个寄存器变量赋值4‘b1100

wire [3:0] data1;
wire [0:3] data2;
wire [3:0] data;

assign data = 4‘b1100;
assign data1 = data;
assign data2 = data;

这时

data1[3]=1, data1[2]=1, data1[1]=0, data1[0]=0;
data2[0]=1, data2[1]=1, data2[2]=0, data2[3]=0;
对于data1而言,data1[3]是最高位
对于data2而言,data2[0]是最高位

2.Verilog中数据的截取

Verillog支持指定 bit 位后固定位宽的向量域选择访问。

[bit + : width] : 从起始 bit 位开始递增,位宽为 width。
[bit - : width] : 从起始 bit 位开始递减,位宽为 width。
//下面 2 种赋值是等效的
A = data1[31-: 8] ;
A = data1[31:24] ;

//下面 2 种赋值是等效的
B = data1[0+ : 8] ;
B = data1[0:7] ;

3.Verilog中{ }的用法

3.1 拼接{ }
{a, b[3:0], c, 3'b100}

等同于

{a, b[3],b[2], b[1],b[0],c, 1'b1,1'b0,1'b0}

其中最左边是最高位,最右边是最低位


3.2 复制 {{ }}
{8 {a[1]}}

等同于

{a[1],a[1],a[1],a[1],a[1],a[1],a[1],a[1]}

其中8表示要把a[1]重复8次,并不是要拼接的内容,所以就不用指定位长了。比如a[1]=1,上面的描述就对应了一个长度为8,每一位都是1的二进制串。

多展示几个例子:
{ 3 { a } }=={a,a,a}
{a, {3{b, c}}} =={a, b, c, b, c, b, c}
{{4{1'b0}},wr_addr[8:0]} = {4'b0000,wr_addr[8:0]};
  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它能够在电路实现各种数字逻辑功能。Verilog语言则是一种硬件描述语言,用于描述数字系统的行为和结构。本文将通过基于Altera EP4CE10(一款FPGA芯片)进行的FPGA Verilog开发实战指南,向读者介绍如何使用Verilog语言开发FPGA应用。 首先,选择合适的开发工具,例如Altera Quartus Prime软件。在Quartus,创建一个新的工程,并添加Verilog源文件,用于编写FPGA应用的逻辑代码。在编写代码时,需要了解基本的Verilog语法和模块化设计的原则。 接下来,将FPGA芯片选项设置为Altera EP4CE10,并进行引脚分配。引脚分配是将逻辑信号与FPGA芯片引脚相连接的过程。确保正确地将输入和输出信号与特定引脚相连接,以实现所需的功能。 然后,进行逻辑编译和映射。逻辑编译将Verilog代码转换为低级逻辑网表,并进行逻辑优化。映射阶段将逻辑网表映射到FPGA芯片的逻辑单元和开关资源。 在映射之后,进行时序分析和布线。时序分析用于验证设计在时序要求下的正确性,以确保信号传输的稳定性和准确性。布线是将逻辑资源与FPGA芯片的物理资源相互连接的过程。 最后,进行编程和调试。将生成的比特流文件下载到FPGA芯片,并进行信号调试和性能优化。通过使用逻辑分析仪等工具,可以检查信号的波形和逻辑的正确性,并根据需要进行调整和改进。 在进行FPGA Verilog开发实战时,需要具备较好的数字电路基础和Verilog语言掌握程度。通过实践和经验积累,不断提升对FPGA开发的理解和技能,才能开发出高效和可靠的FPGA应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值