gameson131 发表于 2010-11-7 15:57:48

初学者菜鸟求救求救~~~~

小弟准备要交功课,涉及到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次还是错,我想究竟是不是这条代码原本就有问题....求各位达人救救我

jzphome 发表于 2010-11-8 11:00:54

always #`clk_cycle clk = ~clk延时到底是多少啊? 语法也不对 应该为 always #5 clk_cycle clk = ~clk
reset = 1;

#100 reset = 0;

#100 reset = 1;

reset 先置0 后置1 就复位了 为什么还要置0?? 难道还要复位??

weibode01 发表于 2010-11-8 11:16:03

不太懂用那个MODELSIM
页: [1]
查看完整版本: 初学者菜鸟求救求救~~~~