专栏首页Lauren的FPGA如何从列表中获取元素

如何从列表中获取元素

思考一下:

对于URAM是否也可以通过设置独立的地址空间将其配置为两个独立的单端口RAM?

观察URAM的物理管脚,不难发现A/B端口都有相应的地址、使能、读写控制信号。与BRAM不同的是URAM的读写使能信号是同一个管脚RDB_WR_A/B,其为0时执行读操作,为1时执行写操作,这意味着一旦A/B端口独立,同一端口的读写操作就无法同时发生,因此,如果采用上一篇文章中介绍的方法将其配置为两个独立的单端口RAM,其读写行为与常规的单端口RAM是不同的,进一步而言,此时的读写行为类似于NO_Change模式。

有两种方法可用于从列表中获取元素,这涉及到两个命令,分别是lindex和lassign。不难发现,列表(list)的相关命令都是以字母l(大写为L)开头的,例如之前文章提到的list、llength、lrange、lappend和lset。

方法1:lindex

lindex之前已经介绍过。该命令接收两个参数:列表变量名和索引号。例如:

方法2:lassign

上述操作可以通过lassign快速完成。lassign接收至少两个变量,第一个是列表变量,第二个是其他变量,也就是将列表中的元素分配给这些变量。例如:

可以看到此时lassign比lindex要快捷很多。但需要注意的是lassign是要把所有元素依次分配给这些变量,这就会出现两种例外情形。

情形1:列表元素的个数比待分配变量个数多

例如,上例中只保留待分配变量x和y,可以看到lassign会返回一个值c,这个值其实就是列表中未分发的元素。而变量x和y的值与上例保持一致。

情形2:列表元素的个数比待分配变量个数少

例如,这里增加一个变量t,可以看到最终t的值为空字符串。

综上所述,可以看到在使用lassign时要格外小心,确保变量个数与列表长度一致,或变量个数小于列表长度,否则会出现待分配变量最终被赋值为空字符串的情形。

思考一下:

如何用foreach语句实现对变量赋值,其中所需值来自于一个给定的列表。

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA),作者:LaurenGao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 再看Byte Write Enable

    给定列表{RAMB18 RAMB36 LUTRAM RAMB},要求从中找出RAMB18和RAMB36。

    Lauren的FPGA
  • 一个双端口RAM能配置成两个独立的单端口RAM?

    实现上述功能主要用到Verilog两个语法结构:parameter定义参数,实现参数化;generate语句,根据参数调用对应的功能块。

    Lauren的FPGA
  • 列表长度与索引

    借助llength命令可获取列表的长度(列表所包含的元素的个数,不难发现很多跟列表相关的命令都是以英文单词l(其大写为L)开头的)。图1显示列表a的长度为3。

    Lauren的FPGA
  • 服务器常用端口

    web 的端口 80 FTP的端口是 21 SSH (Secure Shell)服务使用tcp 22 端口 TELNET 23 端口 DHCP server...

    wangxl
  • 数据科学通识第九讲:大数据平台

    随着互联网技术的发展和智能传感设备的普及,我们来到了一个数据爆炸的时代。全球的数据以每年50%的速度在增长,也就是说两年就增长了一倍。根据互联网数据中心(IDC...

    数据酷客
  • 5种类型的程序员

    5种类型的程序员 在我的代码旅程和编程冒险中,我遇到过很多奇怪的敌人,以及陌生的盟友。我发现至少有五种不同类型的代码战士,有的人能成为并肩合作的战友,而有些人似...

    用户1289394
  • 轻松理解网络端口是什么

    网络端口分两种,一种是实体的端口,也叫接口比如 USB 端口、串型端口等,还有一种网络端口是网络协议规定好的,是虚拟出来完成计算机之间互相通讯的,那么为什么是 ...

    信安之路
  • Bluehoo

    windows mobile的MSDN Blog上,在PDC当天,发布了一个Bluehoo的应用程序。Bluehoo使用bluetooth来发现你附近的hoos...

    ShiJiong
  • 【职场】2014中国薪资上涨最快的10大行业

    薪水是每个就业人员最关注的话题,至少得知道自己“卖”给雇主后能值多少!你知道,2014年哪些行业的薪水已经暗暗上涨了吗?哪些行业已经涌出新一波“土豪”?“俗人”...

    小莹莹
  • MPMoviePlayerController 播放记忆功能(setCurrentPlaybackTime)之前方案可行方案

    陈雨尘

扫码关注云+社区

领取腾讯云代金券