quartus 小技巧—— 分线。例如总线data[31..0],引出的分线为data[7..0]

简介: 在数字电路设计中,总线用于并行传输数据,而分线是从总线中提取特定数据位。Quartus II,Altera(现Intel)的EDA工具,支持灵活的总线分线操作。本文介绍了两种在Quartus II中实现分线的方法:一是直接索引,如`data[7:0]`;二是使用Verilog的`extract`操作,尽管在Verilog中直接索引更常见。这些技巧有助于提升设计效率。

在数字电路设计中,总线作为一种高效的信号传输机制,被广泛应用于数据的并行传输。然而,在某些情况下,我们需要从宽总线中提取特定的数据位,这种操作通常被称为“分线”。Quartus II,作为Altera公司(现已被Intel收购)的一款功能强大的EDA工具,提供了灵活的方式来实现总线的分线。本文将探讨如何在Quartus II中优雅地实现总线分线,以及一些实用的技巧,帮助你提高设计效率。

1. 理解总线与分线

在Quartus II中,总线是由多个信号组成的有序集合,通常表示为data[31..0],意味着这是一个32位宽的总线。分线则是从总线中选取一部分信号,例如data[7..0],它表示从总线中取出最低8位。

2. 实现分线的方法

方法一:直接索引

最直接的方式是使用方括号[]来直接索引总线中的信号。例如,如果你想从data[31..0]总线中提取最低8位,可以简单地写成:

Verilog

output reg [7:0] data_low;
assign data_low = data[7:0];

这种方式直观且易于理解,适用于小型项目或简单的信号提取。

方法二:使用Verilog的extract操作

Verilog语言本身提供了一种更高级的信号提取方法,即extract操作。虽然Quartus II的VHDL版本没有直接的extract函数,但在Verilog中,你可以使用以下语法:

Verilog

output reg [7:0] data_low;
assign data_low = data.extract(7,0);

然而,值得注意的是,extract在Verilog中的使用并不像在VHDL中那样直接,上述语法实际上是不正确的。在Verilog中,直接使用方括号索引是最常见且推荐的做法。

相关文章
|
Android开发 异构计算
nios ii FIFO读取FPGA数据交互实验1
nios ii FIFO读取FPGA数据交互实验1
249 0
nios ii FIFO读取FPGA数据交互实验1
|
缓存 网络性能优化 SoC
ZYNQ-AXI_GP接口和AXI_HP接口的异同
ZYNQ-AXI_GP接口和AXI_HP接口的异同
715 0
ZYNQ-AXI_GP接口和AXI_HP接口的异同
|
编解码 资源调度 内存技术
单片机外围模块漫谈之一,图解说明什么是Flash, SAR, Sigma-Delta型ADC
单片机外围模块漫谈之一,图解说明什么是Flash, SAR, Sigma-Delta型ADC
PADS Logic原理图设计
双击打开PADS Logic,点击“文件”-->“新建”,或者直接点击新建按钮,如下图所示:
100 0
PADS Logic将原理图导入到PCB
原理图是使用PADS Logic进行设计的,原理图设计完成之后,需要导入到PADS Layout进行PCB设计,导入方法如下: 点击标准工具栏右边的PADS Layout图标,如下图所示:
966 0
PADS Logic原理图添加总线
原理图总线在连线很多的时候或者是连线信号可以归类的时候(比如存储器的数据信号),很适合使用,可以使原理图变得简洁,提高可读性,下面我们就看一下如何在原理图中添加总线。
481 0
深入理解AMBA总线(十四)AXI Ordering Model、非对齐访问等
深入理解AMBA总线(十四)AXI Ordering Model、非对齐访问等
1048 0
|
算法 异构计算
m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算
m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算
152 0
|
芯片 数据格式
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)(下)
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)
297 1
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)(下)
|
定位技术 芯片
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)(上)
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)
251 1
ARM架构与编程(基于I.MX6ULL): 串口UART编程(七)(上)