这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 请教always @(敏感事件列表)问题

共3条 1/1 1 跳转至

请教always @(敏感事件列表)问题

菜鸟
2014-08-28 00:54:44     打赏
//Software Ver: Quartus II 9.1sp2
//EDA Tool: ModelSim ALTERA6.5b

module clkdiv_prj(
clk,rst_n,
tp1,tp2,tp3,tp4
);

input clk; //clock signal, 50MHz
input rst_n;//reset signal, low voltage enable

output tp1,tp2,tp3,tp4;

reg tp1_r,tp2_r,tp3_r,tp4_r;

//----------------------------------------------------------
//-----使用Gate Level Simulation: tp1,tp2感觉代码一直在执行(见下图),
//-----always @(敏感信号列表):这不是只有当信号发生变生时才
//-----执行嘛, 那里写错了啊!!!!
always @(clk, rst_n) begin
if(!rst_n) tp1_r <= 1'b0;
else tp1_r <= ~tp1_r;
end

always @(clk or rst_n) begin
if(!rst_n) tp2_r <= 1'b0;
else tp2_r <= ~tp2_r;
end

//----------------------------------------------------------
always @(posedge clk or negedge rst_n) begin
if(!rst_n) tp3_r <= 1'b0;
else tp3_r <= ~tp3_r;
end

always @(posedge clk, negedge rst_n) begin
if(!rst_n) tp4_r <= 1'b0;
else tp4_r <= ~tp4_r;
end

//----------------------------------------------------------
assign tp1 = tp1_r;
assign tp2 = tp2_r;
assign tp3 = tp3_r;
assign tp4 = tp4_r;

endmodule


防真截图





关键词: always     敏感事件    

高工
2014-08-28 09:41:17     打赏
2楼
你把组合逻辑和时序逻辑弄混了,建议找本语法书好好看看基本的语法。看你想实现的是分频的功能,实现分频应该用时序电路吧,你看看你的 tp1_r 和 tp2_r 的产生用的什么电路。

菜鸟
2014-08-28 23:07:19     打赏
3楼
知道了,非常感谢!

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]