Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果VHDL或verilog代码中的循环变量是可变的,会发生什么情况?

如果VHDL或verilog代码中的循环变量是可变的,会发生什么情况?
EN

Stack Overflow用户
提问于 2018-08-06 01:32:09
回答 2查看 532关注 0票数 0

如果我在VHDL或Verilog中为for循环变量的初始值赋值,那么在仿真或综合中会出现什么问题?例如,如果我编写的测试用例如下:

代码语言:javascript
运行
AI代码解释
复制
module dut(input clk, d, output reg [5:0] q);
 integer i, j, k, l;
always @(posedge clk)
 begin
for(i =k;j < 4;k++, l++) begin
q[i] <= d;
end
end
 endmodule

会有什么问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-06 09:20:13

for可以写成do-while循环。

代码语言:javascript
运行
AI代码解释
复制
for(<Initialization>;<Condition>;<Iteration>) <Statement>;

<Initialization>;
do
 begin
 <Statement>;
 <Iteration>;
end
while (<Condition>);

因此,一旦执行i=k子句,k的值发生什么并不重要。

综合要求在编译时计算循环迭代的总数。您必须提供可以在编译时计算的表达式。因此,最有可能的情况是,如果起始和结束迭代值不是常量,则循环将无法综合。

票数 1
EN

Stack Overflow用户

发布于 2018-08-06 01:59:56

会有什么问题?

问题是您只能在模拟中使用代码。也就是说:你将无法合成代码并从中产生硬件。

在综合中,反循环是展开和硬件生成的每一个步骤,通过循环。为此,综合工具必须在编译期间知道循环执行的频率。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51704524

复制
相关文章
verilog vhdl混合_vhdl转换为verilog
step1. 用vhdlcom将所有的VHDL RTL代码编译成库 1.1 将所有的vhdl文件放到vhdl.f文件中,如: vhdl.f ——— my_design.vhd my_lib.vhd tb_my_design.vhd 1.2 编译成库 vhdlcom -f vhdl.f 编译完成后,在运行路径下可看到自动生成的一个库文件夹work.lib++ 注意: a) 一般情况下vhdlcom命令不需要加其他参数。若出现vhdl版本问题,可考虑 增加-vhdl08等参数:vhdlcom -vhdl08 -f verilog.f b) 编译后的log为vhdlcomLog/compiler.log c) -lib 参数可指定一个库名。不指定,则默认库命为work。所有的生成的库 的库名都是自由附加了”.lib++”后缀。对于混合仿真vhdl和verilog的库名要保持一致, 否则可能出现其中一个库无法识别的问题(verdi版本为2015,可能后续版本解决了该问 题)。例:vhdlcom -lib mylib -f vhdl.f,生成mylib.lib++库
全栈程序员站长
2022/11/08
1.2K0
verilog和vhdl区别大吗_verilog hdl和vhdl的区别
这两种语言都是用于数字电路系统设计的硬件描述语言,而且都已经是IEEE的标准。 VHDL1987年成为标准,而Verilog是1995年才成为标准的。这是因为VHDL是美国军方组织开发的,而Verilog是由一个公司的私有财产转化而来。为什么Verilog能成为IEEE标准呢?它一定有其独特的优越性才行,所以说Verilog有更强的生命力
全栈程序员站长
2022/11/08
6950
VHDL和Verilog的区别
这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。 VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准的。这个是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个公司的私有财产转化而来的。为什么 Verilog 能成为 IEEE 标准呢?它一定有其优越性才行,所以说 Verilog 有更强的生命力。
全栈程序员站长
2022/08/02
1.2K0
verilog语言转vhdl语言_vhdl转换为verilog
1.下载后先运行X-HDL-4.2.1-Setup.exe文件,选择安装路径,注意路径中不要有中文。 2.运行crack_xhdl_4.2.1.exe文件,选择刚刚你安装XHDL的路径下的\bin文件夹,点击next—finish,出现success代表激活成功教程成功。 3.可能会要求你重启电脑,这时候同意重启就好了。 4.重启之后运行X-HDL。 5.可以选择VHDL转Verilog或Verilog转VHDL
全栈程序员站长
2022/11/08
1.9K0
verilog语言转vhdl语言_vhdl转换为verilog
verilog调用vhdl模块_verilog和vhdl哪个更好
以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。 1、新建project 2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;
全栈程序员站长
2022/11/08
2.3K0
verilog调用vhdl模块_verilog和vhdl哪个更好
Verilog代码转VHDL代码经验总结
你已经习惯某种语言,也发现语言不是学习FPGA时需要考虑的问题,它仅仅是硬件描述语言工具而已。可是,当你发现一份和你使用语言不同的代码作为参考时,你又开始想:
网络交换FPGA
2019/10/29
3.8K0
Verilog代码转VHDL代码经验总结
VHDL、Verilog和SystemVerilog的比较
各种硬件描述语言 (HDL) 在过去几年中不断增强,确定哪种语言适合哪种设计的复杂性也随之增加。许多设计人员和组织正在考虑是否应该从一种 HDL 切换到另一种HDL。
碎碎思
2022/11/14
2.3K0
VHDL、Verilog和SystemVerilog的比较
FPGA与VHDL_vhdl和verilog
VHDL相对于Verilog HDL,给人最深刻的印象便是臃肿,掌握起来比较难。 本文摘自《FPGA之道》,学会站在巨人的肩膀上来对比学习二者。
全栈程序员站长
2022/11/08
1.2K0
如果网站的 Cookie 超过 4K,会发生什么情况?
众所周知,Cookie 是塞在请求头里的。如果 Cookie 太多,显然整个 HTTP 头也会被撑大。
业余草
2020/05/21
1.2K0
你知道 GO 中什么情况会变量逃逸吗?
Go 语言将这个以前我们写 C/C++ 时候需要做的内存规划和分配,全部整合到了 GO 的编译器中,GO 中将这个称为 变量逃逸
阿兵云原生
2023/02/16
4680
verilog语言与VHDL_vhdl程序设计
今年开始接触更改产品的FPGA代码,感觉公司虽然搞了很多年了,但是FPGA这块缺乏一些“软件工程”上的概念导入。
全栈程序员站长
2022/11/08
5610
vhdl与verilog hdl的区别_HDL语言
HDL特别是Verilog HDL得到在第一线工作的设计工程师的特别青睐,不仅因为HDL与C语言很相似,学习和掌握它并不困难,更重要的是它在复杂的SOC的设计上所显示的非凡性能和可扩展能力。 在学习HDL语言时,笔者认为先学习VerilogHDL比较好:一是容易入门;二是接受Verilog HDL代码做后端芯片的集成电路厂家比较多,现成的硬核、固核和软核比较多。 小析VHDL与Verilog HDL的区别 学习完VHDL后觉得VHDL已非常完善,一次参加培训时需学习Verilog HDL,于是顺便“拜访”了一下Verilog HDL,才发现,原来Verilog HDL也是如此高深,懵懂中发现Verilog HDL好像较之VHDL要多一些语句,是不是Verilog HDL就要比VHDL高级些?
全栈程序员站长
2022/11/08
7020
Python中的循环(或循环)导入
本文翻译自:Circular (or cyclic) imports in Python
用户7886150
2020/11/30
3.6K0
Verilog hdl与VHDL混用详解
Verilog hdl与VHDL混用详解
全栈程序员站长
2022/11/08
2.3K0
Verilog hdl与VHDL混用详解
VHDL和verilog应该先学哪个?
  网上有太多的VHDL和verilog比较的文章,基本上说的都是VHDL和verilog之间可以实现同一级别的描述,包括仿真级、寄存器传输级、电路级,所以可以认为两者是等同级别的语言。很多时候会了其中一个,当然前提是真的学会,知道rtl(寄存器传输级)的意义,知道rtl与电路如何对应,在此基础上,则很容易就可以学另外一个。从这个意义上,或许先学什么都无所谓。   学HDL无非要这么几类人:   1.学生   2.电子工程师   3.软件工程师   4.纯粹的爱好者   学生,两眼一摸黑,老师教什么学什么,
窗户
2018/03/29
1.8K0
veriloghdl与vhdl_verilog基本语法
硬件描述语言HDL(Hardware Describe Language) HDL概述 随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是 VHDL和Verilog HDL。 VHDL发展的显纾 锓ㄑ细瘢 鳹erilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。 VHDL和Verilog HDL两者相比, VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。国外电子专业很多会在本科阶段教授 VHDL,在研究生阶段教授verilog。从国内来看, VHDL的参考书很多,便于查找资料,而Verilog HDL的参考书相对较少,这给学习Verilog HDL带来一些困难。从EDA技术的发展上看,已出现用于CPLD/FPGA设计的硬件C语言编译软件,虽然还不成熟,应用极少,但它有可能会成为继 VHDL和Verilog之后,设计大规模CPLD/FPGA的又一种手段。 选择VHDL还是verilog HDL? 这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。 学习HDL的几点重要提示 1.了解HDL的可综合性问题: HDL有两种用途:系统仿真和硬件实现。如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序“可综合”(程序的功能可以用硬件电路实现)。不可综合的HDL语句在软件综合时将被忽略或者报错。我们应当牢记一点:“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。” 2. 用硬件电路设计思想来编写HDL: 学好HDL的关键是充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。要做到这一点,需要我们多实践,多思考,多总结。 3.语法掌握贵在精,不在多 30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,也不利于其他人阅读和修改。建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。 HDL与原理图输入法的关系 HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,移植性差。在真正的PLD/FPGA设计中,通常建议采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用HDL的地方就用HDL,并没有强制的规定。在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。 HDL开发流程 用 VHDL/VerilogHD语言开发PLD/FPGA的完整流程为: 1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常 VHDL文件保存为.vhd文件,Verilog文件保存为.v文件 2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真) 3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。 4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内 5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 6.编程下载:确认仿真无误后,将文件下载到芯片中 通常以上过程可以都在PLD/FPGA厂家提供的开发工具(如MAXPLUSII,Foundation,ISE)中完成,但许多集成的PLD开发软件只支持 VHDL/Verilog的子集,可能造成少数语法
全栈程序员站长
2022/11/08
4860
PHP的可变变量与可变函数
什么叫可变。在程序世界中,可变的当然是变量。常量在定义之后都是不可变的,在程序执行过程中,这个常量都是不能修改的。但是变量却不同,它们可以修改。那么可变变量和可变函数又是什么意思呢?很明显,就是用另一个变量来定义他们,这个变量是可变的呀!
硬核项目经理
2020/01/22
1.2K0
如果TCP发生超时,这个过程是如何处理的?
TCP本身需要提供可靠的服务,方式之一就是确认接收方真的收到了数据,如果过了一段时间,即超时了,还没有收到确认的报文,认为报文可能被丢失,就重新传送报文,确保数据都能被收到
爬蜥
2019/07/09
1.7K0
Verilog HDL 、VHDL和AHDL语言的特点是什么?_自助和助人区别
如果你搜索Verilog和VHDL的区别,你会看到很多讨论这场HDL语言战争的区别页面,但大多数都很简短,没有很好地举例说明,不方便初学者或学生理解。
全栈程序员站长
2022/11/04
2.1K0
Verilog HDL 、VHDL和AHDL语言的特点是什么?_自助和助人区别
点击加载更多

相似问题

如果在Verilog或VHDL的灵敏度列表中声明的信号(变量)比所需的多,会发生什么情况

30

VHDL或Verilog中的高阶函数

36

如果将for循环的迭代计数作为变量,会发生什么情况?

50

将VHDL代码转换为Verilog

23

如果catch中的代码失败,会发生什么情况?

93
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档