用Modelsim SE 10.1a进行仿真的大致步骤
2016-03-05 18:38
369 查看
系统windows10 64bit,modesim SE 10.1c 64bit
2.在下一步到Create New File(输入自己Verilog文件名称add_4)->Add file as type(选择喜欢的语言,这里用Verilog演示)->ok->关掉Add items to the Project。
3.在Project里双击Veriog文件用自带编辑器打开(其它编辑器也行)。
比较器门级代码如下:
4.在Project空白处点击右键Add to Project->New FIle输入文件名称(add_4tb)。打开文件输入
比较器测试代码
5.选中两个Verilog文件右键Compile ALl。出现绿色success字样表示编译成功。
6.点击Simulate->Start Simulation->展开work选中特使文件,不勾选Enable optimization->ok。
7.在sim仿真器左侧Object选中想要观察的信号线,按ctrl+w选中。
8.在transcript命令行输入run 100ms(根据需要设置仿真时间)。
9.transcript中输入quit -sim退出仿真窗口。
为了看得更清楚这里修改代码,让其在transcript显示。
仿真如下:
以4bit加法器为例
1.新建工程project,File->New->Project,选择好Project文件路径(Project Loacation)(默认win64)和文件名(add_4)。2.在下一步到Create New File(输入自己Verilog文件名称add_4)->Add file as type(选择喜欢的语言,这里用Verilog演示)->ok->关掉Add items to the Project。
3.在Project里双击Veriog文件用自带编辑器打开(其它编辑器也行)。
比较器门级代码如下:
module add_4(O,Cout,X,Y,Cin); output [3:0] O; output Cout; input [3:0] X,Y; input Cin; reg Cout; reg [3:0] O; always @(X or Y or Cin) {Cout,O}={X+Y+Cin}; endmodule
4.在Project空白处点击右键Add to Project->New FIle输入文件名称(add_4tb)。打开文件输入
比较器测试代码
module add_tb; reg [3:0] X,Y; reg Cin; wire [3:0] O; wire Cout; initial begin X=4'b0000;Y=4'b0000;Cin=0; #10 X=4'b0000;Y=4'b0001;Cin=0; #10 X=4'b0000;Y=4'b0010;Cin=0; #10 X=4'b0000;Y=4'b0011;Cin=0; #10 X=4'b0000;Y=4'b0100;Cin=0; #10 X=4'b0000;Y=4'b0101;Cin=1; #10 $stop; end add_4 ad4(O,Cout,X,Y,Cin); endmodule
5.选中两个Verilog文件右键Compile ALl。出现绿色success字样表示编译成功。
6.点击Simulate->Start Simulation->展开work选中特使文件,不勾选Enable optimization->ok。
7.在sim仿真器左侧Object选中想要观察的信号线,按ctrl+w选中。
8.在transcript命令行输入run 100ms(根据需要设置仿真时间)。
9.transcript中输入quit -sim退出仿真窗口。
为了看得更清楚这里修改代码,让其在transcript显示。
module add_tb; reg [3:0] X,Y; reg Cin; wire [3:0] O; wire Cout; initial begin X=4'b0000;Y=4'b0000;Cin=0; #10 X=4'b0000;Y=4'b0001;Cin=0; $display("Binary Input Data X=%b;Binary Input Data Y=%b;Binary Carry Data Cin=%b;Binary Output Data O=%b;Binary Input Carry Data Cout=%b",X,Y,Cin,O,Cout); $display("Binary Input Data X=%d;Binary Input Data Y=%d;Binary Carry Data Cin=%d;Binary Output Data O=%d;Binary Input Carry Data Cout=%d",X,Y,Cin,O,Cout); #10 X=4'b0000;Y=4'b0010;Cin=0; $display("Binary Input Data X=%b;Binary Input Data Y=%b;Binary Carry Data Cin=%b;Binary Output Data O=%b;Binary Input Carry Data Cout=%b",X,Y,Cin,O,Cout); $display("Binary Input Data X=%d;Binary Input Data Y=%d;Binary Carry Data Cin=%d;Binary Output Data O=%d;Binary Input Carry Data Cout=%d",X,Y,Cin,O,Cout); #10 X=4'b0000;Y=4'b0011;Cin=0; $display("Binary Input Data X=%b;Binary Input Data Y=%b;Binary Carry Data Cin=%b;Binary Output Data O=%b;Binary Input Carry Data Cout=%b",X,Y,Cin,O,Cout); $display("Binary Input Data X=%d;Binary Input Data Y=%d;Binary Carry Data Cin=%d;Binary Output Data O=%d;Binary Input Carry Data Cout=%d",X,Y,Cin,O,Cout); #10 X=4'b0000;Y=4'b0100;Cin=0; $display("Binary Input Data X=%b;Binary Input Data Y=%b;Binary Carry Data Cin=%b;Binary Output Data O=%b;Binary Input Carry Data Cout=%b",X,Y,Cin,O,Cout); $display("Binary Input Data X=%d;Binary Input Data Y=%d;Binary Carry Data Cin=%d;Binary Output Data O=%d;Binary Input Carry Data Cout=%d",X,Y,Cin,O,Cout); #10 X=4'b0000;Y=4'b0101;Cin=1; $display("Binary Input Data X=%b;Binary Input Data Y=%b;Binary Carry Data Cin=%b;Binary Output Data O=%b;Binary Input Carry Data Cout=%b",X,Y,Cin,O,Cout); $display("Binary Input Data X=%d;Binary Input Data Y=%d;Binary Carry Data Cin=%d;Binary Output Data O=%d;Binary Input Carry Data Cout=%d",X,Y,Cin,O,Cout); #10 $stop; $display("Simulate Over"); end add_4 ad4(O,Cout,X,Y,Cin); begin end endmodule
仿真如下:
相关文章推荐
- modelsim debug
- Verilog文件格式范例
- [Verilog]个人.v文件书写规范
- Verilog HDL语言不全面但基本入门够用介绍
- Modelsim 不能正确实现功能的部分解决方法(整理中)
- Verilog $Scannf 使用小结
- modelsim仿真波形理解
- 关于Error: Can't compile duplicate declarations of entity "**" into library "work"的错误
- ISE中将Verilog封装为IPcore
- (筆記) 如何設計邊緣檢測電路? (SOC) (Verilog)
- Verilog 有符号数无符号数混用
- VERILOG实现四位七段数码管显示
- Partitioning for Synthesis
- Veriog_Notes_Chapter 1
- Veriog_Notes_Chapter 2
- Veriog_Notes_Chapter 4
- Veriog_Notes_Chapter 6
- Veriog_Notes_Chapter 3
- Veriog_Notes_Chapter 5
- 串口发送32bit数据Verilog