2011年8月2日

2时序逻辑电路--计数器

摘要: 2.4.1 二进制计数器代码如下View Code 1 module counter 2 #(parameter N=8) 3 ( 4 input clk, 5 input rst_n, 6 output [N-1:0] Q, 7 output Max_tick 8 ); 9 10 reg [N-1:0] r_reg;11 wire [N-1:0] r_next;12 13 always @ (posedge clk or negedge rst_n)14 if(!rst_n)15 r_reg<=0;16 else r_reg<=r_next;17 18 assign r_next 阅读全文

posted @ 2011-08-02 20:43 万好好 阅读(1031) 评论(0) 推荐(0) 编辑

2时序逻辑电路--移位寄存器

摘要: 2.3.1 自动右移寄存器 信号由s_in进入8位寄存器最高位,寄存器最低位由s_out输出,代码如下View Code 1 module free_run_shift 2 ( 3 input clk, 4 input rst_n, 5 input s_in, 6 output s_out 7 ); 8 9 reg [7:0] r_reg;//现态寄存器10 wire [7:0] r_next;//次态寄存器11 12 always @(posedge clk or negedge rst_n)//时钟上升沿将次态寄存器值赋给现态寄存器,更新数据13 if(!rst_n)14 r_reg< 阅读全文

posted @ 2011-08-02 18:42 万好好 阅读(688) 评论(0) 推荐(0) 编辑

2时序逻辑电路--寄存器

摘要: 2.2.1寄存器 寄存器是D触发器集合,不过其有位宽,将前述D触发器语句改为 input D;outpu Q;改为input [7:0]D;outpu[7:0] Q;即构成一个8b的异步复位寄存器。2.2.2寄存器文件 将寄存器以数组整合起来,并加上输入地址,输出地址,即构成可临时快速数据存储的寄存器文件。示例代码View Code 1 module reg_file 2 #( 3 parameter B=8, 4 parameter W=2 5 ) 6 ( 7 input clk, 8 input wr_en, 9 input [W-1:0] w_addr,10 input [W-1:0] 阅读全文

posted @ 2011-08-02 15:42 万好好 阅读(543) 评论(0) 推荐(0) 编辑

2时序逻辑电路--触发器与锁存器

摘要: 2.1.1同步复位D触发器复位信号在所需时钟边沿才有效,复位操作需要同步于时钟故称作同步复位。代码如下View Code 1 module d_ff 2 ( 3 input clk, 4 input rst_n, 5 input D, 6 output reg Q, 7 output O_n 8 ); 9 10 always @(posedge clk)11 if(!rst_n)Q<=1'b0;12 else Q<=D;13 14 assign Q_n=~Q;15 16 endmodule RTL级视图Technology Map Viewer视图如下2.1.2 异步复位D 阅读全文

posted @ 2011-08-02 12:03 万好好 阅读(1844) 评论(0) 推荐(0) 编辑

导航