[置顶] 常用电路的设计

摘要: 边沿检测电路http://www.cnblogs.com/oomusou/archive/2008/08/11/verilog_edge_detection_circuit.htmlhttp://www.cnblogs.com/qiweiwang/archive/2011/01/02/1924098.html串并转换电路http://www.cnblogs.com/oomusou/archive/2009/10/24/p2s_s2p.htmlhttp://www.cnblogs.com/qiweiwang/archive/2010/11/28/1890313.html如何将值延迟几个CLKht 阅读全文

posted @ 2010-12-18 20:07 齐威王 阅读(1700) 评论(2) 推荐(5) 编辑

2011年9月17日

握手通信

摘要: module handshack( input clk, input rst_n, input req, input [7:0] datain, output ack, output [7:0] dataout);reg reqr1,reqr2,reqr3;reg [7:0] dataoutr;reg ackr;always @ (posedge clk,negedge rst_n)if(!rst_n) {reqr3,reqr2,reqr1} <= 3'b111;else {reqr3,reqr2,reqr1} <= {reqr2,reqr1,r... 阅读全文

posted @ 2011-09-17 09:58 齐威王 阅读(3085) 评论(1) 推荐(2) 编辑

2011年9月16日

异步fifo

摘要: 这个是基于RAM的异步FIFO代码,个人认为代码结构简单易懂,非常适合于考试中填写。与同步fifo相比增加了读写控制信号的跨时钟域的同步。此外,判空与判满的也稍有不同。module fifo#( parameter DSIZE = 8, ASIZE = 4)( input [DSIZE-1:0] wdata, input winc, wclk, wrst_n, input rinc, rclk, rrst_n, output [DSIZE-1:0] rdata, output reg wfull, output reg rempty); reg [ASIZE:0] wptr, r... 阅读全文

posted @ 2011-09-16 16:48 齐威王 阅读(3506) 评论(2) 推荐(1) 编辑

2011年9月15日

脉冲检测电路

摘要: 问题描述:输入信号:i_pulse,输出信号:o_found,输入信号是一个比时钟还要窄的脉冲,请问如何在该脉冲发生后及时检测到,并输出o_found = 1进行指示。注意:o_found的输出可以比输入脉冲晚几个时钟周期,但是不能延迟太长。图示: ____________ ____________i_clk:_____________| |____________| |___________ _________i_pulse:_________________________| |... 阅读全文

posted @ 2011-09-15 14:52 齐威王 阅读(3968) 评论(0) 推荐(2) 编辑

2011年9月14日

数组倒序输出

摘要: 将键盘输入的一个数组倒序输出:#include <iostream.h>#define N 6int main (){ int i,temp; int a[N]; cout<<"请输入 "; cout<<N; cout<<" 个数字:"<<endl; for(i=0;i<N;i++) cin>>a[i]; cout<<endl; for(i=0;i<N/2;i++) { temp=a[i]; a[i]=a[N-1-i]; a[N-1-i]=temp; } co 阅读全文

posted @ 2011-09-14 11:38 齐威王 阅读(4890) 评论(0) 推荐(0) 编辑

2011年9月12日

一个羊的问题

摘要: 一个农夫发现围成正方形的围栏比长方形的节省4个木桩但是面积一样。羊的数目和正方形围栏的桩子的个数一样但是小于36,问有多少羊?//一个农夫发现围成正方形的围栏比长方形的节省4个木桩但是面积一样。羊的数目和正方形围栏的桩子的个数一样但是小于36,问有多少羊?#include <iostream>using namespace std;#define N 4 //节省的木桩数目void main(){ float x,m,n,y; for(m=1;m<19;m++) { for(n=1;n<=m;n++) { x=(2*(m+n)-N)/4; y=4*x; if((m*n= 阅读全文

posted @ 2011-09-12 18:03 齐威王 阅读(1582) 评论(0) 推荐(0) 编辑

阶乘

摘要: 1.输出1~5的阶乘,运用静态变量//输出1~5的阶乘值#include <iostream>using namespace std;int fac(int);int main(){ int i; for(i=1;i<=5;i++) cout<<i<<"!="<<fac(i)<<endl; system("pause"); return 0;}int fac(int n){ static int f=1; f=f*n; return f;}2.运用递归算法求n!//输出1~5的阶乘值#in 阅读全文

posted @ 2011-09-12 17:21 齐威王 阅读(720) 评论(0) 推荐(0) 编辑

冒泡排序

摘要: 从键盘输入10个数字,按从小到大的顺序排序之后输出#include <iostream>using namespace std;int main(){ int a[10]; int i,j,t; cout<<"请输入10个数字:"<<endl; for (i=0;i<10;i++) cin>>a[i]; cout<<endl; for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t 阅读全文

posted @ 2011-09-12 17:04 齐威王 阅读(1068) 评论(0) 推荐(0) 编辑

Johnson计数器

摘要: 约翰逊(Johnson)计数器又称扭环计数器,是一种用n位触发器来表示2n个状态的计数器。它与环形计数器不同,后者用n位触发器仅可表示n个状态。n位二进制计数器(n为触发器的个数)有2^n个状态。若以四位二进制计数器为例,它可表示16个状态。module johnson#( parameter N=4)( input clk, input rst_n, output reg [N-1:0] q);always @ (posedge clk,negedge rst_n)if(!rst_n) q <= {N{1'b0}};else if(!q[0]) q <= ... 阅读全文

posted @ 2011-09-12 16:06 齐威王 阅读(7944) 评论(0) 推荐(1) 编辑

序列检测器二

摘要: 101101序列检测器module seqdet( input wire x, input wire clk, input wire rst_n, output reg z);//用verilog设计一个 101101 序列的检测器reg [4:0] cs,ns;localparam [4:0] IDLE =5'd0, A =5'd1, B =5'd2, C =5'd3, D =5'd4, E =5'd5, F =5'd6;//状态转移always @ (posedge clk,n... 阅读全文

posted @ 2011-09-12 12:18 齐威王 阅读(3103) 评论(3) 推荐(1) 编辑

一位全加器的与非门实现

摘要: 一位全加器的与非门实现:其中的进位输出cou也是一个三人表决器电路最终电路实现形式为:完全用与非门搭的全加器电路如下: 阅读全文

posted @ 2011-09-12 10:42 齐威王 阅读(30025) 评论(0) 推荐(0) 编辑

导航