赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
使用Quartus编写一个VHDL程序,3-8译码器
新建工程:
新建VHDL文件:
新建完我们的VHDL文件之后,我们开始编写我们的代码了,有完整注释,看下图
module my_3_8( a , b , c , out); //定义你的输入输出 input a ;//输入端口 input b ; input c ; output reg [7:0]out ; //定义输出位宽,高位在前 //逻辑设计 always@(a, b, c) // 敏感信号,发生变化,档期中一个信号发生变化的时候,就会执行always块 begin case({a,b,c}) 3'b000: out = 8'b0000_0001; //横线表示占位符,不起作用 3'b001: out = 8'b0000_0010; 3'b010: out = 8'b0000_0100; 3'b011: out = 8'b0000_1000; 3'b100: out = 8'b0001_0000; 3'b101: out = 8'b0010_0000; 3'b110: out = 8'b0100_0000; 3'b111: out = 8'b1000_0000; default : out = 1111_11111; endcase end endmodule
以上代码是没有问题的,下面把写代码时出现的问题列举出来,记录一下。
错误 1:报错如下:
原因是因为语法错误:
always后面多了一个分号,写习惯了,啊哈哈
错误2:去掉之后还是显示还是有错误,如下,原因是我们的输出应该都是寄存器,所以我们再写的时候需要把他们都定义为寄存器。
最后没有报错,编译需要一点点时间,耐心等待。
编译完成报告分析:
注意我在这里使用的是Quartus 17.0.1版本,各个版本的错误分析报告可能各有不同。
程序编写完成,但是有没有问题需要编写一个测试文件仿真看一下。
接下来是我们的逻辑分析的代码编写
新建的与我们之前的是一样的都是我们的 VHDL文件,我们的文件后缀建议修改为tb结尾 ,表示这是一个测试文件,为我们的ModelSim编写的。举例: my3-8tb . v
文件保存到我们的TestBench文件夹下面,表示是我们测试的代码
具体如下:
编译没有问题,下面进行我们的仿真,需要把我们的仿真信号文件用MoudlSim软件仿真出来。在哪进行呢,看下图:
ok完成之后,我们可以在Tool里面直接启动ModelSim来访真了,这里注意一点:我安装完成之后这里还是显示无法打开,然后我没办法,只能是单独打开ModelSim软件进行调试仿真,网上听说的。
没办法打开怎么办呢,这里给出其他方案打开它
按Window键 -> 输入ModelSim
回车打开就行,第一次打开需要新建工程。
并且把它保存到你需要的位置。
2、创建完成之后弹出小窗,选择Add Existing File 添加之前在Quartus中编写的tb和vhdl文件。
需要添加的是同时我们的tb文件和我们代码的文件(注意是两个文件)。
如果两个文件在不同的文件夹下,可以分两次来添加。
添加完成之后有两个文件,但是中间有两个❓,表示没有编译
点击Compile -> All ,编译全部
没有错误的两个特征:
(1)❓变成 绿色对勾
(2)两个编译,没有错误
点击下方标签栏的Library,里面有一个我们新建的库叫work,,啊 我没新建过这个库啊,注意在之前创建工程的时候会选择默认创建一个work的库。在这里
Default Library Name如果你是第一次使用的话他就是work,会直接创建的,我们跳到下方选项栏,打开work
依次点击之后我们的仿真界面就已经出来了,接下来开始仿真:
波形在右方就完整的显示出来了,因为我们在一次信号之后选择了关闭激励,所以只有一次的波形。
好了如果你有问题,或者建议欢:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。