首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >VERILOG问题与结构

VERILOG问题与结构
EN

Stack Overflow用户
提问于 2016-04-19 08:32:21
回答 1查看 832关注 0票数 0

在Verilog中使用struct有一个未解决的问题。

这是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//Other technic
//typedef struct{bit Over_I;}reg_type;

// Code 
module Overload(rst_n,clock,vlowp,IHigh,Over_I);

    // Port declaration
    input rst_n,clock,vlowp,IHigh;
    output Over_I;

    reg S_NOM = 0;
    reg S_OVL = 1;

    struct{
        reg Over_I;
    } reg_type;

    reg_type Reg,NextReg;

    initial
    begin 
        Over_I = Reg.Over_I;
    end 

我在模块外尝试了the,但没有成功。

控制台给出的错误是:

错误:HDLCompiler:806- "C:/....../Lattice_tests/Test_Verilog/sources/overload_test.v“第26行:语法错误接近"{”。

第26行是我定义struct的行。

如果有人能帮我,我会很感激的。谢谢。佛朗哥

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 08:52:05

Verilog不支持struct数据类型。SystemVerilog (Verilog的继承者)确实如此。所有现代Verilog模拟器都是SystemVerilog模拟器。您可以通过将文件灭绝从SystemVerilog更改为.sv来启用.sv

大多数模拟器都有一个编译选项,将所有Verilog文件强制为SystemVerilog,但是您需要参考手册,因此不建议使用它。有许多遗留的Verilog代码使用与SystemVerilog关键字(例如bitbyte)冲突的变量/网络名称。如果正确使用文件扩展名,模拟器可以正确地解析文件。

而且,initial只分配一次东西。在时间为0之后,Over_I将不具有Reg.Over_I值。此外,不能在过程块(例如initialalways块)内分配电线(输出的默认类型)。使用assign语句或使其成为output reg,并在(假设为SystemVerilog) always_combalways_ff块或Verilog always块中分配它。

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

https://stackoverflow.com/questions/36724306

复制
相关文章
FPGA:Verilog HDL程序的基本结构
一般使用Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。
timerring
2023/02/16
3560
FPGA:Verilog HDL程序的基本结构
SystemVerilog与Verilog中多重定义
最常见的情况就是在写的Testbench中,一般来说,我们首先会创建一个数据包packet类,然后分别在generator、driver、scoreboard等类中调用它,也就是说多个文件包含同一个文件,这时候如何不添加其他语句,仿真器预处理时就会出现多重定义的错误。
数字IC小站
2020/06/30
1.7K0
Verilog hdl与VHDL混用详解
Verilog hdl与VHDL混用详解
全栈程序员站长
2022/11/08
2.3K0
Verilog hdl与VHDL混用详解
数据结构与算法:鸡蛋问题
https://www.bilibili.com/video/av96214853/
早起的鸟儿有虫吃
2023/03/21
2580
数据结构与算法:鸡蛋问题
verilog ifdef_verilog define
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
全栈程序员站长
2022/11/16
1.5K0
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
4700
Verilog HDL函数与任务的使用
一个任务由任务调用语句调用,任务调用语句给出传入任务的参数值和接收结果的变量值,其语法如下:
timerring
2023/02/24
4210
Verilog HDL函数与任务的使用
FPGA与VHDL_vhdl和verilog
VHDL相对于Verilog HDL,给人最深刻的印象便是臃肿,掌握起来比较难。 本文摘自《FPGA之道》,学会站在巨人的肩膀上来对比学习二者。
全栈程序员站长
2022/11/08
1.2K0
Verilog
Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。在Verilog语言中没有多维数组存在。 memory型数据是通过扩展reg型数据的地址范围来生成的。其格式如下: reg [n-1:0] 存储器名[m-1:0]; 或 reg [n-1:0] 存储器名[m:1]; 在这里,reg[n-1:0]定义了存储器中每一个存储单元的大小,即该存储单元是一个n位的寄存器。存储器名后的[m-1:0]或[m:1
瓜大三哥
2018/02/24
1.4K0
Verilog
约瑟夫问题与魔术(二)——数学结构解析
在上一篇文章中,我们聊到了约瑟夫问题的定义,以及其用环的数学模型来建模,最后用循环单链表的数据结构解决该问题等内容。这些只是基本内容,当我们有了数学模型把这个问题变成数学问题以后,就可以在数学结构内去研究更多的东西,而不局限于仅仅求出最后那个被杀的人,比如:
magic2728
2020/09/15
6640
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
6930
Verilog流水线_verilog菜鸟教程
本文从四部分对流水线设计进行分析,具体如下: 第一部分什么是流水线 第二部分什么时候用流水线设计 第三部分使用流水线的优缺点 第四部分流水线加法器举例
全栈程序员站长
2022/09/21
6010
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同步fifo_verilog 异步复位
在上篇文章:同步FIFO的两种Verilog设计方法(计数器法、高位扩展法)中我们介绍了FIFO的基本概念,并对同步FIFO的两种实现方法进行了仿真验证。而异步FIFO因为读写时钟不一致,显然无法直接套用同步FIFO的实现方法,所以在本文我们将用Verilog实现异步FIFO的设计。
全栈程序员站长
2022/09/21
5730
verilog同步fifo_verilog 异步复位
同步fifo的verilog代码_verilog 异步复位
  本文大部分内容来自Clifford E. Cummings的《Simulation and Synthesis Techniques for Asynchronous FIFO Design》,经过自己的一些改变,理论部分为转载,代码自己完成。
全栈程序员站长
2022/09/21
6740
同步fifo的verilog代码_verilog 异步复位
FPGA Verilog-1995 VS Verilog-2001
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
1.6K0
FPGA Verilog-1995 VS Verilog-2001
verilog语言与VHDL_vhdl程序设计
今年开始接触更改产品的FPGA代码,感觉公司虽然搞了很多年了,但是FPGA这块缺乏一些“软件工程”上的概念导入。
全栈程序员站长
2022/11/08
5460
Verilog task学习
task被一段封装在“task-endtask”之间的程序。task通过调用来执行,而且只有在调用时才会被执行,如果定义了task,但是在整个过程中都没有调用它,那么这个task是不会执行的。调用某个task时可能需要它处理某些数据并返回操作结果,所以task应当有接收数据的输入端和返回数据的输出端。另外,task可以彼此调用,而且task内还可以调用函数。
FPGA开源工作室
2021/03/30
6560
Verilog语言入门
门声明语句格式: <门的类型>[<驱动能力><延时>]<门实例 1>[,<门实例 2>,…<门实例 n>];
全栈程序员站长
2022/07/22
6650
Verilog语言入门
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.8K0
verilog语言转vhdl语言_vhdl转换为verilog

相似问题

Verilog问题与案例/总是陈述

15

系统verilog中结构与联合的区别

23

Verilog问题

10

Verilog迫使结构被包装

14

使用结构verilog向前看

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文