我试图将std_logic_vector的某些部分复制到另一个位置(索引),具体取决于输入 . 这可以在Vivado中合成,但我想使用另一个工具(SymbiYosys,https://github.com/YosysHQ/SymbiYosys)进行形式验证 . SymbiYosys可以使用Verific作为前端来处理VHDL,但Verific不接受这一点 . 这是一小段代码,可以重现问题 . Verific抱怨"left range bound is not constant" . 那么,是否有一种解决方法可以让Verific接受这样的可变范围分配?

我已经找到了这篇文章VHDL: slice a various part of an array,它建议使用一个循环并为每位分配值,但我宁愿不改变我的代码,因为它适用于Vivado . 此外,我认为这样的循环会损害代码的可读性,也许会影响实现效率 . 因此,我正在寻找一种不同的方法(可能是将此错误转换为警告或不太严格的代码修改的方法) .

library IEEE;

use IEEE.STD_LOGIC_1164.all;

use IEEE.NUMERIC_STD.all;

entity test is

port(

clk : in std_logic;

prefix : in std_logic_vector( 8*8 -1 downto 0);

msgIn : in std_logic_vector(128*8 -1 downto 0);

msgLength : in integer range 1 to 128;

test_out : out std_logic_vector((128+8)*8 -1 downto 0)

);

end test;

architecture behav of test is

begin

process (clk)

begin

if rising_edge(clk) then

test_out <= (others => '0');

test_out((msgLength+8)*8 -1 downto msgLength*8) <= prefix;

test_out( msgLength *8 -1 downto 0) <= msgIn(msgLength*8 -1 downto 0);

end if;

end process;

end behav;

java logic赋予多个值,如何在VHDL中编写具有输入相关范围的std_logic_vector赋值?相关推荐

  1. 如何在Go中编写防弹代码:不会失败的服务器工作流程

    by Tal Kol 通过塔尔科尔 如何在Go中编写防弹代码:不会失败的服务器工作流程 (How to write bulletproof code in Go: a workflow for ser ...

  2. 如何在Ruby中编写switch语句

    如何在Ruby中编写switch语句? #1楼 案例...当 在Chuck的答案中添加更多示例: 带参数: case a when 1puts "Single value" whe ...

  3. 如何在Go中编写多行字符串?

    本文翻译自:How do you write multiline strings in Go? Does Go have anything similar to Python's multiline ...

  4. eclipse 导入项目_JAVA编程实战:坦克大战系列2-坦克如何在eclipse中编写

    游戏中寻找学习JAVA的乐趣之 坦克大战系列2-坦克如何在Eclipse中编写 前言 本篇主要对Robocode在eclipse中如何配置并编写. Eclipse中的配置 通过本身自带的编辑器去写代码 ...

  5. matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...

    导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...

  6. 手机nfc_如何在Android中编写NFC标签

    手机nfc 这篇文章介绍了如何在Android中使用NFC编写智能标签. Android智能手机不仅能够读取包含URL,电话号码等数据的NFC标签,但使用Android NFC Api可以写入NFC标 ...

  7. 如何在 Go 中编写 Switch 语句

    如何在 Go 中编写 Switch 语句 目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 ...

  8. 「每周译Go」如何在 Go 中编写 Switch 语句

    目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 在循环中使用 Break 和 Conti ...

  9. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

最新文章

  1. iOS下bound,center和frame
  2. SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
  3. javascript之window对象详解
  4. 基于matplotlib的数据可视化 - 热图imshow
  5. java 状态模式 同步_JAVA设计模式之状态模式
  6. Java 中 modifer #39;public#39; is reduntant for interface methods
  7. taglib 标签文件
  8. Elasticsearch Index Template(索引模板)
  9. pytorch test单张图片_PyTorch的元学习库:Torchmeta
  10. 荐书丨《好奇心的秘密》:一个针尖上可以站多少跳舞的小天使?
  11. 关于opengl中glColor3f的应用
  12. 制作滚球游戏学习Unity3D
  13. 基于echarts+js+fexible.js实现的数据可视化适配案例(附源代码)
  14. irc php,IRC / 实时聊天系统
  15. AI行为树的基础运作原理
  16. 百度推广优化(百度推广优化技巧)
  17. 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法
  18. CentOS 7 安装 Postfix Dovecot
  19. java 生成随机数(利用Random生成任意范围的随机数)
  20. Invalid use of argument matchers

热门文章

  1. docker 建立局域网私有仓库
  2. 商业保险知识之:什么是营业中断险?
  3. 如何使用强化学习进行量化投资?
  4. 如何成为一名合格的CRUD工程师?(文末送书)
  5. #早安,努力#10.27
  6. 20200901:现在正在使用的fvwm配置
  7. 「FVWM」- 截图 @20210121
  8. ECharts 提示框组件Tooltip属性大全(包含文本注释)
  9. python爬虫代理_python爬虫-代理的使用
  10. mongobd Databus