㈠ 我用VHDL语言编写了一些模块,怎么把它们编成顶层文件,原理图是不是编写顶层文件的一种方法
原理图是生成顶层文件的一种方法,但不是唯一的。也可以用硬件描述语言来描述顶层实体。
你用VHDL描述了一些模块,那它们之间一定存在连接关系,用元件例化语句描述各个模块的连接关系,就完成顶层描述了。
㈡ vcs生成覆盖率时,条件编译的顶层会被当做不同的项目,合并覆盖率时会出错,怎么解决
要生成覆盖率报告,要在编译和仿真的时候,加入一个选项。 -cm line | fsm | tgl | cond , 指定生成针对什么条件的覆盖率报告。如下的makefile,就生成上述四个的覆盖率报告。注意,编译和仿真,都要加上-cm这个选项。执行 make vcs , make sim后,会生成simv.vdb文件夹,该文件夹下包含了覆盖率的内容,但是我们需要将内容生成报告,这样,才方便我们查看。生成报告,使用的是 urg命令,该命令也是属于vcs工具里面的-dir: 指定 .vdb文件夹的位置report: 指定生成报告的格式,报告格式有两种,一种网页格式,一种text格式。这里,both代表生成两种。执行 make urg后,就会生成both文件夹。 这文件夹下的文件,就是覆盖率报告了。打开dashboard.html。可以看到整体的一些信息。但是我们关心的是设计的,而不是testbench的。点击hierarchy,得到层次。点击u1,也就是设计的顶层。可以看到关于该顶层的信息。因为在顶层,都是调用各个子模块(这里是调用 band_generaterx_tx, uart_txd模块),所以没有line的覆盖率统计,但是有TOGGLE的覆盖率统计,也就是信号的翻转。从上面可以看出,对于rst_n信号,没有从1->0的翻转,而这个信号是testbench中传递的,因此看出,在testbench设计,对于rst_n信号产生,有bug。点击左下角的uart_txd_1,查看该模块的信息。 对于该设计,因为有具体的实现,所以可以看到有line的覆盖率,toggle的覆盖率,FSM的覆盖率。对于line覆盖率,从报告看出,总共有42行,覆盖到了41行。通过查看代码,可以知道是哪一行没有被执行到。对于toggle覆盖率。从报告看出,只有rst_n有问题,而这问题是testbench的的bug造成的。对于FSM的检查。从报告看出,每个状态都有被覆盖到。但是从有些状态跳转到另外的状态,没有被覆盖到。因此造成FSM的覆盖率不高。通过查看覆盖率报告,可以查找到设计的缺陷,从而进行修正。
㈢ 今天在Quartus II 11.0编译时出现的问题 ,哪位大神给指教下,我的问题出在哪谢谢
顶层设计实体HILL未定义。可能是你顶层实体与体层文件没有关联好。
㈣ EDA中什么情况下可以直接对顶层文件进行编译
QuartusII 是Altera公司开发的功能最强大的PLD编译工具,全面取代MAX+PLUS
使用步骤:
一、建立工程.
1、“File”→“New Project Wizard”开始新工程的建立设置。‘NEXT’
2、指定project的路径,和project的名称,顶层文件的名称(一般与工程名相同)。
3、指定project中要include 的文件。
4、选择project中要使用的一些EDA TOOLS。
5、选择所使用的器件的家族“family” 和具体型号。
6、‘finish’ 完成工程的设置。
二、输入文件. 在工程中新建设计文件:图形文件“Block Diagram/Schematic File”,Verilog语言文 件“VerilogHDL File”
1、完成工程文件的输入,若为顶层文件,则文件名应该保存为与工程名相同。
2、编译设置:“Assignment”→“Compiler Settings Wizard”→“Next”
3、根据编译窗口的提示修改错误。
4、编译后会生成编译报告“Compilation Report”会分成如下几项:
(1) Analysis&Synthesis语法检查,把大电路转成较小的元件
(2) Fitter 器件资源利用情况,引脚分配情况等
(3) Assembler 连线各元件
(4) Timing Analyzer 时间分析
三、仿真. 完成工程文件的编译、综合、时间、分析后就可以建立波形仿真文件进行功能仿真
1、建立仿真文件
“File”→“New”→“Other Files”→“Vector Waveform File”→“OK”
2、选择输入输出引脚
Edit→“Insert Node or Bus”→“Node Finder”,在“Filter”处选择“Pins:all”,再按下“ >>”将所有选中的引脚添加到“Seleted Nodes”框,点“OK”→“OK”完成引脚添加。可通过右键 修改引脚的显示方式、属性、初始值等参数。
3、仿真时间、栅格的设置
Edit→‘End Time’ 设置仿真结束的时间, ‘Grid Size’设置每个栅格表示的时间。仿真时间是 以建立仿真文件时给出的结束时间为准,仿真设置“Wizards”中设定的End Time没用。
4、仿真编译设置
‘Assignments’→‘Wizards’→‘Simulator Settings Wizard’→选择当前要仿真得文件
仿真文件做好后还要将其设置为当前仿真文件,才可以开始仿真。因为有时一个工程需要建立多个 仿真文件,这就需要通过设置确定仿哪个文件了。在选择仿真类型“Type of simulation”时,“ timing”代表考虑延时,“functional”表示功能型的仿真。
5、先编译后仿真
‘Processing’→‘Start Compilation&Simulation’
6、仿真结束后会生成仿真报告“Simulation Report”
仿真结果并不是出现 在所建立得仿真文件中,在仿真报告中有独立的仿真结果。
仿真的结果总是与当前的工程文件相对应,工程文件改变后要重新仿真后才有意义。
四、将工程模块化,利用图形设计文件建立更大的工程
模块工程文件(“Block Diagram/Schematic File”或“Verilog HDL File”)编译仿真成功后就可以 将其模块化,然后在更高层次将各个模块级联起来,构成更大得工程。
1、模块化
‘File’→‘Creat/Updata’→‘Creat Symbol Files for Current File’ 然后编译器会自动将当前工程完整得编译一遍,然后生产图形模块,放在存放当前工程的文件夹里。
2、更大的工程
(1)建立工程文件
“File”→“New”→“Device Design Files”→“Block Diagram/Schematic File”→“OK”
(2)输入元件
右键→‘Insert’→‘Symbol’→可以在库文件中选,也可以通过“浏览”将已经建立图新模块的 工程加载进来。
(3)连线
㈤ 顶层VHDL没有定义是什么错误啊
如果有许多VHDL源文件一起编译,那么需要设定其中一个作为顶层实体。
比如在QuartusII中,可以在Files视图中的某个VHDL文件上点右键->Set as Top-Level Entity,前提是VHDL文件名与Entity名一致。
这里有个问题要注意:
比如在QuartusII中,你的Top-Level的VHDL文件名与Entity名不一样,就要在Assignment->Settings->General下面手动输入顶层Entity名,否则会报错说顶层实体未定义之类。
其它编译器未试过会不会出现这类问题。
㈥ Quartusii中的顶层设计实体是什么意思
也就是把你要进行操作的那个工程放在最顶端。
因为quartus 软件只能对顶层工程文件仍进行编译。
如果你不把你讲要进行操作的工程置于最顶层,软件只能对你前一次的过程进行编译。
取个例子,quartus软件就像是Altera公司的里一栋办公楼里的某一个部门,这个部门位于Altera公司这栋办公楼的顶楼,quartus这个部门要处理文件时,要求其他部门亲自把文件送到顶楼来,不然就不予处理,因为Altera给他的职务就是只能在你的办公区(顶楼的那片区域)上班,而不管任何部门,不把文件亲自拿到顶层来quartus你这个部门就不给他做任何事。不然quartus软件就会一直编译之前拿到顶层来的文件。
所以,在编译工程时,注意置顶,不然有时候提示的错误都让你丈二的和尚-----------摸不着头脑。(*^__^*) 嘻嘻……
㈦ VHDL语言 编译时顶层实体无法识别
你没有给出原始描述,只给出一个错误提示,是无法判断问题出在何处的。
㈧ Quartus II的编译是不是都是从顶层模块开始的
你说的“编译”应该是叫“综合”吧,别把fpga当单片机学哦
㈨ Quartus II写的VHDL程序编译时为什么总说实体无定义
别听楼上乱说,你保存程序文件的时候要把文件名用counter保存的。还有开始的时候要先创建工程project才可以的。