|
小弟准备要交功课,涉及到quartus 7.2同埋modelsim se6.0这两个软件,求各位大虾救救我。
练习二. 简单时序逻辑电路的设计
目的:掌握基本时序逻辑电路的实现。
在Verilog HDL 中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式。在可综
合的Verilog HDL 模型,我们通常使用always 块和 @(posedge clk)或 @(negedge clk)的结构来表述时序逻辑。下面是一个1/2 分频器的可综合模型。
// half_clk.v:
module half_clk(reset,clk_in,clk_out);
input clk_in,reset;
output clk_out;
reg clk_out;
always @(posedge clk_in)
begin
if(!reset) clk_out=0;
else clk_out=~clk_out;
end
endmodule
在always 块中,被赋值的信号都必须定义为reg 型,这是由时序逻辑电路的特点所决定的。
对于reg 型数据,如果未对它进行赋值,仿真工具会认为它是不定态。为了能正确地观察到
仿真结果,在可综合风格的模块中我们通常定义一个复位信号reset,当reset 为低电平时,
对电路中的寄存器进行复位。
测试模块的源代码:
//------------------- clk_Top.v -----------------------------
`timescale 1ns/100ps
`define clk_cycle 50
module clk_Top.v
reg clk,reset;
wire clk_out;
always #`clk_cycle clk = ~clk;
initial
begin
clk = 0;
reset = 1;
#100 reset = 0;
#100 reset = 1;
#10000 $stop;
end
half_clk half_clk(.reset(reset),.clk_in(clk),.clk_out(clk_out));
endmodule
我在最后仿真的时候,modelsim报错
** Error: C:/altera/72/half_clk.v/simulation/modelsim/clk_Top.v(6): near ".": expecting: ';'
我重新做了N次还是错,我想究竟是不是这条代码原本就有问题....求各位达人救救我 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|