完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
5个回答
|
|
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY D_FF IS PORT ( D,CP:IN std_logic;--D为数据输入,CP为时钟,上升沿触发 Rd,Sd:IN std_logic; --Rd为异步复位信号,Sd为异步置位信号 Q,Qn:OUT std_logic --输出信号,是两个互补输出 ); END D_FF; ARCHITECTURE behave OF D_FF IS BEGIN PROCESS(CP,Rd,Sd) BEGIN IF (Rd='0' AND Sd='1') THEN--功能表第一条 Q<='0'; Qn<='1'; ELSIF (Rd='1' AND Sd='0') THEN--功能表第二条 Q<='1'; Qn<='0'; ELSIF (Rd='0' AND Sd='0') THEN--功能表没有这条,要注意 Q<='X'; Qn<='X'; ELSE --功能表第四和第五条,即Rd='1' AND Sd='1' IF (rising_edge(CP)) THEN Q<=D; Qn<=NOT D; END IF; END IF; END PROCESS; END behave; 这是个D触发器 |
|
|
|
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL; ENTITY D_FF IS PORT ( D,CP:IN std_logic;--D为数据输入,CP为时钟,上升沿触发 Rd,Sd:IN std_logic; --Rd为异步复位信号,Sd为异步置位信号 Q,Qn:OUT std_logic --输出信号,是两个互补输出 ); END D_FF; ARCHITECTURE behave OF D_FF IS BEGIN PROCESS(CP,Rd,Sd) BEGIN IF (Rd='0' AND Sd='1') THEN--功能表第一条 Q<='0'; Qn<='1'; ELSIF (Rd='1' AND Sd='0') THEN--功能表第二条 Q<='1'; Qn<='0'; ELSIF (Rd='0' AND Sd='0') THEN--功能表没有这条,要注意 Q<='X'; Qn<='X'; ELSE --功能表第四和第五条,即Rd='1' AND Sd='1' IF (rising_edge(CP)) THEN Q<=D; Qn<=NOT D; END IF; END IF; END PROCESS; END behave; |
|
|
|
我有D触发器的源程序
|
|
|
|
module frs(clk,rst_n,x,y
); input clk; input rst_n; input [3:0] x; output [3:0] y; parameter idle=2'b00; parameter second=2'b01; parameter third=2'b10; parameter forth=2'b11; reg [1:0] state; reg [3:0] D1; // reg [3:0] x_in; //reg [3:0] cnt; always@(posedge clk or negedge rst_n) begin if(!rst_n) begin cnt<=4'b0000; D1<=4'b1101; state<=idle; end else case(state) idle: begin D1[0]<=x[3]^D1[3]; D1[1]<=D1[0]; D1[2]<=D1[1]^x[3]; D1[3]<=D1[2]^x[3]; state<=second; end second: begin D1[0]<=x[2]^D1[3]; D1[1]<=D1[0]; D1[2]<=D1[1]^x[2]; D1[3]<=D1[2]^x[2]; state<=third; end third: begin D1[0]<=x[1]^D1[3]; D1[1]<=D1[0]; D1[2]<=D1[1]^x[1]; D1[3]<=D1[2]^x[1]; state<=forth; end forth: begin D1[0]<=x[0]^D1[3]; D1[1]<=D1[0]; D1[2]<=D1[1]^x[0]; D1[3]<=D1[2]^x[0]; end default:state<=idle; endcase end assign y=D1; endmodule |
|
|
|
你解决了吗?我现在还不会
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
196 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
879 浏览 0 评论
855 浏览 0 评论
1775 浏览 0 评论
465 浏览 0 评论
1241 浏览 25 评论
5456 浏览 113 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-5 21:28 , Processed in 0.727184 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号