当前位置: 首页 > news >正文

通辽做家教的网站阜阳室内设计学校

通辽做家教的网站,阜阳室内设计学校,广州建网站的公司有哪些,网站空间送域名价格表1.1 语法 1、赋值语句 和 为阻塞赋值#xff0c;当该语句结束时#xff0c;下一个语句才开始执行#xff0c;串行执行 为非阻塞幅值#xff0c;该语句和整个语句块同时执行#xff0c;并行执行 1.2 ModelSim使用 1、修改源文件路径#xff1a;File - …1.1 语法 1、赋值语句 和 为阻塞赋值当该语句结束时下一个语句才开始执行串行执行 为非阻塞幅值该语句和整个语句块同时执行并行执行 1.2 ModelSim使用 1、修改源文件路径File - Source Directory/Change Directory 2、查看窗口View - Transcript/Project/Library 3、新建工程File-New-Project 添加文件夹名称 4、添加源文件和TB文件Project 右键- Add to Project. Existing File 5、编译Project 右键 - Compile All 如果出现黄色三角形的警告查看相关文件并修改重新编译 双击红色的警告可以看到.v文件哪里出现问题 6、仿真Simulate - Start Simulate - Design - work - 选择TB文件关闭Enable optimization 7、Libraries、SDF标准延迟文件 8、添加信号到波形图内sim-Default 右键添加Add Wave 某些信号看不到no data就重新仿真最好先添加信号再进行仿真。 修改Run Length 到适合的时长例如1usrun运行设置时长 左侧Restart重置信号。 9、命令行操作 .main clear 清空命令行 run 1us 波形运行1us 10、ctrlA全选信号 ctrlG:信号排序 1.3 Verilog 1、逻辑值 01X未知可能是1/0Z高阻态外部没有激励信号是一个悬空状态 2、进制二进制d、八进制o、十进制d和十六进制h 3、数值表示[数据位宽][进制][数] 例子1’b0 8’d255 16b’1001_1010_0000_1111下划线不影响程序读取 4、标识符定义模块名、端口名、信号名 任意一组字母、数字、$符号和_下划线 标识符第一个字符必须是字母或下划线区分大小写。 不建议大小写混合使用普通信号建议全部小写信号命名最好体现信号的含义简洁清晰易懂 例子sum、cpu_addr、clk_50、clk_cpu 5、数据类型寄存器、线网、参数前两个是真正在数字电路中起作用的 1寄存器类型reg默认初始值为X 例子 reg [31:0] delay_cnt; reg key_reg; 注reg类型只能在always和initial语句中被幅值。 时序逻辑always语句带有时钟信号则该寄存器变量对应为触发器 组合逻辑always语句不带有时钟信号则该寄存器变量对应为硬件连线 2线网类型表示结构实体之间的物理连线此变量不能存储值它的值由驱动它的元件所决定。 驱动线网类型变量的元件有门、连续幅值语句、assign。 如果没有驱动元件连接到线网上线网为高阻态z。 例子 wire key_flag; 3参数类型常量用parameter定义常量。 例子 parameter H_SYNC 11’d41; //行同步 parameter H_BACK 11’b2; //行显示后沿 parameter H_DISP 11’d480; //行有效数据 parameter H_FRONT 11’d2; //行显示前沿 parameter H_TOTAL 11’d525; //行扫描周期 参数型数据常用于定义状态机的状态、数据的位宽和延迟大小。 标识符、参数传递 6、运算符算数运算符 - * / %、关系运算符 !、逻辑运算符 ||、 条件运算符? : 例子a?b:ca为真选择b否则选择c、位运算符~ | ^、 移位运算符 例子8’b11110000 2 2’b00111100,0填充、拼接运算符{} 有优先级用括号 7、注释方式 // 和 /* */ 8、关键字 变量名不能与关键字同名 9、框架 1模块block包括接口和逻辑功能 例子 module block(a,b,c,d);input a,b;output c,d;assign c a | b;assign d a b; endmodule每个verilog程序包括端口定义、IO说明、内部信号声明、功能定义。 注意有可以综合的语句和不可综合的语句仿真 2可综合的语句 assign、always、例化实例元件这三种逻辑功能是并行的。 2-1在always块中逻辑是顺序执行的。 而多个always块之间是并行的。 2-2模块调用:信号通过模块端口在模块之间传递。 例子 文件seg_led_static_top.v: module seg_led_static_top(input sys_clk,input sys_rst_n,output [5:0] sel,output [7:0] seg_led );parameter TIME_SHOW 25d25000_000;wire add_flag;//模块调用1time_count #(.MAX_NUM (TIME_SHOW) //参数传递) u_time_count(.clk (sys_clk),.rst_n (sys_rst_n),.flag (add_flag));//模块调用2必须按照模块定义顺序列写不推荐time_count #(.MAX_NUM (TIME_SHOW) //参数传递) u_time_count(sys_clk,sys_rst_n,add_flag); endmodule其他文件 time_cout.v module time_count(input clk,input rst_n,output reg flag );parameter MAX_NUM 50000_00; reg [24:0] cnt;10、结构语句 1initial在模块中只执行一次。常用来写测试文件产生仿真测试信号激励信号和对存储器赋初始值。 例子 initial beginsys_clk 1b0;sys_rst_n 1b0;touch_key 1b0;#20 sys_rst_n 1b0; end2always不断重复活动但是只有和一定的时间控制结合在一起才有作用。 例子 always #10 sys_clk ~sys_clk;always的时间控制有边沿触发电平触发 可以是单个信号也可以是多个信号用or连接 例子 always (posedge sys_clk or negedge sys_rst_n) begin //敏感列表if (!sys_rst_n)counter 24d0;else if(counter 24d1000_0000)counter counter 1b1;elsecounter 24d0; end边沿触发posedgenegedge的always常常描述时序逻辑行为。使用非阻塞幅值 电平触达的always常常描述组合逻辑行为。使用阻塞幅值 例子 always (a or b or c or d or e) beginout a ?(bc):(d e); end可以用*代表所有变量(*)对后面语句块所有输入变量的变化都是敏感的 always (*) beginout a ?(bc):(d e); end组合逻辑没有CLK信号时序逻辑有CLK信号具备记忆功能。 注意 1不允许在多各always块中对同一个变量进行幅值 2在同一个always块中不要既用非阻塞幅值又用阻塞赋值 11、条件语句 1if if (a b)out data_1;2if else if (a b)out data_1; elseout data_2;3if else嵌套 if (fx1)out data_1; else if(fx2)out data_2; else if(fx3)out data_3; elseout data_4;4使用begin和end包含多个语句 if (a) begin语句1语句2 end else begin语句1语句2 end判断表达式的值若为0xz按照假进行处理若为1按照真处理。 5case语句 casez比较时不考虑表达式中的高阻态z。 casex比较时不考虑高阻态z和不定值x 例子 case(num)4h0 : seg_led 8b1111_0000;4h1 : seg_led 8b0000_0000;default : seg_led 8b1111_1111; endcase注意num和n’hx必须位宽相等。 casex(sel)8b1100_zzzz : 语句1;8b1100_xxzz : 语句2; endcase1.4 状态机 例子利用FPGA实现电子门锁。 序列检测器 1、状态机FSM在有限个状态之间按一定规律转换的时序电路 2、模型 1mealy状态机输出与输入信号和当前状态有关。 组合逻辑F-状态寄存器-组合逻辑G 2moore状态机输出只与当前状态有关。 3、状态机设计 1步骤状态空间定义状态跳转下个状态判断各个状态下的动作。 例子 /* part1:状态空间定义 */ //define state space parameter SLEEP 2b00; parameter STUDY 2b01; parameter EAT 2b10; parameter AMUSE 2b11; //internal variable reg [1:0] current_state; reg [1:0] next_state;//独热码每个状态只有一个寄存器置位译码逻辑简单生成的电路简单。 parameter SLEEP 4b0001; parameter STUDY 4b0010; parameter EAT 4b0100; parameter AMUSE 4b1000; //internal variable reg [3:0] current_state; reg [3:0] next_state;/* part2:状态跳转 */ //transition always (posedge clk or negedge rst_n) begin //敏感列表时钟信号以及复位信号边沿的组合if(!rst_n)current_state SLEEP;elsecurrent_state next_state; //使用非阻塞赋值 end/* part3:下个状态判断组合逻辑 */ //next state decision always (current_state or input_signals) begincase (current_state)SLEEP :beginif (clock_alarm)next_state STUDY;elsenext_state SLEEP;endSTUDY :beginif (lunch_time)next_state EAT;elsenext_state STUDY;endEAT :beginif (lunch_time)next_state EAT;elsenext_state STUDY;endAMUSE :beginif (lunch_time)next_state EAT;elsenext_state STUDY;enddefault:beginif (lunch_time)next_state EAT;elsenext_state STUDY;endendcase end注意 1组合逻辑使用阻塞赋值 2if/else要配对以免产生latch锁存器case的状态如果没有给完全必须要给default否则也会生成latch /* part4各个状态下的动作组合逻辑 */ //action wire read_book; assign read_book (current_state STUDY) ? 1b1 : 1b0;always (current_state) beginif(current_state STUDY)read_book 1b1;elseread_book 1b0; end注意组合逻辑使用阻塞赋值 一个三段式状态机例子divider7_fsm.v 三段式可以在组合逻辑后再增加一级寄存器时序逻辑有clk信号输入来实现时序逻辑输出 1可以有效滤除组合逻辑输出的毛刺 2可以有效地进行时序计算和约束 3对总线形式的输出信号来说容易使总线数据对齐从而减小总线数据间的偏移减小接收端数据采样出错的频率。
http://www.dnsts.com.cn/news/135037.html

相关文章:

  • 苏州建站费用好的企业型网站模板
  • 做网站的公司推荐如何在电脑登录wordpress
  • 网站开发毕设的需求分析北京中小企业建站价格
  • wordpress小说站山东人才招聘网
  • 做网站 页面自适应wordpress地址应该填什么意思
  • 网站后台登陆模板网站建设600元全包
  • 手机网站建设的影响如何写一个可以做报价计算的网站
  • 建站公司哪个好wordpress total主题
  • 淮南网站建设全包南京学校网站建设策划
  • 南京网络科技网站建设济南公积金网站
  • 重庆营销型网站开发做网站属于什么技术
  • 科技广告公司网站建设青浦网站设计
  • 旅游网站自己怎么做深圳网页设计科技有限公司
  • 深圳 微网站建设ydgcm网站索引量下降
  • 苏州商城网站建设网站推广建设加盟
  • 网站模板去哪要注册公司的条件和费用
  • 老年大学网站建设北京手机版建站系统开发
  • 建设一个营销型网站用dw做的网站怎么发布
  • 苏中建设 官方网站网络网站开发培训
  • 淘客返利网站建设网页设计分为几个部分
  • 软件项目管理考试题及答案优化稳定网站排名
  • 大连装修网站推广长沙企业推广
  • 福州建站网络公司比特币交易网站可以做空吗
  • 网站开发团队简介如何写织梦响应式网站
  • 部队网站建设招标wordpress安装不了插件吗
  • 制作小网站免费软件下载app
  • 宁波网站建设公司信息查询吉安做网站
  • 网站开发费用构成网站搜索 收录优化
  • 纯文本网站做seo是要先有网站吗
  • 国外开源网站建设软件查企业的app软件 排名