Quartus II与Modelsim仿真D触发器(实现带同步清0/同步置1(高电平有效)的D触发器的电路编程、编译和仿真)

一、(1)D、触发器真值表

二、(1) 启动QUARTUSⅡ建立一个空白工程

(2) 新建VerilogHDL源程序文件输入程序代码并保存,然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。

 

module QXJ1(q,qn,d,clk,set,reset);
input d,clk,set,reset;
output reg q,qn;

always @(posedge clk)
	begin
	if(~reset) begin q<=1'b0;qn<=1'b1;end
	else if(~set) begin q<=1'b1;qn<=1'b0;end 
	else begin q<=d;qn<=~d;end
	end
	endmodule 

(3) 从设计文件创建模块,由QXJ.v生成名为QXJ.bsf的模块符号文件。

(4) 新建图形设计文件命名为QXJ.bdf在空白处双击鼠标左键,在symbol对话框左上脚的libraries中,分别将projet下的QXJ模块放在图形文件QXJ.bdf中,加入输入、输出引脚,双击各引脚符号,进行引脚命名。连接好的原理图

 (5) 启动ModelSim仿真软件,编辑仿真软件

`timescale 1ns/1ns

module QXJ1_tp;
reg d,clk,set,reset;
wire q,qn;
parameter dely=100;

QXJ1 u1(q,qn,d,clk,set,reset);
always #(dely/2)  clk=~clk;
initial 
	begin
	clk=0;reset=0;set=1;d=0;
	#dely reset=1;set=1;d=1;
	#dely reset=1;set=1;d=0;
	#dely reset=1;set=0;d=1;
	#dely reset=0;set=1;d=1;
	#dely $finish;
	end
	initial  $monitor($time,,,"clk=%d, reset=%d, set=%d, d=%d, q=%d, qn=%d", clk, reset, set, d, q, qn);
endmodule


module QXJ1(q,qn,d,clk,set,reset);
input d,clk,set,reset;
output reg q,qn;

always @(posedge clk)
	begin
	if(~reset) begin q<=1'b0;qn<=1'b1;end
	else if(~set) begin q<=1'b1;qn<=1'b0;end 
	else begin q<=d;qn<=~d;end
	end
	endmodule 

(6)仿真波形图

如有错误请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值