【发布时间】:2014-07-21 02:03:13
【问题描述】:
我不断收到错误每次我尝试编译我不知道为什么。任何人都可以帮忙吗?我是新来的Verilog。 P>
module D_FF(Clk, D, Reset_n, Q);
input D, Clk, Reset_n;
output Q;
reg Q;
lab4_GDL f1(.Clk(~Clk), .D(D), .Q(Qm));
lab4_GDL f2(.Clk(Clk), .D(Qm), .Q(Q));
always @(posedge Clk, negedge Reset_n)
begin
if (Reset_n == 0)
Q <= 0;
else
Q <= D;
end
endmodule
编辑:这是什么问题问我们做的: P>
在此部分中,将实现对AlteraDE2板上的存储器/寄存器电路。该电路具有以下规格:
-
在DE2板上开关SW15-0的当前值应始终在四个七段显示器HEX3-0十六进制显示。电路的这一部分将是组合逻辑。
-
使用KEY0作为低电平有效的异步复位和KEY1作为时钟输入,则应该能够将值存储在一个SW15-0in 16位寄存器。寄存器应该是采用嵌入式d触发器在Altera的FPGA 16位正边沿触发的寄存器。 您可以实例化d触发器或写你的登记行为的Verilog模型。该寄存器的内容应始终在四个七段显示器HEX7-4显示。
写的Verilog文件,提供必要的功能。使用KEY0作为低电平有效的异步复位,和利用KEY1作为时钟输入。您应该能够从过去的实验室重新使用十六进制到7段显示模块。当按下复位HEX7-4将显示全零。
这最后的实验室,它指太: em>的 STRONG> P>
我lab4_GDL如下: EM> 强> module updown (SW, KEY, LEDR, LEDG, GPIO_0, HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7);
parameter n=32; // number of bits in updown counter
input [0:0] SW; // Updown switch 1=up, 0=down
input [0:0] KEY; // KEY[1] = Clock, KEY[0] = Reset_n
input [0:0] GPIO_0;
output [0:6] HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7;
output [n-1:0] LEDR; // Display binary count (active high) on Red LEDs
output [1:0] LEDG; // Display Clock on LEDG[1], Reset_n on LEDG[0]
wire Clock, Reset_n, Updown;
reg [n-1:0] Count;
assign Clock = GPIO_0[0];
assign Reset_n = KEY[0];
assign Updown = SW[0];
assign LEDR = Count;
assign LEDG[1:0] = {Clock, Reset_n};
always @(posedge Clk, negedge Reset_n) //clock = Clk
if (Reset_n == 0) // active-low asynchronous reset
Q <= 0;
else
Q <= D;
// A gated RS latch
module lab4_GDL(Clk, D, Q);
input Clk, D;
output Q;
wire R_g, S_g, Qa, Qb /* synthesis keep */;
assign R = ~D;
assign R_g = ~(R & Clk);
assign S_g = ~(D & Clk);
assign Qb = ~(R_g & Qa);
assign Qa = ~(S_g & Qb);
assign Q = Qa;
endmodule
【问题讨论】:
标签: verilog