赞
踩
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
注意:上面是一个新建工程的流程,仅做参考。 1,下面另一个工程,新建工程的流程是一样的,先完成rtl文件的compile后; 2,再添加testbench,然后配置testbench文件与rtl文件的关联性,然后完成关联; 3,仿真,调出仿真软件跑仿真,比如modelsim;
第一步,
或者
第二步,
第一步,使用编辑器,完成rtl、tb文件的编写;
注意:这里我使用的是notepad++编辑器。
第二步,将文件添加到quartus的文件位置:
(1)
(2)
(3)
(4)
(5)
(6)
(7)联合仿真,在这里完成。
`define UD #1 module MUX_4_8 ( //Input ports. DI_SEL, // 选择 DI_EN, // 使能 DI_0, // 4输入 DI_1, DI_2, DI_3, //Output ports. DO ); //========================================================================== //Input and output declaration //========================================================================== input [1:0] DI_SEL; input DI_EN; input [7:0] DI_0; input [7:0] DI_1; input [7:0] DI_2; input [7:0] DI_3; output [7:0] DO; //========================================================================== //Wire and reg declaration //========================================================================== wire [1:0] DI_SEL; wire DI_EN; wire [7:0] DI_0; wire [7:0] DI_1; wire [7:0] DI_2; wire [7:0] DI_3; wire [7:0] DO; //========================================================================== //Wire and reg in the module //========================================================================== // 知识点: // DO_INIT 这里定义成一个寄存器型,但实质并不会生成真正的寄存器,这个例程是 // 一个纯组合逻辑。 reg [7:0] DO_INIT; //========================================================================== //Logic //========================================================================== // 知识点: // DI_EN 无效时输出三态。 assign DO = DI_EN ? DO_INIT : 8'hz; // 知识点: // case 结构无优先级 always @ (*) begin case (DI_SEL) 2'h0 : DO_INIT = DI_0; 2'h1 : DO_INIT = DI_1; 2'h2 : DO_INIT = DI_2; 2'h3 : DO_INIT = DI_3; default : DO_INIT = 8'hz; endcase end endmodule
// // 测试信号 module tb_MUX48; /*wire */ reg [1:0] DI_SEL; /*wire */ reg DI_EN; // 在使能有效下,才会有输出. /*wire */ reg [7:0] DI_0, DI_1, DI_2, DI_3; // wire [7:0] DO; // 输出连线 initial begin DI_EN = 0; DI_SEL = 00; #20 DI_EN = 0; DI_SEL = 01; repeat(10) begin #20 DI_EN = 1; DI_SEL = {$random}%4; DI_0 = {$random}%128; // 所以这里,需要 reg 型. DI_1 = {$random}%128; DI_2 = {$random}%128; DI_3 = {$random}%128; end #10; $finish; end MUX_4_8 u1_MUX_4_8( .DI_SEL (DI_SEL ), .DI_EN (DI_EN ), .DI_0 (DI_0 ), .DI_1 (DI_1 ), .DI_2 (DI_2 ), .DI_3 (DI_3 ), .DO (DO ), ); endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。