‘壹’ verilog怎样生成原理框图
RTL视图
编译通过后
Tools --> Netlist Viewers ----> RTL Viewer
框图的生成为 :
File -- >Create/Update ---> Create Symbol Files for Current file
‘贰’ 和verilog预编译的区别
这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。 VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准的。这个是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个公司的私有财产转化而来的。
‘叁’ quartus II 中如何用verilog源文件生成原理图
1、打开quartus II,用verilog源文件,先点击file文件,下来菜单点击create/update。
‘肆’ 请教verilog的语句解析。assign a= (b=1)(c && d) 1'b1:1'b0:1'b0;
当b=0的时候a的值为0,当b=1时,a的值取决于c,d的值,当c=1,d=1时a的值等于1,当c=1,d=0或者c=0,d=1或者c=0,d=0时a的值为0。
首先会判断b的值是否等于1,等于0,则直接对a进行赋值为0,如果b的值为1,那么会执行(c && d) ? 1'b1:1'b0,然后根据c&&d的结果判断赋值的结果,当c=1,d=1,时a赋值为1,其他情况都赋值为0。
(4)编译原理verilog扩展阅读:
Verilog是一种大小写敏感的硬件描述语言。其中,它的所有系统关键字都是小写的。
Verilog具有一些编译指令,它们的基本格式为`<keyword>,注意第一个符号不是单引号,而是键盘上数字1左边那个键对应的撇号。常用的编译指令有文本宏预定义`define、`include,它们的功能与C语言中类似,分别提供文本替换、文件包含的功能。
三目运算符“表达式1?表达式2:表达式3”,的执行为,先判断表达式1的结果,结果为真执行表达式2,否则执行表达式3。
Verilog还允许设计人员为每个延迟时间设置最大值、典型值、最小值,在编译阶段可以通过编译代码选择其中一个。
参考资料来源:网络-VerilogHDL
‘伍’ VERILOG中编译、适配、综合、下载是什么意思
我尽量用简单的语言说明一下。
编译:对文本描述的verilog语言进行分析并进而转化为能够供下载到FPGA(为了跟你所问的问题相对应,此处就针对FPGA等可配置器件流程展开回答,本来verilog也可以用于ASIC(专用集成电路)设计的)。它是一个包含多个概念的统一说法。编译可以包含语法分析、综合、适配等多个环节。
综合:综合是把verilog语言描述的抽象层次较高的设计描述转化成为抽象层次较低的电路网表,表现为一般的数字逻辑,能够对应到具体的门级逻辑。
适配:把综合后的具体数字逻辑映射到具体的不同型号当中的FPGA器件中去,包括选择哪一些基本逻辑单元(主要包含LUT和寄存器单元等),以及布局布线等。
下载:下载就是将整个编译过程完成的可下载二进制信息通过下载线从计算机端传递到FPGA开发板端,并完成FPGA内部电路的具体配置(LUT中的存储信息以及连接线的连接开关设置等等),形成具有相应功能的功能电路。
‘陆’ verilog原理图编译错误,各个模块单独编译没错,请指导
好吧,根据楼主的描述我给出以下几个可能性,请楼主自己试试。希望能帮助你解决问题。 1.你编译下看看是不是有编译错误。如果有错误肯定是不行的。 2.检查一下MMC卡是不是安装正确且到位。确保MMC安装好了。 3.很重要的一点,西门子300的PLC有一种情况(其实不光300,200也有这个问题):当你使用的M变量超范围时,编译时没有错误的,但是下载会有问题,各种犀利的错误。比如西门子200的跳转指令,LBL设置一个1000也是没问题的,编译不报错,但是不能下载。所以检查你的从程序是不是使用M超出范围了。
‘柒’ Notepad++ 编译verilog 文件
Nodepad++应该只是一个编辑器,无法完成Verilog文件的编译,可以使用Xilinx 的软件ise完成综合,布局布线等。
‘捌’ VHDL与Verilog在FPGA开发中的比较
硬件描述语言HDL(Hardware Describe Language)
HDL概述
随着EDA技术的发展,使用硬件语言设计PLD/FPGA成为一种趋势。目前最主要的硬件描述语言是VHDL和Verilog HDL。 VHDL发展的较早,语法严格,而Verilog 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的子集,可能造成少数语法不能编译,如果采用专用HDL工具分开执行,效果会更好,否则这么多出售专用HDL开发工具的公司就没有存在的理由了。
‘玖’ verilog编译指令是什么
编译器指令在指令之后的整个编译过程中有效(可跨越多个文件)
可以理解为对编译器进行“指示” 告诉编译器一些用户定义的规则
VHDL没有编译器指令(但是有EDA工具编译器指令)
某些EDA工具提供只有该工具可识别的编译器指令(不是标准 可以同时支持verilog和VHDL)
电子设计流程中 rtl到网表(以及各层次网表之间)的转换叫“综合” 这种说法是准确的
编译是软硬件通用的 意思是把编程语言转换成机器码(包括语法检查)
平时基本上可以理解为一个意思
‘拾’ Verilog 编译过程图解
如果是Quartus II软件的话可以在顶层原理图中手动挨个输入管脚分配信息,也可以建立一个TCL文档,把开发板的管教都放进去,然后才在TOOLS里面有一个TCL执行选项的,直接就自动分配了,不过信号名和管教名要对应起来。如果用ACTEL的LIBERO软件,它有一个版块是专门用来管教分配的,也是手动分配就行的。XINLINX的暂时没用过,抱歉。