澳门银河网址检测约炮用什么APP

8759人阅读
FPGA/CPLD(21)
一、变量初始化
变量初始化的基本原则为:可综合代码中完成内部变量的初始化,Testbench中完成可综合代码所需的各类接口信号的初始化。
初始化的方法有两种:一种是通过initial语句块初始化;另一种是在定义时直接初始化。
当initial语句块中有多条语句时,需要用begin&end或者fork&join语句。
直接初始化,如:reg [7:0] cnt = 8'b;
二、时钟信号的产生
1、普通时钟信号:
a. 基于initial语句的方法:
parameter clk_period = 10;
initial begin
#(clk_period/2) clk = ~
b. 基于always语句的方法:
parameter clk_period = 10;
always #(clk_period/2) clk = ~
2、自定义占空比的时钟信号:
parameter High_time = 5,Low_time = 20;
// 占空比为High_time/(High_time+Low_time)
always begin
3、相位偏移的时钟信号:
parameter High_time = 5,Low_time = 20,pshift_time = 2;
// 相位偏移为360*pshift_time/(High_time+Low_time)
reg clk_a;
wire clk_b;
always begin
clk_a = 1;
clk_a = 0;
assign #pshift_time clk_b = clk_a;
4、固定数目的时钟信号:
parameter clk_cnt = 5, clk_period = 2;
initial begin
repeat(clk_cnt)
#(clk_period/2) clk = ~
三、复位信号的产生
1、异步复位信号:
parameter rst_repiod = 100;
reg rst_n;
initial begin
rst_n = 0;
rst_n = 1;
2、同步复位信号:
parameter rst_repiod = 100;
reg rst_n;
initial begin
rst_n = 1;
@(posedge clk)
rst_n = 0;
rst_n = 1;
四、数据信号的产生
数据信号的产生主要有两种形式:一、初始化和产生都是在initial块中进行;二、初始化在initial语句中完成,而产生却在always语句块中完成。前者符合不规则数据序列,并且要求长度较短;后者适合具有一定规律的数据序列。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:185369次
积分:2384
积分:2384
排名:第14660名
原创:49篇
评论:15条
(1)(1)(4)(25)(2)(24)2016第三届物联网大会
智能后视镜产品方案对接会
中国LED智能照明高峰论坛
第三届·无线通信技术研讨会
第二届·中国IoT大会
ETFo智能安防技术论坛
移入鼠标可放大二维码
[专家直播] NEW
[专家直播] HOT
[专家直播] HOT
[专家直播]
[专家直播]
[专家直播]
[专家直播]
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的...
这些电子元件都位于假眼之下。只有当摄像头启动发出光后,人们才会意识到它的存在。...
越来越多的智能照明应用探索已经出来了,比如利用灯光在博物馆导览 ,提供室内导航,室内地图等等。结合...
随着物联网和信息技术的发展,智能照明市场已经和多个领域有着千丝万缕的关系,智能照明不仅仅是照明行...
近几年来,智能照明一直是被寄予厚望的一块市场,虽有不少企业积极参与其中,但在实际应用中,依然处于...
中国PCT专利申请数量激增的根本原因在于中国的科技创新能力在明显增强,2016年中国全社会研发投入达到15...
根据调研机构ABI Research分析,2015年全球蓝牙设备出货量为28亿台,预计到2020年,全球蓝牙设备出货量将达到...
玩转开发板
免费试用|HOT
专家问答第8期
MathWorks中国有限公司资深应用工程师陈建平表示:“2...
恩智浦LPC Cortex-M4/M0系列开发板,采用LQFP64...
已有258945份资料
尽管手机已经接管了无数数码产品甚至相机的功能,但长焦镜头的存在依然是越不过的...
·············
音视频同步是我们观看视频的一个基本体验,尤其对于视频画面中能看到声源动作(如...
··············
关于无线充电方面则是有了更多的想象空间,首先是iPhone一直被人吐槽的充电速度,相...
···············
由于汽车传感器在汽车电子控制系统中的重要作用和快速增长的市场需求,世界各国对...
·············
测试与测量是人类认识客观世界的最基本方法,而仪器是实现测试与测量的工具。仪器...
···············
我认识他的时候,他已经从黑莓出来了一年半,裁员。黑莓自己发展不好是一方面,行...
·················
制作PCB板并非简单的按流程来做完板子,钻个孔打上元器件就好了。PCB的制作并不难,...
··················
苹果Airpod、Amazon Echo和Google Home这些硬件产品面世之后,加上Amazon的Alexa和APPLE的 Siri等语...
···················
在好多人的眼里,我们理科生是无聊,是木讷,是不善于交往,尤其是在跟女孩子相处...
··················
USB Type-C兼具资料封包传输、即时影音传输,以及供电三大功能,使我们通过一个接口...
·············
目前市面上同一款安卓手机,经常有多个存储组合版本,每个版本的价格也都不一样。...
················
Micro LED即LED微缩技术,是指将传统LED阵列化、微缩化后定址巨量转移到电路基板上,形...
··················
电磁兼容(EMC)是对电子产品在电磁场方面干扰大小(EMI)和抗干扰能力(EMS)的综合...
·····················
本实验配合2.2寸TFT液晶屏显示,当光弱的时候显示“昏暗”,光强时显示“明亮”。...
·············
越来越多的智能照明应用探索已经出来了,比如利用灯光在博物馆导览 ,提供室内导航...
·············
相信不少人都听说过VoLTE语音这个词汇,但碍于目前国内技术的发展情况,很多城市都...
·············
虽然听起来相当炫酷,不过大多数自动驾驶汽车在外形上会与现有车辆高度相似:方向...
·············
可以看到,整个使用过程中,NB-IoT与互联网产生了两次连接。如果智能锁技术厉害,甚...
·············
电磁兼容(EMC)是对电子产品在电磁场方面干扰大小(EMI)和抗干扰能力(EMS)的综合...
·············
今天的PLC在处理模拟量、数字运算、人机接口和网络的各方面能力都已大幅提高,成为...
·············
想要更快地完成产品上市?任你随心所欲DIY,这些技术可以帮助技术方案公司或工程师...
·············
随着智慧城市的风生水起,有预测指出,安防产业或将进入大发展阶段。数据显示,...
你萌生过创业的念头却又不知该从何做起?如何快速赚取创业的第一桶金?你在创业的...
·············
早在2014年,刘品杉就下定决心要创业,只是一直苦于没有找到合适的切入点。在她看来...
·············
行业领导者不会坐等颠覆,行业云、行业大数据、AI的行业应用,成为竞争焦点。从早...
·············
面对未来巨大的市场需求,ARM也开始了行动,敲响了DynamIQ的千亿出货量大生意。...
·············
热门厂商搜索
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-verilog源程序加测试程序加仿真波形_频率计
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
verilog源程序加测试程序加仿真波形_频率计
先放我们的实验要求。实验要求不一样的话,慎重参考。
module FrequencyCounter(
input [1:0] testmode ,
input sysclk ,
input modecontrol,
output& highfreq,
output [6:0] hex0,
output[6:0] hex1,
output[6:0] hex2,
output[6:0] hex3
wire sigin11;
assign highfreq=
signalinput
signalin(.testmode(testmode),.sysclk(sysclk),.sigin1(sigin11));
freq(.sigin11(sigin11),.sysclk(sysclk),.modecontrol(modecontrol),.hex0(hex0),.hex1(hex1),.hex2(hex2),.hex3(hex3));
//频率计模块
Frequency(sigin11,sysclk,modecontrol,hex0,hex1,hex2,hex3);
sigin11,sysclk,
&& // output&
&&& output
[6:0]hex0,hex1,hex2,hex3;
[15:0]countBCD;
enable,reset,lock,sigin12;
&& //signalinput
siginai(.testmode(testmode),.sysclk(sysclk),.sigin1(sigin11));
&& OneHzClk
onehz(.sysclk(sysclk),.OneClk(OneClk));
&& ControlSig
controls(.OneClk(OneClk),.enable(enable),.reset(reset),.lock(lock));
&& TenDivideFre
tendiv(.sigin(sigin11),.sigin1(sigin12));
&& TenCounter
tencou(.sigin(sigin11),.sigin1(sigin12),.modecontrol(modecontrol),.enable(enable),.reset(reset),.countBCD(countBCD));
&& lockMachine
lockma(.lock(lock),.countBCD(countBCD),.locker(locker));
shum(.locker(locker),.hex0(hex0),.hex1(hex1),.hex2(hex2),.hex3(hex3));
&& endmodule
//siginal Input
module signalinput(
input [1:0]
testmode,//00,01,10,11????4????????12500Hz???SW1~SW0???
sysclk,//????50M&&&
output sigin1//??????
assign sigin1=
state=21'b;
divide=21'b1_;
always@(testmode) begin
case(testmode[1:0])
2'b00:divide=21'b1_;&
&2'b01:divide=21'b1_;&
2'b10:divide=21'b_00;//50Hz
2'b11:divide=21'b_00;&
always@(posedge sysclk)//?divide??
if(state==0)
state=state+21'b0_00__00_0000_10;
if(state==divide)
state=27'b000_00_00;
//1Hz clock module
module OneHzClk(sysclk,OneClk);
output& OneC
assign OneClk=
state=26'b00_00_;
divide=26'b10_11_00;
//divide=21'b0_;
always@(posedge sysclk)//?divide??
if(state==0)
state=state+26'b__00_0000_10;
if(state==divide)
state=26'b00_00_00;
//1Hz clk produce control siginal
module ControlSig(OneClk,enable,reset,lock);
input wire OneC
output reg enable,reset,
initial begin
countcc=0;
always@(posedge OneClk)
countcc=countcc+1;
if(countcc==0)
&& else if(countcc==1)
//10 counter module
TenCounter(sigin,sigin1,modecontrol,enable,reset,countBCD);
&&& input wire
sigin,sigin1,modecontrol,enable,
&&& output
[15:0] countBCD;
&&& assign
sigi=modecontrol?sigin1:
[3:0]count0,count1,count2,count3;
&&& assign
countBCD[3:0]=count0;
&&& assign
countBCD[7:4]=count1;
&&& assign
countBCD[11:8]=count2;
&&& assign
countBCD[15:12]=count3;
&&& initial
count0=4'b0000;
count1=4'b0000;
count2=4'b0000;
count3=4'b0000;
always@(posedge sigi or negedge reset)
if(!reset)
&&&&&&&&&&&
count0=4'b0000;
count1=4'b0000;
count2=4'b0000;
count3=4'b0000;
if(enable)
count0=count0+4'b0001;
&if(count0==4'b1010)
count1=count1+1;
&if(count1==4'b1010)
count2=count2+1;
&if(count2==4'b1010)
count3=count3+1;
//shiliu wei suocunqi mokuai
module lockMachine(lock,countBCD,locker);
&& input wire
[15:0]countBCD;
&& output reg&
&& always@(*)
locker[15:0]=countBCD[15:0];
//shumaguan mokuai
module ShuMa(input [15:0]locker,output[6:0]
hex0,hex1,hex2,hex3);
&& SevenYimaqi
seven0(.A(locker[3:0]),.D0(hex0[0]),.D1(hex0[1]),.D2(hex0[2]),.D3(hex0[3]),.D4(hex0[4]),.D5(hex0[5]),.D6(hex0[6]));
&& SevenYimaqi
seven1(.A(locker[7:4]),.D0(hex1[0]),.D1(hex1[1]),.D2(hex1[2]),.D3(hex1[3]),.D4(hex1[4]),.D5(hex1[5]),.D6(hex1[6]));
&& SevenYimaqi
seven2(.A(locker[11:8]),.D0(hex2[0]),.D1(hex2[1]),.D2(hex2[2]),.D3(hex2[3]),.D4(hex2[4]),.D5(hex2[5]),.D6(hex2[6]));
&& SevenYimaqi
seven3(.A(locker[15:12]),.D0(hex3[0]),.D1(hex3[1]),.D2(hex3[2]),.D3(hex3[3]),.D4(hex3[4]),.D5(hex3[5]),.D6(hex3[6]));
//qiduan yimaqi mokuai
module SevenYimaqi(input[3:0] A,output D0,D1,D2,D3,D4,D5,D6);
D0=!A[3]&&(!A[2])&&(!A[1])&&A[0]||!A[3]&&A[2]&&!A[1]&&!A[0]||A[3]&&A[2]&&!A[1]&&A[0]||A[3]&&!A[2]&&A[1]&&A[0];//1/4/11/13
D1=A[3]&&A[2]&&!A[1]&&!A[0]||!A[3]&&A[2]&&!A[1]&&A[0]||A[3]&&A[2]&&A[1]||A[3]&&A[1]&&A[0]||A[2]&&A[1]&&!A[0];//5/6/11/12/14/15
D2=!A[3]&&!A[2]&&A[1]&&!A[0]||A[3]&&A[2]&&A[1]||A[3]&&A[2]&&!A[1]&&!A[0];//2/12/14/15
D3=!A[3]&&!A[2]&&!A[1]&&A[0]||!A[3]&&A[2]&&!A[1]&&!A[0]||A[3]&&!A[2]&&A[1]&&!A[0]||A[2]&&A[1]&&A[0];//1/4/7/10/15
D4=!A[3]&&!A[2]&&A[0]||!A[3]&&A[2]&&!A[1]||!A[3]&&A[2]&&A[0]||A[3]&&!A[2]&&!A[1]&&A[0];//1/3/4/5/7/9
D5=!A[3]&&!A[2]&&A[0]||!A[3]&&!A[2]&&A[1]||!A[3]&&A[1]&&A[0]||A[3]&&A[2]&&!A[1]&&A[0];//1/2/3/7/13
D6=!A[3]&&!A[2]&&!A[1]||!A[3]&&A[2]&&A[1]&&A[0]||A[3]&&A[2]&&!A[1]&&!A[0];//0/1/7/12
//shifenpin mokuai
module TenDivideFre(sigin,sigin1);
output reg sigin1;
initial begin
count=4'b0000;
always@(posedge sigin)
&& if(count==4'b0100)
&& sigin1=~sigin1;
&& count=0;
&& count=count+1;
测试文件:
module FrequencyCounterT
reg sysclk,
[6:0]hex0,hex1,hex2,hex3;
&&& initial
testmode=2'b01;
modecontrol=1;
always #10 sysclk=~
FrequencyCounter frecounter(.testmode(testmode),
&.sysclk(sysclk),
.modecontrol(modecontrol),
.highfreq(highfreq),
.hex0(hex0),
&.hex1(hex1),
&.hex2(hex2),
&.hex3(hex3)
仿真波形:
我能说,自己傻到一定程度了吗??
本来早就应该出来结果了,结果鼻子都撞到了,又折返回来了~~
首先,我竟然一直以为1亿(10的8次方)就是1G(10的9次方)!!!!妈蛋,让我50兆写成了5兆,我说结果咋一直是正确结果的10分之1。。。。。
其次,我用的BCD码,但是后来在modelsim仿真波形里却用unsigned格式来看locker中保存的值,我说咋他妈一直是1573这么奇葩的数。。。。是知道人家是625……傻逼不是一两天。。
最后,苦逼地,终于写出来了,过程很艰辛,但是过后心情很舒畅,自信感爆棚啊!!
学弟学妹们,如果不幸看到了这篇文章,仅当参考,哈~毕竟,还是学习还是需要钻研的。
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved

我要回帖

更多关于 又加APP 的文章

 

随机推荐