java logic赋予多个值,如何在VHDL中编写具有输入相关范围的std_logic_vector赋值?
我试图将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赋值?相关推荐
- 如何在Go中编写防弹代码:不会失败的服务器工作流程
by Tal Kol 通过塔尔科尔 如何在Go中编写防弹代码:不会失败的服务器工作流程 (How to write bulletproof code in Go: a workflow for ser ...
- 如何在Ruby中编写switch语句
如何在Ruby中编写switch语句? #1楼 案例...当 在Chuck的答案中添加更多示例: 带参数: case a when 1puts "Single value" whe ...
- 如何在Go中编写多行字符串?
本文翻译自:How do you write multiline strings in Go? Does Go have anything similar to Python's multiline ...
- eclipse 导入项目_JAVA编程实战:坦克大战系列2-坦克如何在eclipse中编写
游戏中寻找学习JAVA的乐趣之 坦克大战系列2-坦克如何在Eclipse中编写 前言 本篇主要对Robocode在eclipse中如何配置并编写. Eclipse中的配置 通过本身自带的编辑器去写代码 ...
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
- 手机nfc_如何在Android中编写NFC标签
手机nfc 这篇文章介绍了如何在Android中使用NFC编写智能标签. Android智能手机不仅能够读取包含URL,电话号码等数据的NFC标签,但使用Android NFC Api可以写入NFC标 ...
- 如何在 Go 中编写 Switch 语句
如何在 Go 中编写 Switch 语句 目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 ...
- 「每周译Go」如何在 Go 中编写 Switch 语句
目录 在 Go 中导入包 理解 Go 中包的可见性 如何在 Go 中编写条件语句 如何在 Go 中编写 Switch 语句 如何在 Go 中构造 for 循环 在循环中使用 Break 和 Conti ...
- linux命令行运行c程序,如何在Linux中编写和运行C程序
Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...
最新文章
- iOS下bound,center和frame
- SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
- javascript之window对象详解
- 基于matplotlib的数据可视化 - 热图imshow
- java 状态模式 同步_JAVA设计模式之状态模式
- Java 中 modifer #39;public#39; is reduntant for interface methods
- taglib 标签文件
- Elasticsearch Index Template(索引模板)
- pytorch test单张图片_PyTorch的元学习库:Torchmeta
- 荐书丨《好奇心的秘密》:一个针尖上可以站多少跳舞的小天使?
- 关于opengl中glColor3f的应用
- 制作滚球游戏学习Unity3D
- 基于echarts+js+fexible.js实现的数据可视化适配案例(附源代码)
- irc php,IRC / 实时聊天系统
- AI行为树的基础运作原理
- 百度推广优化(百度推广优化技巧)
- 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法
- CentOS 7 安装 Postfix Dovecot
- java 生成随机数(利用Random生成任意范围的随机数)
- Invalid use of argument matchers